第 16.8 节 NFS 服务器

NFS 相当于一个网盘协议,用于在不同的操作系统间共享文件。

首先需要配置的是 /etc/exports,参照文档的指示,加上一行:

/usr/home/logs -alldirs 114.514.1919.810

表示将 /usr/home/logs/ 下的所有子目录都共享到 114.514.1919.810 这个客户端上。

再在 /etc/rc.conf 中加入:

rpcbind_enable="YES"
nfs_server_enable="YES"
mountd_enable="YES"

启用所需的服务。

启动 nfsd:

service nfsd start

重载 mountd,读取配置文件:

service mountd reload

到之前配置的客户端上,开启 NFS 功能:

sysrc nfs_client_enable="YES"

挂载:

mount server:/usr/home/logs /mnt

即可。

故障排除

  • 共享目录使用了软链接导致错误

mount.nfs: access denied by server while mounting

这里提示的 access denied 和用户的权限没有任何关系,是挂载的时候被 NFS 服务端拒绝。所以真正的问题是服务端配置不正确。

回到服务端,查看共享目录:

showmount -e 192.168.1.1
Export list for 192.168.1.1:

很明显,没有共享出去任何目录。但是,之前配置文件的语法是正确的,问题出在哪里呢?

查看系统日志:

cat /var/log/messages

发现了这样的记录:

bad exports list line '/home/logs': symbolic link in export path or statfs failed

这一段记录说明了原因,/home/logs 路径中存在软链接,所以不能共享。和部分 Linux 发行版不同的是,在 FreeBSD 中,/home/usr/home 的软链接。

/home/logs -alldirs 114.514.1919.810

替换为:

/usr/home/logs -alldirs 114.514.1919.810

重载 mountd,读取配置文件:

service mountd reload

回到客户端上,运行:

mount server:/usr/home/logs /mnt

成功挂载。

参考文献

最后更新于

FreeBSD 中文社区 2024