Linux系统查看防火墙开放端口的详细指南

admin
Linux系统查看防火墙开放端口需根据防火墙类型选择命令:CentOS 7+及RHEL 7+常用firewalld,执行firewall-cmd --list-portsfirewall-cmd --list-all可查看开放端口及服务;传统iptables用iptables -L -n -v-n避免域名解析,-v显示详情);Ubuntu/Debian的ufw则通过ufw statusufw status verbose查看,结合netstat -tulnss -tuln可进一步确认端口监听状态,确保防火墙规则与实际服务一致。

在Linux系统中,防火墙是保障服务器安全的重要屏障,通过控制端口的开放与关闭,决定外部流量是否可以访问系统中的服务,准确查看防火墙已开放的端口号,是排查服务无法访问、配置安全策略等操作的基础,本文将介绍主流Linux发行版中(如CentOS/RHEL、Ubuntu/Debian等)查看防火墙开放端口的常用方法,涵盖firewalldufwiptables三大工具,帮助读者快速定位端口状态。

明确防火墙类型:不同工具对应不同系统

Linux发行版通常预装不同的防火墙管理工具,查看端口前需先确认当前系统使用的防火墙类型:

  • CentOS/RHEL 7及以上版本Fedora等默认使用firewalld
  • Ubuntu/Debian等默认使用ufw(Uncomplicated Firewall);
  • 传统Linux系统或需要精细控制规则时,可能使用iptables(底层防火墙工具)。

可通过以下命令快速判断当前防火墙类型:

Linux系统查看防火墙开放端口的详细指南

# 检查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协议访问。

查看防火墙规则详情(含服务名)

如果端口是通过“服务”名称(如httpssh)开放的,可通过--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      
文章版权声明:除非注明,否则均为xmsdn原创文章,转载或复制请以超链接形式并注明出处。

取消
微信二维码
微信二维码
支付宝二维码