linux防火墙端口查询命令
linux防火墙端口查询命令详细介绍
在 Linux 系统中,查询防火墙开放端口的命令主要取决于所使用的防火墙工具(常见的有 iptables 和 firewalld),以下是具体方法:
一、使用
firewalld(适用于 CentOS 7+、Fedora 等系统)
firewalld 是较新的防火墙管理工具,支持动态管理规则。
1. 查看当前开放的端口
bash
firewall-cmd --list-ports
输出示例:
plaintext
80/tcp 443/tcp 22/tcp
表示当前开放了 80、443(HTTP/HTTPS)和 22(SSH)端口的 TCP 连接。
2. 查看所有防火墙规则(包括端口、服务等)
bash
firewall-cmd --list-all
输出会更详细,包括区域(默认是 public)、允许的服务、端口、转发规则等。
二、使用
iptables(适用于 Ubuntu、传统 CentOS 等系统)
iptables 是经典的防火墙工具,通过规则链管理网络流量。
1. 查看所有防火墙规则(包括端口)
bash
iptables --line-numbers
-L:列出所有规则链;-n:以数字形式显示 IP 和端口(如用80代替http);--line-numbers:显示规则的行号(方便后续删除或修改)。
输出示例:
plaintext
Chain INPUT (policy ACCEPT)num target prot opt source destination
1 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:22
2 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80
其中 tcp dpt:22 表示允许 TCP 22 端口(SSH)的入站连接。
2. 仅查看开放的 TCP 或 UDP 端口
如果规则较多,可以通过 grep 过滤特定协议:
bash
iptables
iptables
三、注意事项
- 以上命令需要
sudo或 root 权限执行; - 如果防火墙未启用(如
firewalld状态为inactive),可能不会显示任何规则; - 若使用
ufw(Ubuntu 的简化防火墙工具),可通过sudo ufw status查看端口开放情况(本质是对iptables的封装)。