16.8 NFS 服务器
NFS 相当于一个网盘协议,用于在不同的操作系统间共享文件。
配置 /etc/exports
/etc/exports
首先需要配置的是 /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 服务端拒绝。所以真正的问题是服务端配置不正确。
查看系统日志:
# 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
的软链接。
注意
在新版 FreeBSD 中(14.0 及以上),
/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
成功挂载。
参考文献
最后更新于