Linux 用 CIFS/SMB 挂载 NAS 共享文件夹(含凭据与开机自动挂载)
cifs-utils 安装、445 端口连通性检查、smbclient 探共享、credentials 凭据文件与 fstab 持久化;开头还有 CIFS 与 NFS 的选型对比表。
适用环境: Ubuntu/Debian 系列 Linux | NAS: Synology 群晖 (支持 SMB/CIFS 协议)
测试环境: 客户端 Ubuntu 24.04 (192.168.1.20) | NAS 192.168.1.10
测试环境: 客户端 Ubuntu 24.04 (192.168.1.20) | NAS 192.168.1.10
CIFS vs NFS 对比
| 特性 | CIFS / SMB | NFS |
|---|---|---|
| 来源 | 微软 | Sun/Unix |
| 典型场景 | Windows 共享、跨平台 | Linux/Unix 服务器间 |
| 认证方式 | 用户名 + 密码 | IP/主机名认证 |
| 权限模型 | ACL(更细粒度) | Unix uid/gid |
| 性能 | 协议开销较大 | 高性能,低开销 |
| Windows 兼容 | 原生支持 | 需额外客户端 |
| Linux 兼容 | 需安装 cifs-utils | 原生内核支持 |
| 端口 | 445 (TCP) | 2049 (TCP/UDP) |
选择建议: NAS 主要给 Windows 用 → CIFS | NAS 主要给 Linux 用 → NFS(性能更好) | 混合环境 → 两者都配
完整操作步骤
更新软件源
# 更新 apt 软件包列表
sudo apt update -y安装 cifs-utils
# 安装 CIFS 挂载工具
sudo apt install -y cifs-utils
# 验证安装成功
which mount.cifs
# 输出: /usr/sbin/mount.cifs测试网络连通性
# ping NAS 地址,确认网络通
ping -c 3 192.168.1.10
# 测试 SMB 端口 (445) 是否开放
nc -zv 192.168.1.10 445
# 输出: Connection to 192.168.1.10 445 port [tcp/microsoft-ds] succeeded!常见问题: 如果 445 端口被拒绝,需要登录 NAS 管理界面开启 SMB/CIFS 服务。
查看 NAS 共享列表
# 列出 NAS 上所有可用的共享目录
smbclient -L //192.168.1.10 -U nasadmin
# 输入密码后会看到类似下面的共享列表:
# Sharename Type Comment
# --------- ---- -------
# nasadmin Disk
# home Disk Home directory of nasadmin注意: CIFS 路径直接用共享名,不需要写 NAS 内部卷路径(如 volume1)。
创建挂载点
# 创建本地挂载目录
sudo mkdir -p /mnt/nasadmin手动挂载测试
# 临时挂载,测试账号密码和路径是否正确
sudo mount -t cifs //192.168.1.10/nasadmin /mnt/nasadmin \
-o username=nasadmin,password=123
# 验证挂载成功
df -h /mnt/nasadmin
# 输出: //192.168.1.10/nasadmin 3.5T 1.2T 2.4T 32% /mnt/nasadmin
# 查看共享目录中的文件
ls /mnt/nasadmin/mount error(2): No such file or directory
这个错误通常是共享路径写错了。用
这个错误通常是共享路径写错了。用
smbclient -L 确认正确的共享名称。 卸载手动挂载
# 测试通过后先卸载,接下来配置永久挂载
sudo umount /mnt/nasadmin创建凭证文件(推荐)
# 创建 SMB 凭证文件,避免密码明文写入 fstab
sudo bash -c 'cat > /root/.smbcred << EOF
username=nasadmin
password=123
EOF'
# 设置权限,仅 root 可读
sudo chmod 600 /root/.smbcred
# 验证文件内容
cat /root/.smbcred写入 /etc/fstab 永久挂载
# 将挂载配置写入 fstab,开机自动挂载
echo '//192.168.1.10/nasadmin /mnt/nasadmin cifs credentials=/root/.smbcred,uid=1000,gid=1000,_netdev 0 0' \
| sudo tee -a /etc/fstab
# 验证 fstab 内容
cat /etc/fstab | grep nasadmin测试永久挂载
# 重新加载 fstab 配置并测试
sudo mount -a
# 确认挂载成功
df -h /mnt/nasadmin
# 确认文件可读
ls /mnt/nasadmin/完成! 重启系统后也会自动挂载。
fstab 参数说明
| 参数 | 说明 |
|---|---|
//192.168.1.10/nasadmin | NAS 共享地址和共享名 |
/mnt/nasadmin | 本地挂载点路径 |
cifs | 文件系统类型 |
credentials=/root/.smbcred | 凭证文件路径(替代明文密码) |
uid=1000,gid=1000 | 挂载后文件的所有者用户/组 ID |
_netdev | 等待网络就绪后再挂载,避免开机失败 |
0 0 | dump 和 fsck 选项(网络文件系统不需要) |
常用运维命令
# 查看已挂载的 CIFS
mount | grep cifs
# 手动卸载
sudo umount /mnt/nasadmin
# 查看 NAS 共享列表
smbclient -L //192.168.1.10 -U 用户名
# 交互式访问 NAS 共享
smbclient //192.168.1.10/nasadmin -U nasadmin
# 测试 fstab 配置(不实际挂载所有)
sudo mount -a常见错误排查
| 错误信息 | 原因 | 解决方法 |
|---|---|---|
could not resolve address | IP 地址格式错误 | 检查路径中是否多了冒号,如 //IP:/ 应为 //IP/ |
mount error(2): No such file or directory | 共享名不存在 | 用 smbclient -L 查看正确的共享名 |
Connection refused | SMB 服务未开启或端口不通 | 登录 NAS 管理界面开启 SMB 服务 |
Permission denied | 用户名或密码错误 | 检查凭证,用 smbclient 先测试连接 |
| 重启后挂载丢失 | fstab 缺少 _netdev | 在 fstab options 中添加 _netdev |
| 挂载后无法写入 | 权限不足 | 调整 uid/gid 或 NAS 端共享权限 |
教程生成时间: 2026-09-11 | 环境: Ubuntu 24.04 + Synology NAS
本文整理自郑州鼎益技术资料《CIFS_mount_tutorial》,公开发布前已做脱敏与校订 · 最后校订 2026-11-11