23.3 NFS 服务器
23.3.1 NFS 概述
NFS(Network File System,网络文件系统)最初由 Sun Microsystems 于 1984 年开发,是一种分布式文件系统协议,允许远程服务器共享文件目录。
NFS 采用远程过程调用(Remote Procedure Call,RPC)机制实现透明文件访问,客户端访问远程文件与访问本地文件系统无异。
23.3.2 共享目录配置
配置 NFS 服务器需编辑 /etc/exports 文件,添加以下内容:
ini
/usr/home/logs -alldirs 192.168.5.15该配置将本地 /usr/home/logs 目录及其所有子目录共享至远程主机 192.168.5.15,对应目录可在远程挂载访问。
23.3.3 文件结构
sh
/
├── etc
│ ├── exports # NFS 共享目录配置文件
│ └── rc.conf # 系统启动配置文件
├── usr
│ └── home
│ └── logs # NFS 共享目录
├── mnt # NFS 客户端默认挂载点
└── var
└── log
└── messages # 系统日志文件23.3.4 服务启动配置
完成共享目录的配置后,需设置并启动相关服务。
- 在 /etc/rc.conf 文件中加入:
ini
rpcbind_enable="YES" # 启用 RPC 服务以支持 NFS
nfs_server_enable="YES" # 启用 NFS 服务
mountd_enable="YES" # 启用 NFS 挂载守护进程- 启动 NFS 服务:
sh
# service nfsd start- 重新加载 NFS 挂载守护进程的配置:
sh
# service mountd reload- 在已配置的客户端上,启用 NFS 客户端服务:
sh
# sysrc nfs_client_enable="YES"23.3.5 客户端挂载
挂载前可用 showmount -e server 查看服务器已导出的 NFS 共享列表。将远程服务器 server 的 /usr/home/logs 目录挂载到本地默认挂载点 /mnt:
sh
# showmount -e server
# mount server:/usr/home/logs /mnt23.3.6 故障排除与未竟事宜
23.3.6.1 共享目录因使用软链接导致错误
技巧
在新版 FreeBSD(14.0-RELEASE 及以上)中,/home 不再是 指向 /usr/home 的软链接,该提交修改了默认目录结构,此问题已不复存在。
sh
mount.nfs: access denied by server while mounting此处的 access denied 并非用户权限问题,而是 NFS 服务端拒绝了挂载请求,根本原因在于服务端配置不正确。
查看系统日志内容:
sh
# cat /var/log/messages在系统日志中显示如下记录:
sh
bad exports list line '/home/logs': symbolic link in export path or statfs failed该记录表明问题原因是 /home/logs 路径中存在软链接,因此无法共享。在 FreeBSD 中,/home 曾是 /usr/home 的软链接,与部分 Linux 发行版不同。
将 /etc/exports 文件中的
ini
/home/logs -alldirs 192.168.5.15替换为:
ini
/usr/home/logs -alldirs 192.168.5.15该配置将本地 /usr/home/logs 目录及子目录共享至远程主机 192.168.5.15。
- 重新加载 NFS 挂载守护进程的配置:
sh
# service mountd reload- 在客户端上执行以下命令,先用
showmount -e server确认服务端已导出共享,再将远程服务器server的 /usr/home/logs 目录挂载到本地默认挂载点 /mnt:
sh
# showmount -e server
# mount server:/usr/home/logs /mnt此时远程目录已成功挂载到本地挂载点 /mnt。
23.3.7 参考文献
- FreeBSD 中文社区. 32.3.网络文件系统(NFS) | FreeBSD 中文手册[EB/OL]. [2026-03-25]. https://handbook.bsdcn.org/di-32-zhang-wang-luo-fu-wu-qi/32.3.-wang-luo-wen-jian-xi-tong-nfs. 该中文文档详细介绍了 FreeBSD 上 NFS 服务的配置与使用方法。
- FreeBSD Project. mount_nfs -- mount NFS file systems[EB/OL]. [2026-03-25]. https://man.freebsd.org/cgi/man.cgi?query=mount_nfs&sektion=8. 该手册页提供了 mount_nfs 命令的完整参数说明。
- 李守中. 李守中的技术笔记[EB/OL]. [2026-03-25]. https://note.lishouzhong.com. 该站点包含大量 Unix/Linux 技术文档的中文翻译。
- chhquan. freebsd nfs 挂载遇到的问题[EB/OL]. [2026-03-25]. https://blog.51cto.com/chhquan/1708250. 该文章分析了 FreeBSD NFS 挂载常见问题及解决方案。