Ubuntu 防火墙 UFW 配置
讲清 Ubuntu 默认防火墙 ufw 的开关、默认策略、放行常用端口、与 iptables/nftables 的分层关系,以及桌面版与服务器版默认状态差异。
结论先行
Ubuntu 默认防火墙是 ufw(Uncomplicated Firewall),底层走 nftables/iptables。桌面默认关闭、服务器默认也关闭但装好即用。常用操作四行:启用、设默认策略、放行端口、查状态。
基本命令
sudo ufw status # 是否启用 + 已放行端口
sudo ufw enable # 启用
sudo ufw default deny incoming # 入站默认拒绝(推荐)
sudo ufw default allow outgoing # 出站默认放行(保留上网)
sudo ufw allow 22/tcp # 放行 SSH(必须先放行再启用!)
sudo ufw delete allow 22/tcp # 撤规则
顺序红线:先
ufw allow 22/tcp再ufw enable,否则远程 SSH 会被自己锁在门外。这是 UFW 事故第一名。
分层关系
| 层 | 工具 | 用法 |
|---|---|---|
| 简易 | ufw |
日常开关、常用端口 |
| 高级 | nftables |
ufw 搞不定的策略、源/目的复杂组合 |
| 兜底 | iptables |
老脚本/老文档 |
三者混用时以加载先后与表归属为准,排错先 ufw status verbose 看 ufw 是否实际生效。
桌面与服务器默认状态
| 场景 | 默认 |
|---|---|
| 桌面(桌面版条目) | ufw 未启用 |
| 服务器最小安装(服务器版条目) | ufw 已装,未启用;开机无默认规则 |
服务器公网部署建议:最小放行面(只放 SSH + 业务端口),其余一律 deny。索引见 Ubuntu 索引页。