在同一个局域网
要将 windows 10 电脑的 d 盘挂载到 linux 电脑的目录下,你可以通过网络文件共享(如 samba)实现。
这是一个合理的方案,因为 windows 10 原生支持共享文件夹,而 linux 可以通过 cifs 协议来访问这些共享。
下面是详细的步骤和代码:
步骤 1:在 windows 10 上共享 d 盘
- 打开 windows 10 的文件资源管理器,右键点击 d 盘,选择 “属性”。
- 在 “共享” 选项卡中,点击 “高级共享”。
- 勾选 “共享此文件夹”,然后点击 “权限” 按钮。
- 在权限设置中,确保你为所需的用户(或everyone,如果你信任网络环境)授予“读取”或“读取/写入”的访问权限。
- 记下 windows 10 电脑的 ip 地址(假设为
192.168.1.100
)。
步骤 2:在 linux 上安装 cifs 工具
在 linux 电脑上,你需要安装 cifs 工具来挂载 windows 共享目录。
sudo apt update && sudo apt install cifs-utils -y # ubuntu 系统
步骤 3:创建挂载点并挂载共享
在 linux 上创建一个挂载点。
例如:
sudo mkdir -p /mnt/windows_d_drive
使用 cifs 协议挂载 windows 的共享文件夹。假设你有 windows 电脑的用户名为 win_user
,密码为 win_password
。
sudo mount -t cifs -o username=win_user,password=win_password //192.168.1.100/d$ /mnt/windows_d_drive
注意:d$
是 windows 的默认隐藏共享,普通用户可能需要先手动创建共享文件夹。
步骤 4:验证挂载
执行以下命令以确保共享文件夹成功挂载:
ls /mnt/windows_d_drive
如果成功,你应该能够看到 windows d 盘中的文件。
代码示例:
以下是完整的操作脚本示例:
#!/bin/bash # 设置变量 win_ip="192.168.1.100" win_share="//${win_ip}/d$" mount_point="/mnt/windows_d_drive" username="win_user" password="win_password" # 安装cifs工具 sudo apt update && sudo apt install cifs-utils -y # 创建挂载点 sudo mkdir -p $mount_point # 挂载共享 sudo mount -t cifs -o username=$username,password=$password $win_share $mount_point # 验证挂载 if mountpoint -q $mount_point; then echo "d 盘已成功挂载到 $mount_point" else echo "挂载失败" fi
步骤 5:设置开机自动挂载(可选)
可以将挂载信息添加到 /etc/fstab
文件中,使系统在启动时自动挂载:
echo "//192.168.1.100/d$ /mnt/windows_d_drive cifs username=win_user,password=win_password,uid=1000,gid=1000 0 0" | sudo tee -a /etc/fstab
此方法可以让 linux 系统在每次启动时自动挂载 windows d 盘。
不在同一个局域网
但是有一台公网机器a
要实现跨网络将 windows 10 的 d 盘挂载到 linux 电脑的目录下,并且通过一台公网服务器 a 进行中转,可以通过以下方案实现:
方案概述
在 windows 10 上使用 sftp 或 webdav:通过公网服务器 a 搭建一个 sftp 或 webdav 服务来共享 d 盘内容。
在服务器 a 和 linux 电脑之间创建 ssh 隧道:通过 ssh 隧道安全地将数据从 windows 传输到 linux。
步骤 1:在 windows 10 上安装 sftp 或 webdav 服务
使用 sftp 服务(推荐)
下载并安装 openssh for windows。
安装后,在 windows 上设置 openssh 服务,将 d:\
目录暴露为 sftp 目录:
- 配置
sshd_config
文件,确保 sftp 功能启用。 - 配置用户权限,确保共享的文件夹可通过 sftp 访问。
- 启动 openssh 服务,并开放 windows 防火墙上的 sftp 端口(22)。
使用 webdav 服务(替代方案)
- 下载 webdav 服务器应用,如 hfs (http file server),配置并将 d 盘文件夹映射到 webdav 共享路径。
- 配置 hfs,以便能从公网访问,并设置用户名和密码保护。
步骤 2:在服务器 a 上设置反向隧道
在 windows 上配置 ssh 客户端,将 sftp 服务端口通过隧道映射到公网服务器 a。
在 windows 上,通过命令行执行以下命令,将 sftp 的 22 端口映射到公网服务器 a 的端口(如 2022):
ssh -r 2022:localhost:22 user@public_server_ip
该命令会将 windows 本地的 22 端口(sftp 服务端口)转发到公网服务器 a 上的 2022 端口。
步骤 3:在 linux 电脑上挂载远程文件夹
在 linux 上,安装 sshfs 以通过 ssh 挂载 windows 的共享目录:
sudo apt update && sudo apt install sshfs -y
创建挂载点并使用 sshfs 挂载共享文件夹:
mkdir -p /mnt/windows_d_drive sshfs -p 2022 user@public_server_ip:/d /mnt/windows_d_drive
这将通过公网服务器 a 访问 windows d 盘的文件夹。
可选步骤:在 linux 上设置自动挂载
可以在 /etc/fstab
中配置自动挂载:
echo "sshfs#user@public_server_ip:/d /mnt/windows_d_drive fuse.sshfs port=2022,allow_other 0 0" | sudo tee -a /etc/fstab
这样,linux 电脑重启后也会自动挂载 windows d 盘到指定目录。
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。
发表评论