💡 实战经验
改规则前先开 at 定时恢复
每次改 iptables 规则前,先跑 echo "iptables -F && iptables -P INPUT ACCEPT" | at now + 5 minutes。改对了就取消定时,改错了 5 分钟后自动恢复。这条规矩能救你的命。
Docker 是 iptables 的天敌
你以为封了端口,但 Docker 容器的端口照样可达——因为 Docker 绕过了 INPUT 链。在 Docker 宿主机上,只有 DOCKER-USER 链能控制容器端口,INPUT 链对 Docker 端口映射无效。
规则顺序决定一切
iptables 是从上到下逐条匹配,第一条命中的规则生效。如果你把 ACCEPT 写在 DROP 后面,永远匹配不到。放行规则在前,拒绝规则在后,这是铁律。
LOG 目标不要无限制
-j LOG 每匹配一个包就写一条日志。如果你把所有流量都 LOG,日志系统瞬间爆炸——磁盘满了、rsyslog 卡死、连 sshd 都受影响。LOG 前面加 -m limit --limit 5/min 限速。