在 Ubuntu 上排查 iptables 故障,通常可以按下面这套思路一步步来:
sudo iptables -L -n -v
sudo iptables -t nat -L -n -v
sudo iptables -t mangle -L -n -v
重点看:
pkts)是否在增长DROP / REJECTUbuntu 可能用 iptables-legacy 或 nftables:
sudo iptables --version
ls -l /usr/sbin/iptables
如果是 nftables 环境:
sudo nft list ruleset
ip addr
ip route
确认:
sudo ss -tulnp
sudo iptables -I INPUT 1 -p tcp --dport 80 -j LOG --log-prefix "IPTABLES-DROP: "
然后看日志:
sudo dmesg | grep IPTABLES-DROP
sudo journalctl -k | grep IPTABLES-DROP
iptables 从上到下匹配,命中即停
❌ 错误示例:
iptables -A INPUT -j DROP
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
✅ 正确:
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -j DROP
sudo iptables -P INPUT DROP
如果你没显式放行,所有流量都会被丢。
sudo iptables -A INPUT -i lo -j ACCEPT
sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
查看连接跟踪:
sudo conntrack -L
Docker 会自动写 iptables 规则:
sudo iptables -L DOCKER-USER -n -v
sudo iptables -F
sudo iptables -X
sudo iptables -P INPUT ACCEPT
sudo iptables -P FORWARD ACCEPT
sudo iptables -P OUTPUT ACCEPT
sudo tcpdump -i eth0 port 80
Ubuntu 常用:
sudo apt install iptables-persistent
sudo netfilter-persistent save
iptables -L -n -v 看计数如果你愿意,可以把 具体现象 + iptables 规则(iptables-save) 发出来,我可以帮你精确分析是哪一条规则的问题。