银河麒麟V10防火墙下访问NFS共享:端口开放全攻略
银河麒麟V10防火墙下访问NFS共享:端口开放全攻略
一、问题背景:防火墙与NFS服务的端口博弈
在银河麒麟V10系统中启用防火墙后,直接访问NFS共享目录时可能遇到RPC: Unable to receive
等网络阻断问题。这是因为NFS服务依赖多个端口协同工作,而防火墙默认未开放这些端口。本文将详细介绍如何在保留防火墙防护能力的前提下,安全开放NFS所需端口,实现共享目录的正常访问。
二、NFS服务的端口需求解析
NFS(Network File System)是基于RPC(Remote Procedure Call)架构的服务,其通信依赖以下核心端口:
服务组件 | 端口号 | 协议 | 作用描述 |
---|---|---|---|
rpcbind | 111 | TCP/UDP | 负责RPC端口映射,是NFS通信的基础 |
nfs-server | 2049 | TCP | NFS数据传输的主端口 |
mountd | 20048 | TCP/UDP | 处理客户端挂载请求 |
注意:部分环境中mountd
可能使用动态端口(由rpcbind
分配),此时需通过rpcinfo -p <服务器IP>
命令查询实际端口,但静态端口配置更便于防火墙管理。
三、命令行方式开放端口(推荐)
3.1 永久开放端口(重启后生效)
以root权限执行以下命令,分别开放NFS相关端口:
# 开放rpcbind端口(TCP协议)
firewall-cmd --permanent --add-port=111/tcp# 开放NFS主端口(TCP协议)
firewall-cmd --permanent --add-port=2049/tcp# 开放mountd端口(TCP协议,如需UDP支持可添加--add-port=20048/udp)
firewall-cmd --permanent --add-port=20048/tcp
3.2 重新加载防火墙规则
firewall-cmd --reload
此步骤用于使新配置立即生效,无需重启系统。
四、图形界面方式开放端口(适合新手)
4.1 打开安全中心
点击桌面左下角“开始菜单”,搜索并打开安全中心。
4.2 进入防火墙自定义配置
在安全中心界面中,选择左侧网络保护,点击右侧“防火墙”模块的自定义按钮。
4.3 添加端口规则
在弹出的“自定义配置”窗口中,点击添加规则,按以下参数分别创建规则:
-
rpcbind端口(TCP/UDP 111)
- 协议:选择
TCP
和UDP
- 端口:输入
111
- 方向:选择
入站
- 操作:允许连接
- 协议:选择
-
NFS主端口(TCP 2049)
- 协议:选择
TCP
- 端口:输入
2049
- 方向:入站
- 操作:允许连接
- 协议:选择
-
mountd端口(TCP/UDP 20048)
- 协议:选择
TCP
和UDP
- 端口:输入
20048
- 方向:入站
- 操作:允许连接
- 协议:选择
4.4 保存并应用配置
完成所有端口添加后,点击保存,防火墙会自动应用新规则。
五、端口连通性验证
5.1 客户端验证(以NFS服务器IP为192.168.1.21为例)
# 验证rpcbind端口(TCP 111)
telnet 192.168.1.21 111# 验证NFS主端口(TCP 2049)
telnet 192.168.1.21 2049# 验证mountd端口(TCP 20048)
telnet 192.168.1.21 20048
成功标志:若命令行显示Connected to...
或进入空白界面,说明端口可通;若提示connect: refused
,则需检查端口配置或服务器状态。
5.2 服务器端验证(检查端口监听情况)
# 查看rpcbind是否监听111端口
ss -ant | grep 111# 查看nfs-server是否监听2049端口
ss -ant | grep 2049# 查看mountd是否监听20048端口
ss -ant | grep 20048
正常结果:显示LISTEN
状态,如0.0.0.0:111
、0.0.0.0:2049
等。
六、完整流程验证:访问NFS共享目录
6.1 查看服务器共享目录
showmount -e 192.168.1.21
预期输出:显示服务器导出的共享目录,如/data/nfs-share 192.168.1.0/24
。
6.2 挂载共享目录
# 创建本地挂载点
mkdir -p /mnt/nfs-share# 临时挂载(需root权限)
mount -t nfs 192.168.1.21:/data/nfs-share /mnt/nfs-share
6.3 测试读写权限
touch /mnt/nfs-share/test.txt # 创建测试文件
ls /mnt/nfs-share/test.txt # 验证文件存在
七、高级技巧:动态端口场景处理
若NFS服务器使用动态端口(默认配置),需通过以下方式获取实际端口:
# 在服务器端查询mountd端口
rpcinfo -p 127.0.0.1 | grep mountd
# 输出示例:rpcbind 100005 1-4 tcp 20048 mountd
此时需在防火墙中开放查询到的动态端口(如20048),而非固定端口。为避免动态端口带来的管理复杂度,建议在服务器端配置静态端口(修改/etc/sysconfig/nfs
文件指定端口)。
八、总结
通过本文步骤,可在银河麒麟V10系统中实现防火墙开启状态下的NFS共享访问,既保障了系统安全,又满足了网络文件服务需求。关键操作要点如下:
- 明确NFS服务的三大核心端口:111(rpcbind)、2049(nfs)、20048(mountd)。
- 优先使用命令行批量配置端口规则,提升管理效率。
- 结合
telnet
和ss
命令验证端口连通性与监听状态。
合理配置防火墙规则,既能抵御外部攻击,又能为NFS等服务提供安全的运行环境,是服务器管理的重要实践。