iptables 与 UFW 对比:Linux 防火墙怎么选

iptables 直连内核 netfilter 功能全但语法晦涩;UFW 是其友好封装,常见任务一条命令搞定。本文讲清两者机制、规则写法、持久化与混合使用姿势。

最佳实践
操作系统与资源管理插画

直接回答:iptables 是直接对话内核 netfilter 框架的底层工具——控制到每个数据包,但命令密集晦涩易出错;UFW(Uncomplicated Firewall)是它的友好封装,常用规则一句话搞定。日常服务器防护用 UFW;复杂网络策略(NAT、集合与精细规则;流量整形通常由 tc 负责)回 iptables/nftables。不要让多个工具竞争同一规则集;UFW 通过 iptables 工具链管理规则,实际使用 legacy 或 nft 兼容后端需检查系统配置。

机制对照

netfilter 在内核里对每个包做决策。iptables 直接编写规则链(INPUT/FORWARD/OUTPUT);UFW 生成这些规则但只暴露高层命令。

远程变更安全

修改默认策略、启停管理器或重载规则前,先记录当前规则与实际 SSH 端口、管理来源地址,保留现有会话并确认云控制台/带外终端可用。先放行必要的 SSH、回环与已建立连接,再从第二个终端新建 SSH 会话验证,成功后才收紧旧规则。准备经验证的限时回退,不要远程清空规则或盲目执行 reset。IPv4、IPv6、云安全组及 Docker 转发路径都需分别验证。监控告警不能代替防锁定措施。

规则写法对比

# iptables:放行 22 端口
iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT

# UFW:同一件事
ufw allow 22/tcp

UFW 常用命令:ufw status verbose、ufw status numbered;删除前重查编号,启用或修改默认策略必须先遵循上面的远程安全流程。

复杂场景回 iptables

端口转发、NAT 伪装、按连接速率限速、自定义链——UFW 的高级规则可在其配置框架内管理,不要随意注入临时规则(或 /etc/ufw/before.rules 混合注入)。

持久化

iptables 规则重启即失——需 iptables-save/netfilter-persistent 固化;UFW 规则默认持久。这是新手最容易踩的坑之一。

常见问题(FAQ)

Q:用了 UFW 还能手写 iptables 规则吗?
A:能,但注意规则顺序——具体链路需检查 ufw show raw;before.rules 进入其相应处理阶段,并不无条件优先于系统所有规则。

Q:nftables 和这两个什么关系?
A:nftables 是 netfilter 的新前端(取代 iptables 的官方路线)。新系统可直接学 nftables;UFW 在使用 iptables-nft 的发行版可经兼容层生成 nftables 规则,不代表拥有通用原生 nft 后端。

Q:云服务器还需要 UFW 吗?
A:安全组是第一道、主机防火墙是第二道——纵深防御不嫌多。安全组误配置时,主机防火墙是最后防线。

官方参考

本文依据官方文档整理,示例未在本文中进行运行验证。生产部署需按所用版本、权限和实际负载验证。

延伸阅读

获取专属方案

联系我们

加入社区

微信扫码
加入官方交流群

立即体验

在线开通,按量计费,真正的云服务!

立即开始

选择观测云版本

代码托管平台