16.8 NFS 服务器

NFS 是一种网络文件系统协议(Network File System, NFS),用于在不同操作系统之间共享文件。

配置 /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

参考文献

最后更新于

这有帮助吗?