linux 查看防火墙放开的端口


在 Linux 系统中,查看防火墙放开的端口取决于你使用的防火墙工具。常见的工具有 firewalld(如 CentOS/RHEL 7+、Fedora)、ufw(Ubuntu 简单防火墙)和 iptables(传统工具)。以下是针对不同防火墙的查看方法:


1. 使用 firewalld(推荐用于 CentOS/RHEL/Fedora)

# 查看防火墙状态
sudo firewall-cmd --state

# 查看当前区域中已开放的端口和服务
sudo firewall-cmd --list-ports
sudo firewall-cmd --list-services

# 查看永久规则(重启后仍生效)
sudo firewall-cmd --permanent --list-ports
sudo firewall-cmd --permanent --list-services

# 查看所有详细信息(包括区域)
sudo firewall-cmd --list-all
sudo firewall-cmd --list-all-zones

示例输出:

ports: 80/tcp 443/tcp 22/tcp
services: ssh dhcpv6-client http https

2. 使用 ufw(Ubuntu 系统常见)

# 查看防火墙状态和已开放的规则
sudo ufw status

# 详细模式(显示更多细节)
sudo ufw status verbose

# 显示所有规则编号(便于删除)
sudo ufw status numbered

输出示例:

Status: active

To                         Action      From
--                         ------      ----
22/tcp                     ALLOW       Anywhere
80/tcp                     ALLOW       Anywhere

3. 使用 iptables(传统工具,或底层驱动)

# 列出所有规则(查看开放端口)
sudo iptables -L -n -v

# 只查看 INPUT 链的规则(最常用)
sudo iptables -L INPUT -n -v

# 查看 NAT 规则(如有端口转发)
sudo iptables -t nat -L -n -v

参数说明:

  • -L: 列出规则
  • -n: 显示 IP 和端口为数字形式(不解析)
  • -v: 显示详细信息

4. 使用 netstatss 查看正在监听的端口(系统级)

这些命令不直接显示防火墙规则,但可以查看哪些端口正在被服务监听,间接判断是否“可用”。

# 使用 ss(推荐,现代工具)
sudo ss -tulnp

# 使用 netstat(较老,部分系统已弃用)
sudo netstat -tulnp

参数说明:

  • t: TCP
  • u: UDP
  • l: 监听状态
  • n: 显示数字端口
  • p: 显示进程信息

总结

防火墙工具 查看开放端口命令
firewalld firewall-cmd --list-ports
ufw ufw status
iptables iptables -L -n -v
通用监听 ss -tulnp

⚠️ 注意:请根据你的 Linux 发行版和实际使用的防火墙工具选择对应命令。可先运行 sudo systemctl status firewalldsudo ufw status 来确认当前使用的防火墙。

posted @ 2025-10-24 15:51  guanyubo  阅读(124)  评论(0)    收藏  举报