需要打开哪些端口才能确保 NFS 挂载成功?

需要打开哪些端口才能确保 NFS 挂载成功?

我设置了一个 NFS 服务器和客户端来挂载一些 NFS 卷(所有服务器都是 SUSE Enterprise Linux 11)。挂载成功,直到我重新启动机器时它们消失了 - 似乎它们没有从 /etc/fstab 重新加载。fstab 的相关行如下:

myhost01:/data      /data nfs    nfsvers=3,rw,sync,_netdev  0 0
myhost01:/data2      /data2 nfs  nfsvers=3,rw,sync,_netdev  0 0

我很好奇,因此我自己尝试了 sudo mount -a -v 来查看发生了什么,而我看到的结果让我感到惊讶。

mount.nfs: timeout set for Thu Apr  6 14:03:26 2017
mount.nfs: trying text-based options 'nfsvers=3,addr=X.X.X.XX'
mount.nfs: prog 100003, trying vers=3, prot=6
mount.nfs: trying X.X.X.XX prog 100003 vers 3 prot TCP port 2049
mount.nfs: prog 100005, trying vers=3, prot=17
mount.nfs: trying X.X.X.XX prog 100005 vers 3 prot UDP port 60219
mount.nfs: portmap query retrying: RPC: Timed out
mount.nfs: prog 100005, trying vers=3, prot=6
mount.nfs: trying X.X.X.XX prog 100005 vers 3 prot TCP port 36414
mount.nfs: portmap query failed: RPC: Remote system error - 
Connection timed out
mount.nfs: trying text-based options 'nfsvers=3,addr=X.X.X.XX'
mount.nfs: prog 100003, trying vers=3, prot=6
mount.nfs: trying X.X.X.XX prog 100003 vers 3 prot TCP port 2049
mount.nfs: prog 100005, trying vers=3, prot=17
mount.nfs: trying X.X.X.XX prog 100005 vers 3 prot UDP port 60219
mount.nfs: portmap query retrying: RPC: Timed out

除了标准 NFS 端口 (2049) 之外,还尝试了一个随机 UDP 和 TCP 端口,而我之前不允许这些端口通过我的安全组。我打开了这些端口,并且使用我的手动尝试成功挂载了 NFS,但在第二次重新启动时,端口再次发生变化,因此从 /etc/fstab 挂载再次失败。我的问题是,我必须允许哪些范围的端口才能确保 NFS 在重新启动时在所有情况下都能正常工作?

答案1

NFS(v2 和 v3)利用多种服务来完成其需要做的一切。我将在下面介绍它们的端口配置:

端口映射器

服务器端和客户端使用 TCP 端口 111 和 UDP 端口。

nfsd

对于 NFS v4 来说,这就是所需的全部内容。它在 NFS 服务器端的 TCP 和 UDP 端口 2049 上运行。

安装

/etc/sysconfig/nfs您在 nfsserver 上编辑并使用此参数配置端口:

MOUNTD_PORT=

服务器端需要打开 TCP 和 UDP。

锁定

(SUSE Linux Enterprise 11 SP2 及更高版本)

您将在其中/etc/sysconfig/nfs找到并根据需要设置参数:

STATD_PORT= LOCKD_TCPPORT= LOCKD_UDPPORT=

配额

仅当您使用 NFS 配额时才需要此配置。服务器上的 TCP 和 UDP 端口为 4003。


来源:https://www.suse.com/support/kb/doc/?id=7000524

相关内容