实践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

ef2ef86f19ab69dc5b8ecdf6ffc89705.png

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

modprobe cifs

530b00e3b5e772f21cbd41b22f267836.png

第三步:准备共享文件夹信息

在实际操作前,我们需要以下文件夹共享信息,操作时按实际情况来修改:

  • 共享文件夹地址: \\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:指定文件系统类型为CIFS
  • vers=3.0:指定SMB协议版本,可选值:1.0、2.0、2.1、3.0
    如果挂载失败,可以尝试不同的SMB版本。较老的系统可能需要使用vers=1.0或2.0
  • username:指定访问共享文件夹的用户名
  • password:指定共享文件夹的密码
  • domain=WORKGROUP:指定Windows工作组(可选)

第六步:验证挂载结果

检查挂载是否成功:

df -Th

c328f64335a7a5f53dca2d09b104a427.png
如上图,最后一行就显示了挂载的共享文件夹信息

查看共享文件夹中的内容:

ls -1 /mnt/win_share

4178474285b72e05d6cc0a57b8d6278a.png

第七步:设置开机自动挂载

为了避免每次重启后都要手动挂载,我们可以配置系统开机时自动挂载共享文件夹。
编辑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

35ecdb0e45c694acdd00359b2da4050c.png

可以加入 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

46b17c64e266984d9a8be9851dd84751.png

测试 /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

19b00e80375e465d9a70c286a8dda717.png

卸载挂载

当不再需要访问共享文件夹时,可以安全卸载:

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系统的电脑无缝集成到现有的存储基础设施中。