Plainnotes

用 LOG 目标找出是谁在丢包

2025-06-25 · 3 分钟网络

防火墙配好了,某个端口就是不通,ufw status 显示放行了。别猜,让内核告诉你。

在 DROP 规则前面插一条 LOG:

iptables -I INPUT 3 -p tcp --dport 8080 -j LOG --log-prefix 'FWTEST: ' --log-level 4

然后 dmesg -w | grep FWTEST 或者 journalctl -k -f | grep FWTEST。能看到包就到了,说明是后面的规则在丢;什么都看不到,说明包根本没到这台机器(安全组、路由、或者上游设备)。

注意 LOG 不是终止目标,包会继续往下走;--log-level 4 是 warning,避免被默认的 info 刷屏淹没。

生产上加日志要限速,-m limit --limit 10/min,否则被扫描时日志本身能把磁盘写满。