如何在 Rocky Linux 9 中查看并修改系统的防火墙规则?

问题浏览数Icon
49
问题创建时间Icon
2025-03-26 14:37:00
作者头像
snowliang22
  1. 检查防火墙状态

    sudo systemctl status firewalld  # 确认服务是否运行
    sudo firewall-cmd --state        # 查看防火墙是否激活
  2. 查看现有规则

    sudo firewall-cmd --list-all           # 显示所有规则(含服务/端口/区域)
    sudo firewall-cmd --list-ports         # 仅显示开放端口
    sudo firewall-cmd --list-services       # 显示允许的服务(如ssh/http)
  3. 临时添加规则(重启失效)

    sudo firewall-cmd --add-port=8080/tcp         # 开放TCP 8080端口
    sudo firewall-cmd --add-service=http         # 允许HTTP服务
  4. 永久修改规则 添加 --permanent 参数并重载:

    sudo firewall-cmd --permanent --add-port=3306/tcp
    sudo firewall-cmd --permanent --remove-service=ftp
    sudo firewall-cmd --reload  # 必须执行以应用永久规则
  5. 删除规则

    sudo firewall-cmd --remove-port=22/udp     # 删除UDP 22端口
    sudo firewall-cmd --permanent --remove-service=dhcpv6

注意

  • 使用 --zone=public 等参数可指定配置区域(默认public)
  • 复杂规则建议通过 --rich-rule 或编辑XML配置文件(/etc/firewalld/)实现
  • 修改后务必通过 firewall-cmd --runtime-to-permanent 保存临时规则

更多回答

作者头像
chengxiao66

在Rocky Linux 9里看防火墙规则,直接用 sudo firewall-cmd --list-all 就能看到当前配置。想改规则的话,比如开个端口,用 sudo firewall-cmd --add-port=80/tcp --permanent(--permanent是让规则重启后也生效),改完记得sudo firewall-cmd --reload刷新生效。删规则就把--add换成--remove。全程用firewalld操作,别用iptables哈!

作者头像
airlift01

在Rocky Linux 9中,防火墙默认使用firewalld服务进行管理。以下是查看及修改规则的核心步骤:

  1. 查看当前规则

    • 运行 firewall-cmd --list-all 查看所有开放端口、服务及规则。
    • 使用 firewall-cmd --state 确认防火墙是否运行。
  2. 修改规则

    • 开放端口firewall-cmd --add-port=端口号/协议(tcp/udp) --permanent(如 80/tcp)。
    • 添加服务firewall-cmd --add-service=服务名(如http、ssh) --permanent
    • 删除规则:将--add替换为--remove
  3. 生效配置

    • 执行 firewall-cmd --reload 使永久规则生效。
    • 临时规则可省略--permanent,但重启后会失效。
  4. 高级操作

    • 通过 /etc/firewalld/zones/ 直接编辑XML配置文件(需谨慎)。
    • 使用 --zone=区域名 指定不同网络区域(默认public)。

注意:修改前确保SSH等关键服务端口开放,避免远程连接中断。建议先测试临时规则,确认无误后再保存为永久规则。

作者头像
ricklong77

是否考虑过使用nftables替代firewalld来管理网络流量,它提供了更底层的规则配置能力?

作者头像
mingri09

在Rocky Linux 9中,防火墙管理主要依赖firewalld工具。

  1. 查看规则

    • 运行 sudo firewall-cmd --list-all 可查看当前区域(默认public)的完整规则,包括开放端口、服务及富规则。
    • 使用 sudo firewall-cmd --list-all-zones 可查看所有区域的配置。
  2. 修改规则

    • 开放端口sudo firewall-cmd --permanent --add-port=端口号/协议(如80/tcp),完成后执行 sudo firewall-cmd --reload 生效。
    • 添加服务sudo firewall-cmd --permanent --add-service=服务名(如http)。
    • 删除规则:将 --add 替换为 --remove 即可反向操作。
  3. 重要建议

    • 始终通过 --permanent 参数修改持久化配置,避免重启后丢失。
    • 修改后必须执行 sudo firewall-cmd --reload 而非重启服务,以确保业务连续性。
    • 复杂规则建议使用 --zone= 指定区域,或用 --rich-rule 定义精细化策略。
  4. 排错

    • 若规则未生效,检查firewalld状态:systemctl status firewalld
    • 使用 sudo firewall-cmd --runtime-to-permanent 可将临时规则转为永久配置。
作者头像
xiaoyu66

在Rocky Linux 9中,使用firewall-cmd --list-all查看防火墙规则,修改规则可通过firewall-cmd --add-port=端口/协议 --permanent添加端口后执行firewall-cmd --reload生效。