温馨提示×

如何测试debian防火墙规则

小樊
78
2026-09-08 09:11:24
栏目: 智能运维

在 Debian 系统中,“防火墙”通常指 iptables / nftables,也可能用到 ufw(简易前端)。下面按“常见场景 + 测试方法”来说明,适合系统管理员或运维人员使用。


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

1. 查看是否使用 ufw

sudo ufw status
  • 如果显示 Status: active,说明用的是 ufw
  • 如果显示 Status: inactive,可能用的是 iptables/nftables

2. 查看 iptables 规则

sudo iptables -L -n -v

3. 查看 nftables 规则(Debian 10+ 常见)

sudo nft list ruleset

二、测试防火墙规则的常用方法

✅ 方法 1:从本机测试(loopback)

telnet 127.0.0.1 端口
# 或
curl http://127.0.0.1:端口

⚠️ 注意:

  • 本机访问通常不受防火墙限制
  • 仅适合测试“服务是否监听”

✅ 方法 2:从其他机器测试(最准确)

在另一台机器执行:

telnet <目标IP> 端口
# 或
nc -vz <目标IP> 端口
# 或
nmap <目标IP>

示例:

nc -vz 192.168.1.10 22

✅ 能通 → 防火墙允许
❌ 超时 → 被拦截或没监听


✅ 方法 3:用 tcpdump 看包是否到达

在 Debian 上:

sudo tcpdump -i eth0 port 22
  • 能看到包 → 网络层到达,可能被规则 DROP
  • 看不到包 → 前面已拦截或路由问题

✅ 方法 4:临时放通规则测试

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

测试完删除:

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

✅ 方法 5:日志方式验证规则命中

sudo iptables -A INPUT -p tcp --dport 22 -j LOG --log-prefix "SSH-TEST: "

查看日志:

sudo dmesg | grep SSH-TEST

三、ufw 的测试方法(推荐新手)

查看规则

sudo ufw status numbered

临时允许端口

sudo ufw allow 8080

测试后删除

sudo ufw delete allow 8080

四、常见错误排查清单

现象 可能原因
本机能通,外网不通 防火墙 DROP
nmap 显示 filtered 被防火墙拦截
能 ping 不能连端口 端口未开放
规则写了但不生效 规则顺序错误

五、推荐测试流程(标准)

  1. 确认服务监听
    ss -tulnp
    
  2. 本机测试
  3. 同网段机器测试
  4. 查防火墙规则
  5. 看日志 / tcpdump

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

  • Debian 版本
  • 用的是 ufw / iptables / nftables
  • 想测试哪个端口或场景

我可以直接帮你写具体测试命令。

0 踩