把 iptables 学明白 iptables 是 Linux 上最让人头大的工具之一。此文是我学了一年多之后的总结。为什么学 iptables ufw / firewalld 不是更简单吗？是，但： Docker 端口映射用的就是 iptables Kubernetes / 各种云上 VPC，本质都是 iptables / nftables 调试时 iptables -L -v 看到的规则数比 ufw status 详细得多核心概念表（Table） filter：包过滤（默认表） nat：网络地址转换链（Chain） PREROUTING：路由决策前（DNAT） INPUT：发给本机的包 FORWARD：转发的包 OUTPUT：本机发出的包 POSTROUTING：路由决策后（SNAT / MASQUERADE）目标（Target） ACCEPT：放行 DROP：丢弃 REJECT：拒绝 LOG：记日志 SNAT/DNAT/MASQUERADE：NAT 调试技巧看规则命中计数：iptables -L -v -n，pkts 列显示匹配次数临时插 LOG 规则：iptables -I INPUT 1 -j LOG --log-prefix "[INPUT-DROP]" 跟踪连接：conntrack -L 常见错误默认策略忘了改：改 DROP 时先放行 SSH ESTABLISHED 漏了：返回包被拦规则没持久化：用 iptables-save > /etc/iptables.rules 配合 docker 的坑 docker 启动时会自己改 iptables 规则。自定义规则要注意和 docker 的冲突。