通过示例了解 NFS 端口 2049

x33g5p2x  于2022-08-17 转载在 其他  
字(2.1k)|赞(0)|评价(0)|浏览(1030)

网络文件共享 (NFS) 是一种协议,它允许我们通过网络与其他 Linux 客户端共享目录和文件。NFS 的端口让很多人感到困惑。我们今天将深入探讨这一点。

  • NFSv3 端口
  • NFSv4 端口
NFSv3 端口

NFSv3 和 NFSv2 包括 portmapper、nfsd 和其他 NFS 服务,如 mountd、nlockmgr、status、pcnfs、quotad 等。

  • 对于 portmapper 服务,NFSv3 和 NFSv2 使用 TCP 或 UDP 端口 111。查询 portmapper 服务以获取用于 NFSv3 或 NFSv2 协议的服务的端口号,例如 mountd、statd 和 nlm 等。NFSv4 不需要 portmapper 服务。
  • 对于 nfsd,我们通常使用 TCP 或 UDP 端口 2049。
  • 其他 NFS 服务(如mounted、nlockmgr、status)的端口取决于产品。
NFSv3 端口示例

以下是用于 NetApp Data Ontap 和 NetApp 7 mode 的 NFSv3 端口。这是 NetApp 公司的两种不同产品。我们可以看到 portmapper 和 nfsd 的端口是相同的。其他端口不同。

Data ONTAP:

111 TCP/UDP portmapper
2049 TCP/UDP nfsd
635 TCP/UDP mountd
4045 TCP/UDP nlockmgr
4046 TCP/UDP status

Data ONTAP 7-Mode:

111 TCP/UDP portmapper
2049 TCP/UDP nfsd
4046 TCP/UDP mountd
4045 TCP/UDP nlockmgr
4047 TCP/UDP status
NFSv3 的工作原理

以下是 NFS 客户端如何工作的步骤。

  1. 客户端联系服务器的端口映射器以找出哪个网络端口被分配为 NFS 挂载服务。
  2. 客户端连接挂载服务并请求挂载文件系统。挂载服务检查客户端是否有权挂载请求的分区。(客户端挂载资源的权限基于 /etc/exports 文件中的指令或选项。)如果一切正常,挂载服务会返回肯定的结果。
  3. 客户端再次联系端口映射器——这次是为了确定 NFS 服务器位于哪个端口。(通常,这是端口 2049。)
  4. 每当客户端想要向 NFS 服务器发出请求(例如,读取目录)时,都会向 NFS 服务器发送一个 RPC。
  5. 客户端完成后,它会更新自己的挂载表,但不会通知服务器。
在 RedHat 中配置 NFSv3 端口

在 Redhat 中,每次 NFS 重新启动时,端口都会发生变化。我们可以为每个 NFS 服务(rquotad、mountd、statd 和 lockd)分配一个永久端口号。这将使我们的管理工作更轻松。
    这些服务的端口号是通过文件 /etc/sysconfig/nfs 配置的。如果该文件不存在,我们将需要创建它。它应该类似于以下示例:

# Port rquotad should listen on.
RQUOTAD_PORT=875
# TCP port rpc.lockd should listen on.
LOCKD_TCPPORT=32803
# UDP port rpc.lockd should listen on.
LOCKD_UDPPORT=32769
# Port rpc.mountd should listen on.
MOUNTD_PORT=892
# Port rpc.statd should listen on.
STATD_PORT=662
# Outgoing port statd should used. The default is port
# is random
# STATD_OUTGOING_PORT=2020
使用 Rpcinfo 命令检查 NFSv3 端口
$ rpcinfo -p 10.1.1.4
program vers proto port
100000 2 udp 111 rpcbind
100000 2 tcp 111 rpcbind
100000 3 udp 111 rpcbind
100000 3 tcp 111 rpcbind
100000 4 udp 111 rpcbind
100000 4 tcp 111 rpcbind
100003 3 udp 2049 nfs
100003 3 tcp 2049 nfs
100003 4 tcp 2049 nfs
100005 1 udp 635 mountd
100005 2 udp 635 mountd
100005 3 udp 635 mountd
100005 1 tcp 635 mountd
100005 2 tcp 635 mountd
100005 3 tcp 635 mountd
100021 4 udp 4045 nlockmgr
100021 4 tcp 4045 nlockmgr
100024 1 udp 4046 status
100024 1 tcp 4046 status
NFSv4 端口

NFSv4 不需要与 rpcbind、lockd 和 rpc-statd 服务交互。挂载和锁定协议已合并到 NFSv4 协议中。NFS 服务器上仍需要 nfs-mountd 服务来设置导出,但不涉及任何在线操作。对于 NFSv4,我们仅将 2049 端口用于 nfsd 服务。
    如果我们想远程使用 showmount 之类的工具,或者如果我们有 NFSv3 客户端,我们将需要打开更多端口。

参考文档

https://www.howtouselinux.com/post/nfs-port

相关文章