CentOS如何查看已开放的防火墙端口

浏览:2日期:2026-10-24 08:48:34

作为运维人员常用的服务器操作系统,centos的防火墙配置是保障服务器安全的关键一环,很多时候我们需要确认哪些端口已经开放,既避免不必要的端口暴露,也能排查配置错误导致的服务无法访问问题,接下来就分享不同场景下centos查看已开放防火墙端口的实用方法。

针对默认firewalld防火墙的查看方法

目前centos 7及以上版本默认使用firewalld作为防火墙管理工具,绝大多数生产环境都沿用这个默认配置。操作前我们可以先确认firewalld的运行状态,输入命令`systemctl status firewalld`,如果输出显示`active (running)`就说明服务正常运行。接下来查看所有已开放端口的最简单命令是`firewall-cmd --list-ports`,执行后会直接输出所有开放的端口,格式为「端口号/协议」,比如常见的`80/tcp 443/tcp`就是开放了http和https服务。如果需要查看指定区域(默认公共区域是public)的开放端口,可以输入`firewall-cmd --zone=public --list-ports`。如果想获取更完整的防火墙配置信息,可以使用`firewall-cmd --list-all`,这个命令不仅会显示开放端口,还会列出开放的服务、允许访问的源ip、转发规则等全部信息,非常适合排查复杂的配置问题。

针对旧版本iptables防火墙的查看方法

部分仍在运行的centos 6及更早版本,或是部分自定义改造过的生产环境会使用iptables作为防火墙。这种情况下查看已开放端口,首先可以输入`iptables -l -n`列出所有过滤规则,在input链中查找目标为accept的规则,就能直观看到开放的端口。如果需要更清晰带编号的输出方便后续修改,可以使用`iptables -nvl --line-number`,输出会显示规则编号、数据包统计信息,方便快速定位开放的端口规则,也可以用`iptables-save`导出完整规则后过滤查看。

补充验证端口实际监听状态

防火墙开放端口并不代表一定有服务在对应端口监听,想要确认端口实际可用,可以使用`ss -tulpn | grep listen`命令,这个命令会列出所有正在监听的端口和对应服务进程,就能快速确认防火墙开放的端口是否真的有服务运行,避免出现防火墙开了端口但是服务没启动,导致访问失败的低级问题。如果系统没有ss命令,也可以使用`netstat -tulpn | grep listen`替代,不过netstat需要额外安装net-tools工具包。整体操作下来,就能清晰掌握centos系统防火墙所有开放端口的情况了。

标签: CentOS防火墙
相关文章: