搭建 NFS 服务
准备
安装 nfs-utils 包(包名可能因发行版而不同,详情参考对应发行版文档),并确保系统时间同步后,执行 systemd enable --now nfs-server.service
启动并启用 NFS 服务。
配置
服务端配置
指定根目录
以以 /srv/nfs
为 NFS 根目录,存储文件的硬盘分区在 /mnt/nfs
挂载为例,使用下述命令挂载分区并将挂载位置绑定挂载至 NFS 根目录:
|
|
可以在 fstab
中加入下述条目以持久化该绑定:
|
|
接着在 /etc/exports
文件中添加下述条目:
|
|
注意允许访问的 IP(范围)应以 CIDR 表示,参数中的 fsid=0
表示该目录为 NFS 根目录,其它目录须在其之下。
其它参数配置
除上述参数外,建议加上参数 insecure
、all_squash
、anonuid=65534
、anongid=65534
,
insecure
允许客户端使用大于 1024 的端口连接,其余三个参数将客户端的用户映射为服务端的用户 nobody
,以避免相关问题,同时也可以考虑使用如 NFSv4 ID 映射等其它映射方案或不进行映射。
防火墙配置
开放端口 2049 的 TCP 上行连接,使 NFSv4 服务可以被访问,如须访问 NFSv3 服务,则还需为 rpcbind 开放端口 111 的 TCP 与 UDP 连接,并在 /etc/nfs.conf
中加入下述内容以固定 mountd 的端口并在防火墙中开放:
|
|
使用
执行命令 exportfs -arv
或重启 NFS 服务以使 /etc/exports
中的配置生效,在客户端挂载即可,可能须指定类型为 NFS,若挂载失败,尝试包括服务器的分享根目录,这在某些操作系统上可能是必需的。也可以使用 /etc/fstab
以持久化挂载,如有需要,也可使用 TLS 等进行加密,本文不再赘述。
参考资料
- NFS - Arch Linux 中文维基
- nfs-utils - Gentoo Wiki
- nfs(5) — Arch manual pages
- exports(5) — Arch manual pages