在Windows文件资源管理器中访问Linux文件
Linux 可以通过 SMB 挂载 Windows 共享文件夹;反过来,要在 Windows
文件资源管理器中浏览 Linux 文件,可以在 Linux 上运行 Samba
服务器。配置完成后,在资源管理器输入
\\Linux的IP\共享名,或将共享映射成网络驱动器即可。
本文以 Ubuntu/Debian 为例,目标是共享 Linux 用户
hope 的 /home/hope/sambashare,并让 Windows
记住登录凭据。实际操作时,请将示例中的 hope、目录和 IP
换成自己的值。Linux 和 Windows 应处于可以互相访问的局域网。
一、在 Linux 上安装 Samba
打开 Linux 终端:
1 | sudo apt update |
仅在 Linux 上安装用于挂载远程共享的 SMB
客户端,并不会自动把本机目录共享给 Windows;这里需要运行 Samba 的
smbd 服务。
二、创建要共享的目录
以当前 Linux 用户身份执行:
1 | mkdir -p "$HOME/sambashare" |
chmod 700
使该目录默认只对目录所有者开放。共享中的文件仍受 Linux
文件系统权限约束;Samba 配置允许写入,也不能越过 Linux
权限限制。如果准备共享已有目录,不必新建目录,但需要确认登录用户对该目录及其中的文件有相应的读写权限。
三、配置 Samba 共享
先备份配置文件,再打开编辑:
1 | sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak |
在文件末尾添加以下内容:
1 | [sambashare] |
其中,[sambashare] 是 Windows
中看到的共享名,不必与 Linux
文件夹同名;path
必须写成实际的绝对路径;valid users
填允许访问的 Linux 用户名。guest ok = no
表示需要身份验证,read only = no 表示共享允许写入。
在 nano 中按 Ctrl+O 保存,按
Ctrl+X 退出。随后检查配置:
1 | testparm |
如果报告语法错误,应先修正
/etc/samba/smb.conf,再继续。
四、设置 Samba 密码并启动服务
为 Linux 上已经存在的用户设置 Samba 密码:
1 | sudo smbpasswd -a hope |
执行 smbpasswd 时按提示输入两次密码。这里设置的是 Samba
登录密码,可以与 Linux 开机或 SSH
登录密码不同。用以下命令确认服务正在运行:
1 | systemctl status smbd |
如果 Linux 启用了 UFW 防火墙,允许 Samba 流量:
1 | sudo ufw allow samba |
共享只打算在局域网使用时,请确保 Linux 主机没有通过路由器或其他方式将 SMB 服务直接暴露到互联网。
五、在 Windows 文件资源管理器中打开共享
在 Linux 上查看局域网 IP:
1 | hostname -I |
如果输出多个地址,应选 Windows 能访问的那张局域网网卡对应的地址。例如
Linux 的 IP 是 192.168.0.105,则在 Windows
文件资源管理器顶部地址栏输入:
1 | \\192.168.0.105\sambashare |
按 Enter 后,首次连接时输入 Samba 用户名 hope
和第四步设置的密码。如果登录窗口中有“记住我的凭据”,勾选它。连接成功后,就可以像打开普通文件夹一样浏览、复制文件;能否修改文件还取决于共享设置和
Linux 文件权限。
建议直接输入完整路径
\\IP\共享名。共享没有自动出现在资源管理器的“网络”列表中,并不代表不能通过该路径访问。
六、让 Windows 以后自动连接
如果希望共享一直显示在“此电脑”中:
- 打开文件资源管理器,右键“此电脑”,选择“映射网络驱动器”。
- 选择一个盘符,例如
Z:。 - 文件夹填写
\\192.168.0.105\sambashare。 - 勾选“登录时重新连接”,然后完成映射。首次要求登录时,输入 Samba 凭据并勾选“记住我的凭据”。
此后打开“此电脑”即可找到该盘符。这里的“不再输入密码”是指 Windows 保存凭据并自动用于连接,Samba 共享本身仍有密码保护。如果 Linux 的 IP 经常变化,可在路由器中为它固定 DHCP 地址,否则映射路径也要随 IP 更新。
如果首次连接时没有出现保存凭据选项,或者以前保存过错误密码,可以在 Windows 开始菜单搜索“凭据管理器”,进入“Windows 凭据”,找到对应 Linux IP 的旧记录并更新或删除,然后重新连接。手动添加凭据时,网络地址填 Linux 的 IP,用户名和密码填 Samba 用户名及密码;访问共享时应使用同一个 IP 地址。
常见问题
| 现象 | 优先检查 |
|---|---|
| Windows 找不到共享 | Linux 与 Windows 是否互通;IP 是否正确;smbd
是否运行;Linux 防火墙是否允许 Samba。 |
| 能看到共享,但提示用户名或密码错误 | 是否执行了 sudo smbpasswd -a 用户名;Windows
凭据管理器中是否保存了旧密码;valid users
是否与用户名一致。 |
| 能打开文件,但不能创建或修改 | read only = no 是否生效;该用户对 Linux
实际目录及文件是否有写权限。 |
| 重启后盘符失效 | Linux 是否已开机并连入网络;IP 是否变化;映射时是否勾选“登录时重新连接”。 |
不建议为了省去密码而直接把共享改为访客访问。较新的 Windows 版本可能默认拒绝不安全的 SMB 访客登录;保存一次凭据即可实现日常使用时免重复输入密码,同时保留用户身份验证。