«

Linux防火墙firewalld列出已开放端口list-all命令

时间:2026-11-15 07:09     作者:emer     分类: Linux


前言

排查外部访问不通时,先要确认防火墙到底放行了哪些端口。CentOS7 默认 firewalld,firewall-cmd --list-all 一次列出所有开放的端口、服务和放行来源。本文讲解 list-all 输出解读、分区域查看、查某端口是否开放和新增放行。

操作步骤

1. 列出当前区域全部放行规则

sudo firewall-cmd --list-all

显示 target、services、ports、protocols、source。

2. 只看开放端口

sudo firewall-cmd --list-ports

3. 查看已放行服务

sudo firewall-cmd --list-services

4. 查某端口是否开放

sudo firewall-cmd --query-port=80/tcp

返回 yes/no。

5. 查看所有区域规则

sudo firewall-cmd --get-zones
sudo firewall-cmd --list-all-zones

6. 临时开放一个端口测试

sudo firewall-cmd --add-port=8080/tcp

永久开放加 --permanent 后 reload。

常见坑

  1. 只加 --add-port 没加 --permanent,重启后规则丢失。
  2. 规则加在别的 zone,当前活跃区域看不到。
  3. list-all 显示的是默认区域,多区域要分别查。
  4. 云服务器还有安全组,firewalld 通了外部仍可能被云组拦。
  5. 协议写 tcp/udp 别漏,ICMP 和端口分开。
  6. 修改永久规则后必须 firewall-cmd --reload 才生效。
  7. 服务名和端口等效,混用导致重复放行。

总结

firewall-cmd --list-all 一次看清端口、服务、来源,--query-port 单独判断某端口。永久规则加 --permanent 再 reload。注意区分 firewalld 与云安全组,规则加错区域是访问不通的常见原因。

遇到问题加QQ23979811 协助处理

标签: Linux firewalld 端口 CentOS7