centos是目前服务器领域应用最广泛的linux发行版之一,防火墙规则直接决定了服务能否对外提供正常访问,也关系着服务器的基础安全防护。很多运维新手甚至部分资深开发者,经常会混淆「服务本地监听端口」和「防火墙开放端口」,想要确认端口规则是否配置正确,掌握准确的查看方法十分必要,下文就整理了centos不同防火墙环境下的查看方式,帮你快速理清规则状态。
centos 7/8/9 默认firewalld防火墙查看方法
目前主流使用的centos 7及以上版本,默认采用firewalld作为防火墙管理服务,最常用的查看命令为firewall-cmd。如果要查看所有写入配置文件、重启后依然生效的永久开放端口,执行命令`firewall-cmd --permanent --list-ports`,输出会直接列出所有开放的端口范围。如果要查看当前正在运行、已经生效的开放端口,去掉`permanent`参数即可,执行`firewall-cmd --list-ports`就能直接输出结果。除了直接开放端口,很多用户会通过开放服务的方式放行端口,比如放行http服务就会自动开放80端口,此时可以执行`firewall-cmd --list-services`查看所有放行的服务,对应端口也默认开放。如果只需要验证单个端口(比如8080)是否开放,可以执行`firewall-cmd --query-port=8080/tcp`,返回yes即为开放,返回no则未开放。
centos 6及更早版本iptables防火墙查看方法
centos 6及更早版本默认使用iptables作为防火墙服务,查看开放端口可以直接执行`iptables -l -n`,输出规则列表中,标记为accept的条目里带有dport参数就是开放的目标端口。想要更直观过滤结果,可以执行`grep "dport" /etc/sysconfig/iptables`,直接输出所有包含端口放行规则的条目,一眼就能找到所有开放的端口。如果修改过规则没有保存,也可以执行`iptables-save | grep dport`查看当前生效的所有端口规则。
结合端口监听验证实际可用性
防火墙开放端口不代表服务可访问,如果服务没有正常启动,即使防火墙放行了端口也无法连接。可以执行`ss -tulnp | grep [端口号]`,查看对应端口是否有服务在本地监听,再配合外部telnet或nc工具测试连通性,就能确认端口配置完全正确。

整体来看,不同centos版本默认防火墙不同,只要对应环境选择命令,区分开永久规则和运行时规则,就能快速准确查到已开放的防火墙端口,方便排查服务访问问题,全文约685字。



































