首先检查firewalld服务状态,使用systemctl status firewalld确认是否运行,若未运行则启动并设置开机自启;2. 使用sudo firewall-cmd --list-ports查看当前区域手动开放的端口;3. 通过sudo firewall-cmd --list-all-zones或指定区域查看详细规则,包括服务、端口、伪装等配置;4. 查询特定端口如80/tcp是否开放可用sudo firewall-cmd --zone=public --query-port=80/tcp,返回yes表示已开放;所有临时规则需添加--permanent参数并执行--reload使配置永久生效。

在Linux系统中,firewalld是常用的动态防火墙管理工具,支持网络区域、服务和端口的灵活配置。要查看系统防火墙当前开放了哪些端口,可以通过以下方法进行查询。
1. 检查firewalld运行状态
在查询端口前,先确认firewalld服务是否正在运行:
systemctl status firewalld
如果显示“active (running)”,说明防火墙已启用;若未运行,需启动服务:
sudo systemctl start firewalld sudo systemctl enable firewalld
2. 查看当前区域的开放端口
firewalld通过“区域(zone)”管理规则,默认使用public区域。使用以下命令查看当前活动区域及其开放端口:
sudo firewall-cmd --list-ports
该命令列出所有手动添加的开放端口,例如输出“80/tcp 443/tcp”,表示80和443端口已开放。
3. 查看所有区域的详细规则
若需要更全面的信息,包括服务、富规则和端口转发,可查看所有区域的配置:
sudo firewall-cmd --list-all-zones
或查看特定区域(如public)的详细信息:
sudo firewall-cmd --zone=public --list-all
输出内容包含services(允许的服务)、ports(自定义端口)、masquerade(伪装)、forward-ports等信息。
4. 查询特定端口是否开放
可通过以下命令检查某个端口是否已在指定区域中开放:
sudo firewall-cmd --zone=public --query-port=80/tcp
返回“yes”表示已开放,“no”表示未添加。
提示: 所有firewall-cmd命令若要永久生效(重启后保留),需加上--permanent参数,并在修改后重新加载配置:
sudo firewall-cmd --reload基本上就这些常用方法,掌握后能快速排查服务无法访问的问题。









