Linux挂载Windows共享文件夹本质是通过CIFS协议将远程SMB共享映射为本地目录,需Windows端启用共享、SMB协议及防火墙放行,Linux端安装cifs-utils、创建挂载点后,可临时挂载或通过/etc/fstab永久挂载并配置凭据文件与_netdev参数确保安全可靠。

Linux 挂载 Windows 共享文件夹,本质是通过 CIFS(Common Internet File System)协议连接 Windows 的 SMB 服务。这不是简单的网络访问,而是一次文件系统级的映射——把远程 Windows 目录变成你本地 Linux 系统里的一个普通目录,可读写、可脚本调用、可被程序直接访问。
Windows 端必须检查的几件事
很多挂载失败,问题其实出在 Windows 这边,而不是 Linux 命令写错:
- 共享文件夹已启用:右键文件夹 → 属性 → 共享 → 高级共享 → 勾选“共享此文件夹”,再点“权限”添加用户(如 Everyone 或具体账号),并勾选“更改”和“读取”
- SMB 协议支持已打开:Win10/Win11 默认禁用 SMB 1.0,但更关键的是要确保 SMB 2.x 或 3.0 已启用。进入“控制面板 → 程序 → 启用或关闭 Windows 功能”,确认勾选了 SMB 1.0/CIFS 文件共享支持(兼容旧配置)以及 SMB Direct(非必需,但建议开启)
- 防火墙放行:Windows Defender 防火墙需允许“文件和打印机共享”(对应 TCP 445 端口)。可在“高级设置”中检查入站规则是否启用
- 网络发现与共享设置:控制面板 → 网络和共享中心 → 更改高级共享设置 → 当前配置文件下启用“网络发现”和“文件和打印机共享”
Linux 端基础准备
没装工具、没建目录、没加载模块,命令再对也执行不了:
- 安装 cifs-utils:Ubuntu/Debian 运行
sudo apt install cifs-utils -y;CentOS/RHEL 运行sudo yum install cifs-utils -y(RHEL 8+ 用dnf) - 验证 CIFS 内核模块:
modprobe cifs不报错,说明模块可用;lsmod | grep cifs可确认是否已加载 - 创建挂载点目录:
sudo mkdir -p /mnt/winshare,然后设好归属:sudo chown $USER:$USER /mnt/winshare
临时挂载:快速验证连通性
适合调试、测试或一次性使用,重启后自动失效,不改系统配置:
- 基础命令(假设 Windows IP 是 192.168.1.100,共享名为
share,账号user,密码pass):sudo mount -t cifs //192.168.1.100/share /mnt/winshare -o username=user,password=pass,vers=3.0,uid=$UID,gid=$GID,iocharset=utf8 - 若提示“Permission denied”但账号密码没错,大概率是协议版本不匹配——尝试把
vers=3.0换成vers=2.1或vers=1.0(仅限测试,SMBv1 不安全) - 挂载后用
df -h | grep winshare查看是否成功;用ls /mnt/winshare看内容 - 卸载命令:
sudo umount /mnt/winshare
永久挂载:开机自动生效
写进 /etc/fstab 是生产环境推荐方式,但要注意两个关键细节:
- 先创建凭据文件(避免密码明文暴露):
sudo nano /etc/samba/credentials,写入两行:username=userpassword=pass
保存后立即执行:sudo chmod 600 /etc/samba/credentials - 编辑
/etc/fstab,追加一行://192.168.1.100/share /mnt/winshare cifs credentials=/etc/samba/credentials,vers=3.0,uid=1000,gid=1000,file_mode=0777,dir_mode=0777,_netdev 0 0
_netdev 表示等待网络就绪后再挂载,否则开机可能因网卡未启动导致挂载失败、目录变为空文件夹 - 测试 fstab 配置是否合法:
sudo mount -a。无报错即表示语法正确,下次重启也会自动挂载


















