linux rpcbind端口号,Linux: nfs 设置固定端口

# Linux : nfs 设置固定端口

因安全管理需要,内网机器也需要启用防火墙。由于nfs相关服务中存在非固定端口,需要将其设置成固定端口以便于设置防火墙。

本文记录下nfs设置固定端口的过程。

## 环境信息

机器:**Ubuntu 16.04.2 LTS**

## 设置步骤

nfs涉及到到服务有:**nfs、portmapper、rquotad、mountd、nlockmgr**,nfs和portmapper是固定端口,分别为2049、111,端口信息可以在 */etc/services* 中查到,以portmapper为例:

```shell

grep 'portmapper' /etc/services

```

结果如下,portmapper的tcp/udp都使用了111端口。

```

sunrpc 111/tcp portmapper rpcbind # RPC 4.0 portmapper TCP

sunrpc 111/udp portmapper rpcbind # RPC 4.0 portmapper UDP

```

*注意:不同os之间差异较大,像在 CentOS 7 中,除nlockmgr外,其他都是固定端口*

你可以使用 `rpcinfo -p` 查看所有使用 **rpcbind** 注册的rpc服务。

```shell

program vers proto port service

100000 4 tcp 111 portmapper

100000 3 tcp 111 portmapper

100000 2 tcp 111 portmapper

100000 4 udp 111 portmapper

100000 3 udp 111 portmapper

100000 2 udp 111 portmapper

100005 1 udp 20048 mountd

100005 1 tcp 20048 mountd

100005 2 udp 20048 mountd

100005 2 tcp 20048 mountd

100005 3 udp 20048 mountd

100005 3 tcp 20048 mountd

100024 1 udp 50866 status

100024 1 tcp 45152 status

100003 3 tcp 2049 nfs

100003 4 tcp 2049 nfs

100227 3 tcp 2049 nfs_acl

100003 3 udp 2049 nfs

100003 4 udp 2049 nfs

100227 3 udp 2049 nfs_acl

100021 1 udp 59293 nlockmgr

100021 3 udp 59293 nlockmgr

100021 4 udp 59293 nlockmgr

100021 1 tcp 42315 nlockmgr

100021 3 tcp 42315 nlockmgr

100021 4 tcp 42315 nlockmgr

```

mountd tcp/udp端口为20048、nlockmgr tcp为42315,udp为59293。**重启nfs服务后端口会发生变化**。

在 */etc/services* 的最后添加如下配置,为mountd和rquotad设置固定端口。

```

mountd 20048/tcp

mountd 20048/udp

rquotad 875/tcp

rquotad 875/udp

```

因nlockmgr在 */etc/services* 中配置没有效果,我改配置到了 */etc/sysctl.conf* 中。

```

fs.nfs.nlm_udpport=42315

fs.nfs.nlm_tcpport=42315

```

配置后使用 `/sbin/sysctl -p` 生效 */etc/sysctl.conf* 中的配置。

上面的端口信息你可以自由设定。

## 拓展阅读

碰到点问题就学点Linux,学习下 */etc/services* 和 */etc/sysctl.conf* 两个配置文件。

### /etc/services

用于记录网络服务名和对应的端口及协议,每一行数据由 **服务名称、端口、协议、别名** 四部分组成。很多服务都会使用这个文件,如果各服务都在这个文件中注册自己的端口信息,那主机上的端口使用情况会十分清晰,容易管理。

下面是熟知的 **ssh** 和 **http** 服务的例子。

```shell

ssh22/tcp# SSH Remote Login Protocol

ssh22/udp

http80/tcpwww# WorldWideWeb HTTP

http80/udp# HyperText Transfer Protocol

```

该文件也充当配置文件的作用,在应用程序中可以使用服务名和协议获取到对应的端口,使得应用程序不用关心端口号。

>Note:Linux端口范围为0-65535,不同范围含义不同。

>

>0 不建议使用

>1-1023 系统保留

>1024-4999 客户端程序自由分配

>5000-65536 服务端程序自由分配

### /etc/sysctl.conf

系统控制文件,用于配置系统信息。其中配置的内容对应了 **/proc/sys/** 目录下的子目录及文件。

以上面配置的 `fs.nfs.nlm_udpport=42315` 为例:

```shell

$ cat /proc/sys/fs/nfs/nlm_udpport

35818

```

`fs.nfs.nlm_udpport=42315` 这个配置转换成了配置文件,配置中的 **.(点)** 代表目录。

另,

* **/proc/** 目录每次在系统启动时都会重新挂载,**/proc/sys** 只是其中的一小部分。

* 修改 /etc/sysctl.conf 后需要使用 `sysctl -p` 来生效配置。

扫码或搜索 codercyj 关注微信公众号, 结伴学习, 一起努力

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值