实践Linux挂载Windows共享文件夹或NAS文件夹,让Linux也能访问Windows文件
对于许多Linux用户来说,让Linux访问局域网内的Windows共享文件夹或NAS(网络附加存储)中的共享文件是一个常见需求,这最理想的方式,莫过于将这些网络共享位置的文件夹直接当作本地目录来使用。
笔者下面分享一份清晰、易懂的实践指南,通过CIFS/Samba协议,让Linux系统能够挂载并访问Windows共享文件夹或NAS上的共享文件夹。
第一步:安装必要工具
在开始挂载之前,我们需要安装cifs-utils工具包,它是Linux系统与Windows文件共享协议(SMB/CIFS)通信的核心组件。
对于 Debian/Ubuntu 系统,执行如下命令:
apt update
apt install cifs-utils -y
对于 RHEL/CentOS/Rocky Linux 系统,执行如下命令:
dnf install cifs-utils -y
第二步:验证系统模块
安装好cifs-utils后,需要确认系统是否正确加载了cifs模块:
lsmod | grep cifs

正常的返回结果会显示cifs模块信息,说明模块已正常加载。如果没有任何返回信息,则需要手动加载模块:
modprobe cifs

第三步:准备共享文件夹信息
在实际操作前,我们需要以下文件夹共享信息,操作时按实际情况来修改:
- 共享文件夹地址:
\\192.168.1.52\test - 用户名: admin
- 密码: admin123
- Linux挂载点: /mnt/win_share
- Windows工作组: WORKGROUP(可选)
第四步:创建挂载点
在Linux系统中创建一个目录作为挂载点:
mkdir -p /mnt/win_share
第五步:执行挂载操作
使用mount命令将Windows共享文件夹挂载到Linux系统:
mount -t cifs //192.168.1.52/test /mnt/win_share -o username=admin,password=admin123,domain=WORKGROUP,vers=3.0
参数说明:
-t cifs:指定文件系统类型为CIFSvers=3.0:指定SMB协议版本,可选值:1.0、2.0、2.1、3.0
如果挂载失败,可以尝试不同的SMB版本。较老的系统可能需要使用vers=1.0或2.0username:指定访问共享文件夹的用户名password:指定共享文件夹的密码domain=WORKGROUP:指定Windows工作组(可选)
第六步:验证挂载结果
检查挂载是否成功:
df -Th

如上图,最后一行就显示了挂载的共享文件夹信息
查看共享文件夹中的内容:
ls -1 /mnt/win_share

第七步:设置开机自动挂载
为了避免每次重启后都要手动挂载,我们可以配置系统开机时自动挂载共享文件夹。
编辑fstab文件:
nano /etc/fstab
在文件末尾添加以下行:
//192.168.1.52/test /mnt/win_share cifs username=admin,password=admin123,domain=WORKGROUP,iocharset=utf8,vers=3.0 0 0

可以加入 noauto,x-systemd.automount,以延迟挂载(仅在访问时挂载,避免启动时网络未就绪失败),还可以同时加入nofail参数,以在挂载网络共享存储出现错误时不会阻止系统正常启动:
//192.168.1.52/test /mnt/win_share cifs username=admin,password=admin123,domain=WORKGROUP,iocharset=utf8,vers=3.0,noauto,x-systemd.automount,nofail 0 0

测试 /etc/fstab 的配置是否正确:
mount -a
如果没有错误信息,说明配置成功。到此,Linux挂载NAS/Windows共享文件夹就完成了。
安全增强:使用凭据文件
为了避免在命令行中直接暴露用户名和密码,推荐使用读取凭据文件的方式:
创建一个凭据文件
nano /etc/smb-credentials
输入访问共享文件夹的认证信息:
username=admin
password=admin123
domain=WORKGROUP
修改这个文件的权限,确保只有 root 用户可以读写它,以防止其他用户读取:
chmod 600 /etc/smb-credentials
然后修改挂载命令为:
mount -t cifs //192.168.1.52/test /mnt/win_share -o credentials=/etc/smb-credentials,vers=3.0
开机自动挂载配置变更为(编辑 /etc/fstab):
//192.168.1.52/test /mnt/win_share cifs credentials=/etc/smb-credentials,iocharset=utf8,vers=3.0 0 0

卸载挂载
当不再需要访问共享文件夹时,可以安全卸载:
umount /mnt/win_share
或者使用共享地址
umount //192.168.1.52/test
如果遇到挂载点被占用(如有程序/终端正在访问),卸载可能会失败,这时可以强制卸载:
umount -f /mnt/win_share
或者
umount -l /mnt/win_share
注:-l(lazy)参数会立即将挂载点从文件系统中断开,但会等到所有占用进程结束后再进行真正的清理。它通常比强制卸载 (-f) 更安全,尤其适用于网络文件系统。
以上的内容,不仅适用于Linux挂载Windows共享,同样可以用于访问群晖NAS、威联通NAS等支持SMB协议的存储设备,在混合办公环境中,我们可以把Linux系统的电脑无缝集成到现有的存储基础设施中。