温馨提示×

linux防火墙怎样测试规则

小樊
55
2026-10-16 00:48:21
栏目: 智能运维

在 Linux 下“测试防火墙规则”通常分几种情况:规则是否生效、流量是否被允许/拒绝、以及配置是否正确。下面按常见场景给你一套实用方法。


一、先确认你用的是哪种防火墙

不同发行版默认不同:

# 查看当前防火墙类型
sudo firewall-cmd --state      # firewalld(CentOS/RHEL 7+)
sudo ufw status               # UFW(Ubuntu 常见)
sudo iptables -L -n -v        # iptables(传统)

二、测试防火墙规则是否生效(最常用)

1️⃣ 从另一台机器测试端口

假设你想测试 80 端口是否开放:

# 从其他机器
telnet <服务器IP> 80
# 或
nc -vz <服务器IP> 80

✅ 能连上 → 规则允许
❌ 超时/拒绝 → 被防火墙拦了


2️⃣ 本机测试(仅限监听端口)

ss -lntp | grep 80

确认服务在监听,否则不是防火墙问题。


三、查看规则是否真的匹配(抓包验证)

1️⃣ iptables 看命中计数

sudo iptables -L -n -v

看 pkts 列是否增长。

2️⃣ 实时观察某条规则

sudo iptables -L INPUT -v -n --line-numbers

四、用 tcpdump 看包是否到达

sudo tcpdump -i eth0 port 80
  • 有包但连不上 → 被 DROP
  • 没包 → 网络/路由问题

五、临时加规则测试(不保存)

sudo iptables -I INPUT -p tcp --dport 8080 -j ACCEPT

测试完删掉:

sudo iptables -D INPUT -p tcp --dport 8080 -j ACCEPT

六、firewalld 测试方式

# 临时开放
sudo firewall-cmd --add-port=8080/tcp
# 测试
nc -vz IP 8080
# 恢复
sudo firewall-cmd --remove-port=8080/tcp

七、UFW 测试方式

sudo ufw allow 8080/tcp
# 测试
sudo ufw status

八、常见坑提醒

  • ❌ 只开防火墙没开服务
  • ❌ 云服务器还有 安全组
  • ❌ DROP 和 REJECT 表现不同
  • ❌ 规则顺序很重要(iptables 自上而下)

如果你愿意,可以告诉我:

  • 用的 系统(CentOS / Ubuntu)
  • 用的 防火墙类型
  • 想测的 端口 / 场景

我可以直接给你精确测试命令。

0 踩