16.8 NFS 服务器
NFS 是一种网络文件系统协议(Network File System, NFS),用于在不同操作系统之间共享文件。
配置 /etc/exports
/etc/exports首先需要配置 /etc/exports 文件,按照手册页的指示,添加一行内容:
/usr/home/logs -alldirs 192.168.5.15该配置会将本地 /usr/home/logs 目录及其所有子目录共享给远程主机 192.168.5.15,对应的目录可在远程挂载访问。
服务
在
/etc/rc.conf中加入:
rpcbind_enable="YES" # 启用 RPC 服务以支持 NFS
nfs_server_enable="YES" # 启用 NFS 服务
mountd_enable="YES" # 启用 NFS 挂载守护进程启动 NFS 服务:
# service nfsd start重新加载 NFS 挂载守护进程的配置:
# service mountd reload在之前配置的客户端上,启用 NFS 客户端服务:
# sysrc nfs_client_enable="YES"挂载
将远程服务器 server 的 /usr/home/logs 目录挂载到本地默认挂载点 /mnt:
故障排除与未竟事宜
共享目录使用了软链接导致错误
技巧
在新版 FreeBSD(14.0-RELEASE 及以上)中,
/home不再是 指向/usr/home的软链接,该问题已不复存在。
这里的 access denied 并非用户权限问题,而是挂载请求被 NFS 服务端拒绝,真正的问题出在服务端配置不正确。
查看系统日志内容:
在系统日志中显示如下记录:
该记录表明问题原因在于 /home/logs 路径中存在软链接,因此无法共享。在 FreeBSD 中,/home 曾是指向 /usr/home 的软链接,这与部分 Linux 发行版的行为不同。
然后将 /etc/exports 文件中的
替换如下(将本地 /usr/home/logs 目录及子目录同步到远程主机 192.168.5.15):
重新加载 NFS 挂载守护进程的配置:
回到客户端上,运行如下命令挂载远程服务器 server 的
/usr/home/logs目录到本地默认挂载点/mnt:
此时远程目录已成功挂载到本地挂载点 /mnt。
参考文献
最后更新于
这有帮助吗?