在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哈!
如何在 Rocky Linux 9 中查看并修改系统的防火墙规则?
是否考虑过使用nftables替代firewalld来管理网络流量,它提供了更底层的规则配置能力?
更多回答
在Rocky Linux 9中,防火墙默认使用firewalld
服务进行管理。以下是查看及修改规则的核心步骤:
-
查看当前规则
- 运行
firewall-cmd --list-all
查看所有开放端口、服务及规则。 - 使用
firewall-cmd --state
确认防火墙是否运行。
- 运行
-
修改规则
- 开放端口:
firewall-cmd --add-port=端口号/协议(tcp/udp) --permanent
(如80/tcp
)。 - 添加服务:
firewall-cmd --add-service=服务名(如http、ssh) --permanent
。 - 删除规则:将
--add
替换为--remove
。
- 开放端口:
-
生效配置
- 执行
firewall-cmd --reload
使永久规则生效。 - 临时规则可省略
--permanent
,但重启后会失效。
- 执行
-
高级操作
- 通过
/etc/firewalld/zones/
直接编辑XML配置文件(需谨慎)。 - 使用
--zone=区域名
指定不同网络区域(默认public)。
- 通过
注意:修改前确保SSH等关键服务端口开放,避免远程连接中断。建议先测试临时规则,确认无误后再保存为永久规则。
-
检查防火墙状态
sudo systemctl status firewalld # 确认服务是否运行 sudo firewall-cmd --state # 查看防火墙是否激活
-
查看现有规则
sudo firewall-cmd --list-all # 显示所有规则(含服务/端口/区域) sudo firewall-cmd --list-ports # 仅显示开放端口 sudo firewall-cmd --list-services # 显示允许的服务(如ssh/http)
-
临时添加规则(重启失效)
sudo firewall-cmd --add-port=8080/tcp # 开放TCP 8080端口 sudo firewall-cmd --add-service=http # 允许HTTP服务
-
永久修改规则 添加
--permanent
参数并重载:sudo firewall-cmd --permanent --add-port=3306/tcp sudo firewall-cmd --permanent --remove-service=ftp sudo firewall-cmd --reload # 必须执行以应用永久规则
-
删除规则
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
保存临时规则
在Rocky Linux 9中,防火墙管理主要依赖firewalld工具。
-
查看规则:
- 运行
sudo firewall-cmd --list-all
可查看当前区域(默认public)的完整规则,包括开放端口、服务及富规则。 - 使用
sudo firewall-cmd --list-all-zones
可查看所有区域的配置。
- 运行
-
修改规则:
- 开放端口:
sudo firewall-cmd --permanent --add-port=端口号/协议
(如80/tcp),完成后执行sudo firewall-cmd --reload
生效。 - 添加服务:
sudo firewall-cmd --permanent --add-service=服务名
(如http)。 - 删除规则:将
--add
替换为--remove
即可反向操作。
- 开放端口:
-
重要建议:
- 始终通过
--permanent
参数修改持久化配置,避免重启后丢失。 - 修改后必须执行
sudo firewall-cmd --reload
而非重启服务,以确保业务连续性。 - 复杂规则建议使用
--zone=
指定区域,或用--rich-rule
定义精细化策略。
- 始终通过
-
排错:
- 若规则未生效,检查
firewalld
状态:systemctl status firewalld
- 使用
sudo firewall-cmd --runtime-to-permanent
可将临时规则转为永久配置。
- 若规则未生效,检查
在Rocky Linux 9中,使用firewall-cmd --list-all
查看防火墙规则,修改规则可通过firewall-cmd --add-port=端口/协议 --permanent
添加端口后执行firewall-cmd --reload
生效。
推荐
热门问答
部分内容依据人工智能生成,仅供参考,可能有误请注意甄别