默认rpcbind
服务会使用111
端口,如果想禁用111
端口,只需要禁用rpcbind
服务即可:
systemctl stop rpcbind.socket
systemctl disable rpcbind.socket
#检查111端口是否禁用成功
netstat -tuln |grep 111
rpcbind 服务详解
rpcbind 服务(原名 portmap)是 Linux/Unix 系统中用于 RPC(Remote Procedure Call,远程过程调用) 服务的核心组件,主要功能是为基于 RPC 的协议(如 NFS、NIS)动态分配和映射网络端口。以下是详细解析:
1. 核心作用
- 端口映射:
RPC 服务(如 NFS 服务端)启动时,会随机监听一个空闲端口,并将该端口注册到rpcbind
。客户端(如 NFS 客户端)通过查询rpcbind
(默认端口 111)获取目标服务的实际端口号,才能建立连接。 - 协议支持:
主要用于支持 Sun RPC(ONC RPC)架构的协议,例如:- NFS(网络文件系统)
- NIS(网络信息服务)
- mountd、statd 等 NFS 相关服务。
2. 工作流程示例(以 NFS 为例)
- 服务端启动:
NFS 服务启动时,随机选择一个端口(如2049
),并向rpcbind
注册该端口。 - 客户端访问:
客户端访问 NFS 前,先向服务端的rpcbind
(端口 111)查询 NFS 的实际端口。 - 建立连接:
rpcbind
返回端口号后,客户端直接与 NFS 服务通信。
3. 关键特性
- 依赖关系:
如果关闭rpcbind
,依赖它的服务(如 NFS)将无法被客户端发现。 - 动态端口分配:
避免服务因固定端口被占用而启动失败。 - 安全性风险:
rpcbind
可能暴露系统信息,需配合防火墙限制访问(仅允许可信网络)。
4. 管理命令
查看当前 RPC 服务注册信息
rpcinfo -p
输出示例:
program vers proto port service
100000 4 tcp 111 portmapper
100003 3 tcp 2049 nfs
(显示已注册的 RPC 程序及其端口)
5. 安全注意事项
- 防火墙配置:
限制对rpcbind
端口(111/TCP/UDP)的访问,仅允许必要客户端:sudo ufw allow from 192.168.1.0/24 to any port 111 # 示例:允许内网
- 禁用不必要的服务:
如果不使用 NFS/NIS,建议关闭rpcbind
:sudo systemctl disable --now rpcbind
6. 常见问题
- NFS 无法挂载:
检查rpcbind
是否运行,且客户端能访问服务端的 111 端口。 - 高负载或延迟:
rpcbind
本身轻量,但若 RPC 服务过多(如大量 NFS 请求),可能需优化后端服务。
总结
rpcbind
是 RPC 服务的“电话簿”,核心作用是动态管理端口映射。启用条件:仅当系统运行 NFS/NIS 等 RPC 服务时需要;否则可关闭以降低安全风险。