NFS 持久化挂载:把群晖共享目录挂到 Ubuntu 并开机自动生效
从 showmount 确认导出、手动 mount 验证,到写 fstab 并重启复核的一次实战记录,含 NFS 服务端需要打开的设置与挂不上的排查顺序。
将 Synology NAS 共享目录挂载到 Ubuntu 服务器
环境信息
| 项目 | NFS 服务端 (NAS) | NFS 客户端 (服务器) |
|---|---|---|
| IP 地址 | 192.168.1.10 | 192.168.1.20 |
| 系统 | Synology DSM (NAS) | Ubuntu 22.04.5 LTS |
| 共享路径 | /volume1/share | — |
| 本地挂载点 | — | /mnt/Atest |
网络架构图
┌─────────────────────┐ NFS (TCP) ┌─────────────────────┐ │ Synology NAS │ ◄──────────────────────► │ Ubuntu Server │ │ 192.168.1.10 │ /volume1/share │ 192.168.1.20 │ │ │ │ │ │ NFS Server 端 │ NFSv4 │ NFS Client 端 │ └─────────────────────┘ └─────────────────────┘▼ ┌──────────────────┐ │ 本地挂载点: │ │ /mnt/Atest │ │ (开机自动挂载) │ └──────────────────┘
第一步:确认 NFS 服务端共享
在客户端上查看 NFS 服务端导出了哪些共享目录:
# 查看 NFS 服务器的共享列表
showmount -e 192.168.1.10预期输出:
Export list for 192.168.1.10:
/volume1/share *
/volume1/share *
/volume1/share *看到 /volume1/share 且允许 * (所有主机) 或指定 IP 访问,即可继续。
第二步:安装 NFS 客户端
确保 NFS 客户端工具已安装:
# 更新软件源
sudo apt update
# 安装 NFS 客户端工具
sudo apt install -y nfs-common验证安装:
# 检查 mount.nfs 命令是否存在
which mount.nfs本环境已预装 nfs-common,无需重复安装。
第三步:创建本地挂载点
在客户端创建一个空目录作为 NFS 挂载点:
# 创建挂载目录
sudo mkdir -p /mnt/Atest
# 验证目录已创建
ls -la /mnt/第四步:测试手动挂载
先手动测试挂载,确保网络和权限没有问题:
# 手动挂载 NFS 共享
sudo mount -t nfs 192.168.1.10:/volume1/share /mnt/Atest验证挂载状态:
# 查看挂载详情
df -h | grep Atest
# 或者使用 mount 命令
mount | grep Atest预期输出:
192.168.1.10:/volume1/share 3.5T 884G 2.7T 25% /mnt/Atest测试文件读写:
# 查看共享目录内容
ls -la /mnt/Atest/
# 创建测试文件
echo "NFS mount test" | sudo tee /mnt/Atest/test.txt
# 删除测试文件
sudo rm /mnt/Atest/test.txt如果手动挂载失败,请检查:
1. 网络连通性:ping 192.168.1.10
2. 防火墙是否放行 NFS 端口 (2049)
3. NAS 端共享权限配置
1. 网络连通性:ping 192.168.1.10
2. 防火墙是否放行 NFS 端口 (2049)
3. NAS 端共享权限配置
第五步:配置 fstab 持久化挂载
为了让 NFS 共享在系统重启后自动挂载,需要将挂载信息写入 /etc/fstab:
# 先卸载手动挂载(如果已挂载)
sudo umount /mnt/Atest
# 编辑 fstab 文件
sudo nano /etc/fstab在文件末尾添加以下行:
# NFS 共享 - Synology NAS Atest 目录
192.168.1.10:/volume1/share /mnt/Atest nfs defaults,_netdev 0 0fstab 参数说明:
| 参数 | 含义 |
|---|---|
| 192.168.1.10:/volume1/share | NFS 服务器 IP 和共享路径 |
| /mnt/Atest | 本地挂载点 |
| nfs | 文件系统类型 |
| defaults | 默认挂载选项 (rw, suid, dev, exec, auto, nouser, async) |
| _netdev | 告诉系统这是网络设备,等到网络启动后再挂载 |
| 0 0 | dump 和 fsck 选项 (NFS 不需要) |
也可以添加更多选项,例如:
192.168.1.10:/volume1/share /mnt/Atest nfs defaults,_netdev,hard,timeo=600,retrans=2,rsize=131072,wsize=131072 0 0
硬挂载 (hard):NFS 服务器不可达时,程序会一直重试(推荐)
软挂载 (soft):超时后返回错误
192.168.1.10:/volume1/share /mnt/Atest nfs defaults,_netdev,hard,timeo=600,retrans=2,rsize=131072,wsize=131072 0 0
硬挂载 (hard):NFS 服务器不可达时,程序会一直重试(推荐)
软挂载 (soft):超时后返回错误
第六步:验证持久化挂载
# 使用 mount -a 测试 fstab 配置(不会重启)
sudo mount -a
# 验证挂载成功
df -h | grep Atest
# 检查挂载详情
mount | grep Atest
# 测试读写
ls -la /mnt/Atest/看到类似以下输出即表示持久化挂载配置成功:
192.168.1.10:/volume1/share on /mnt/Atest type nfs4 (rw,relatime,...)
192.168.1.10:/volume1/share on /mnt/Atest type nfs4 (rw,relatime,...)
模拟重启验证(可选):
# 卸载
sudo umount /mnt/Atest
# 重新挂载 fstab 中的所有条目
sudo mount -a
# 确认挂载恢复
df -h | grep Atest常见问题排查
1. showmount 报错 "RPC: Timed out"
# 检查防火墙是否放行 NFS 端口
sudo ufw allow from 192.168.1.10 to any port nfs
# 或者临时关闭防火墙测试
sudo ufw disable2. 挂载后权限不足 (Permission denied)
# 检查 NAS 端共享权限设置
# Synology DSM → 控制面板 → 共享文件夹 → Atest → 权限
# 尝试以 root 身份挂载
sudo mount -t nfs -o vers=4 192.168.1.10:/volume1/share /mnt/Atest3. 开机后 NFS 未自动挂载
# 确保 nfs-utils 服务已启用
sudo systemctl enable nfs-common
sudo systemctl start nfs-common
# 检查 fstab 是否有语法错误
sudo findmnt --verify4. 查看 NFS 挂载的详细信息
# 查看当前 NFS 挂载的详细参数
cat /proc/mounts | grep nfs
# 查看 NFS 统计信息
nfsstat -c5. 卸载 NFS 挂载点
# 正常卸载
sudo umount /mnt/Atest
# 如果提示 "target is busy",强制卸载
sudo umount -l /mnt/Atest本教程基于实际配置生成 | NFS 挂载点:/mnt/Atest → 192.168.1.10:/volume1/share
生成时间:2026-09-06
本文整理自郑州鼎益技术资料《NFS挂载教程》,公开发布前已做脱敏与校订 · 最后校订 2026-11-11