Linux系统查看防火墙开放端口需根据防火墙类型选择命令:CentOS 7+及RHEL 7+常用firewalld,执行firewall-cmd --list-ports或firewall-cmd --list-all可查看开放端口及服务;传统iptables用iptables -L -n -v(-n避免域名解析,-v显示详情);Ubuntu/Debian的ufw则通过ufw status或ufw status verbose查看,结合netstat -tuln或ss -tuln可进一步确认端口监听状态,确保防火墙规则与实际服务一致。
在Linux系统中,防火墙是保障服务器安全的重要屏障,通过控制端口的开放与关闭,决定外部流量是否可以访问系统中的服务,准确查看防火墙已开放的端口号,是排查服务无法访问、配置安全策略等操作的基础,本文将介绍主流Linux发行版中(如CentOS/RHEL、Ubuntu/Debian等)查看防火墙开放端口的常用方法,涵盖firewalld、ufw和iptables三大工具,帮助读者快速定位端口状态。
明确防火墙类型:不同工具对应不同系统
Linux发行版通常预装不同的防火墙管理工具,查看端口前需先确认当前系统使用的防火墙类型:
- CentOS/RHEL 7及以上版本、Fedora等默认使用
firewalld; - Ubuntu/Debian等默认使用
ufw(Uncomplicated Firewall); - 传统Linux系统或需要精细控制规则时,可能使用
iptables(底层防火墙工具)。
可通过以下命令快速判断当前防火墙类型:

# 检查firewalld状态(CentOS/RHEL适用) systemctl status firewalld # 检查ufw状态(Ubuntu/Debian适用) ufw status # 检查iptables规则是否存在 iptables -L
使用firewalld查看开放端口(CentOS/RHEL等)
firewalld是动态防火墙管理工具,支持区域(Zone)、服务(Service)等概念,适合动态管理规则。
查看已开放的端口列表
使用firewall-cmd命令的--list-ports参数,直接显示所有已开放的端口号(格式为端口号/协议):
sudo firewall-cmd --list-ports
示例输出:
80/tcp 443/tcp 3306/tcp
表示当前开放了80(HTTP)、443(HTTPS)、3306(MySQL)端口的TCP协议访问。
查看防火墙规则详情(含服务名)
如果端口是通过“服务”名称(如http、ssh)开放的,可通过--list-all查看更详细的信息,包括服务名、端口、协议等:
sudo firewall-cmd --list-all
示例输出:
public (active)
target: default
icmp-block-inversion: no
interfaces: ens33
sources:
services: ssh dhcpv6-client http https
ports: 3306/tcp
protocols:
forward: no
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
其中services部分显示通过服务名称开放的端口(如http对应80端口),ports部分显示直接通过端口号开放的规则。
检查特定端口是否开放
若只想确认某个端口(如8080端口)是否开放,使用--query-port参数:
sudo firewall-cmd --query-port=8080/tcp
- 返回
yes:端口已开放; - 返回
no:端口未开放; - 返回
error:防火墙未运行或参数错误。
查看端口对应的服务信息
若想了解某个服务(如http)关联的端口号,可通过--info-service查看:
sudo firewall-cmd --info-service=http
示例输出:
http
ports: 80/tcp
protocols:
source-ports:
modules:
destination:
明确显示http服务默认使用80端口/TCP协议。
使用ufw查看开放端口(Ubuntu/Debian等)
ufw(Uncomplicated Firewall)是Ubuntu/Debian系统中简化版的防火墙工具,命令直观易用,适合新手和快速配置。
查看防火墙状态及开放端口
ufw status默认显示防火墙状态和已开放的规则(含端口和服务):
sudo ufw status
示例输出:
Status: active
To Action From
-- ------ ----
22/tcp ALLOW Anywhere
80/tcp ALLOW Anywhere
3306/tcp ALLOW 192.168.1.100
Status: active表示防火墙已启用;Action: ALLOW表示允许访问,DENY表示拒绝;From字段可指定IP(如168.1.100)或Anywhere(允许所有IP)。
查看详细规则(带编号)
若规则较多,可通过ufw status numbered为规则添加编号,方便后续管理(如删除规则):
sudo ufw status numbered
示例输出:
Status: active
To Action From
-- ------ ----
[ 1] 22/tcp ALLOW Anywhere
[ 2] 80/tcp ALLOW Anywhere
[ 3] 3306/tcp ALLOW 
