在CentOS/RHEL中,如何配置 NFS 服务使用固定的端口?

默认情况下,一些 NFS 服务(server_side)使用众所周知的端口,但有些通常只使用随机端口。
由于严格的防火墙规则会阻止随机但未知的端口,因此随机端口的使用效果不佳。
因此,有时最好手动更改或者指定静态端口供 NFS 服务 (server_side) 使用。

这篇文章描述了如何配置 NFS 服务(服务器端)作为替代方案在静态端口上运行。

NFS服务器

NFS 服务(服务器端)包括:

  • NLM(NFS 锁管理器或者内核内锁)
  • rpc.mountd
  • rpc文件
  • rpc.rquotad
  • rpc.statd

请注意 lockd 和 rpc.statd 也在 NFS 客户端上运行。
此外,rpc.rquotad 严格来说并不是 NFS 系列的一部分,而是用于检查由 NFS 服务器共享并由一个或者多个 NFS 客户端安装的文件系统上的配额。

使用 NFSv3,rpc.nfsd 与 LOCKD/NLM、rpc.mountd 和 rpc.statd 交互。
但是,在 NFSv4 中,所有这些交互现在都被合并/整合了。

对于 CentOS/RHEL 5 和 6,nfs-utils RPM 提供 /etc/sysconfig/nfs 作为主要的 NFS(服务器端)配置文件。
rpc.nfsd 和 rpc.rquotad 的静态端口分别默认为 2049 和 875,因为它们被认为是众所周知的端口。
其他 NFS 服务(服务器端),例如 LOCKD/NLM、rpc.mountd 和 rpc.statd,通常只使用随机端口,但 /etc/sysconfig/nfs 确实提供了示例端口值以供参考。
示例端口值对于大多数场景来说已经足够了。

# cat /etc/services
nfs     2049/tcp nfsd shilp # Network File System
nfs     2049/udp nfsd shilp # Network File System
rquotad 875/tcp             # rquota daemon
rquotad 875/udp             # rquota daemon
# cat /etc/sysconfig/nfs
# 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 rquotad should listen on.
#RQUOTAD_PORT=875
# Port rpc.statd should listen on.
#STATD_PORT=662
# Outgoing port statd should used. The default is port
# is random
#STATD_OUTGOING_PORT=2020

服务控制

重启 nfs 服务:

# service nfs restart

重启 nfslock 服务:

# service nfslock restart

确认:

# rpcinfo -p
更多: zhilu jiaocheng

配置 /etc/sysconfig/nfs 的示例

要指定 LOCKD/NLM 使用空闲静态端口,我们只需取消注释 LOCKD_TCPPORT 和 LOCKD_UDPPORT 以设置新端口值,然后重新启动 nfs 服务或者 nfslock 服务。

LOCKD_TCPPORT=32803
LOCKD_UDPPORT=32769

要指定 rpc.mountd 使用空闲静态端口,我们只需取消 MOUNTD_PORT 的注释以设置新端口值,然后重新启动 nfs 服务。

MOUNTD_PORT=892

要指定 rpc.nfsd 使用 2049 以外的空闲静态端口,我们只需取消注释 RPCNFSDARGS 以添加新端口值,然后重新启动 nfs 服务。

RPCNFSDARGS="-p 20499"

要指定 rpc.rquotad 使用 875 以外的空闲静态端口,我们只需取消注释 RQUOTAD_PORT 以设置新端口值,然后重新启动 nfs 服务。

RQUOTAD_PORT=8755

要指定 rpc.statd 使用空闲静态端口,我们只需取消注释 STATD_PORT 和 STATD_OUTGOING_PORT 以设置新端口值,然后重新启动 nfslock 服务。

STATD_PORT=662
STATD_OUTGOING_PORT=2020
日期:2020-09-17 00:12:39 来源:oir作者:oir