当前位置: 首页 > ds >正文

银河麒麟V10防火墙下访问NFS共享:端口开放全攻略

银河麒麟V10防火墙下访问NFS共享:端口开放全攻略

一、问题背景:防火墙与NFS服务的端口博弈

在银河麒麟V10系统中启用防火墙后,直接访问NFS共享目录时可能遇到RPC: Unable to receive等网络阻断问题。这是因为NFS服务依赖多个端口协同工作,而防火墙默认未开放这些端口。本文将详细介绍如何在保留防火墙防护能力的前提下,安全开放NFS所需端口,实现共享目录的正常访问。

二、NFS服务的端口需求解析

NFS(Network File System)是基于RPC(Remote Procedure Call)架构的服务,其通信依赖以下核心端口:

服务组件端口号协议作用描述
rpcbind111TCP/UDP负责RPC端口映射,是NFS通信的基础
nfs-server2049TCPNFS数据传输的主端口
mountd20048TCP/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 添加端口规则

在弹出的“自定义配置”窗口中,点击添加规则,按以下参数分别创建规则:

  1. rpcbind端口(TCP/UDP 111)

    • 协议:选择TCPUDP
    • 端口:输入111
    • 方向:选择入站
    • 操作:允许连接
  2. NFS主端口(TCP 2049)

    • 协议:选择TCP
    • 端口:输入2049
    • 方向:入站
    • 操作:允许连接
  3. mountd端口(TCP/UDP 20048)

    • 协议:选择TCPUDP
    • 端口:输入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:1110.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共享访问,既保障了系统安全,又满足了网络文件服务需求。关键操作要点如下:

  1. 明确NFS服务的三大核心端口:111(rpcbind)、2049(nfs)、20048(mountd)。
  2. 优先使用命令行批量配置端口规则,提升管理效率。
  3. 结合telnetss命令验证端口连通性与监听状态。

合理配置防火墙规则,既能抵御外部攻击,又能为NFS等服务提供安全的运行环境,是服务器管理的重要实践。

http://www.xdnf.cn/news/18542.html

相关文章:

  • WindowsAPI|每天了解几个winAPI接口之网络配置相关文档Iphlpapi.h详细分析七
  • uniapp实现分页,效果如图
  • C++——C++重点知识点复习2(详细复习模板,继承)
  • 大模型部署
  • 基于随机森林的红酒分类与特征重要性分析
  • DeepSeek辅助编写的将xlsx格式文件中sheet1.xml按需分别保留或去掉标签的程序
  • 服务器间大文件迁移
  • 领域专用AI模型训练指南:医疗、法律、金融三大垂直领域微调效果对比
  • 电商项目_微服务_架构
  • 2025年国内AI大模型现状浅析
  • Shell 脚本条件测试
  • 一款更适合 SpringBoot 的API文档新选择(Spring Boot 应用 API 文档)
  • Rancher 管理的 K8S 集群中部署常见应用(MySQL、Redis、RabbitMQ)并支持扩缩容的操作
  • SpringBoot4发布!新特性解析
  • 2025.8.21总结
  • 【Bug】CentOS 7 使用vim命令报错vim: command not found
  • 37、需求预测与库存优化 (快消品) - /供应链管理组件/fmcg-inventory-optimization
  • AP状态管理中提到的两种“业务逻辑”
  • Java实现一个简单的LRU缓存对象
  • 50 C++ STL模板库-算法库 algorithm
  • python的校园研招网系统
  • RHCA10NUMA
  • Pytorch框架学习
  • Git 新手完全指南(一):从零开始掌握版本控制
  • 59. 螺旋矩阵 II|从“左闭右开”的圈层模拟入手(附图解与 C++ 实现)
  • 在 Linux 和 Docker 中部署 MinIO 对象存储
  • 使用Spring Retry组件优雅地实现重试
  • 【Python】利用heapq 模块实现一个按优先级排序的队列
  • 数字化图书管理系统设计实践(java)
  • CorrectNav——基于VLM构建带“自我纠正飞轮”的VLN:通过「视觉输入和语言指令」预测导航动作,且从动作和感知层面生成自我修正数据