在 Debian 里,“防火墙”通常指 iptables / nftables(以及前端如 ufw)。调试防火墙日志,关键有三点:确认日志是否开启 → 找到日志位置 → 分析日志内容。下面按常见场景说明。
# 查看是否使用 ufw
sudo ufw status
# 查看 nftables
sudo nft list ruleset
# 查看 iptables
sudo iptables -L -n -v
常见组合:
# 允许记录被拒绝的连接
sudo ufw logging on
# 更详细
sudo ufw logging medium
# 或
sudo ufw logging high
日志位置:
/var/log/ufw.log
/var/log/syslog
sudo iptables -A INPUT -p tcp --dport 22 -j LOG --log-prefix "IPTABLES-DROP: "
sudo iptables -A INPUT -j DROP
说明:
--log-prefix:方便 grepsudo nft add table inet filter
sudo nft add chain inet filter input '{ type filter hook input priority 0; }'
sudo nft add rule inet filter input tcp dport 22 log prefix "NFT-DROP: " drop
# ufw
sudo tail -f /var/log/ufw.log
# 通用
sudo tail -f /var/log/syslog
sudo journalctl -f
sudo journalctl -k | grep IPTABLES
sudo journalctl -k | grep NFT
sudo ufw allow 22
sudo iptables -A INPUT -p tcp --dport 3306 -j LOG
# 不要马上 DROP
sudo iptables -L -v -n
sudo nft list ruleset
| 现象 | 可能原因 |
|---|---|
| 看不到日志 | 没加 LOG 规则 |
| 有日志但连不上 | DROP/REJECT 太早 |
| 日志太多 | 日志级别太高 |
| SSH 被锁 | 没允许 22 |
如果你愿意,可以告诉我:
我可以直接给你可复制的命令。