Ubuntu中配置UFW实现默认拒绝策略需先执行sudo ufw default deny incoming和sudo ufw default allow outgoing设定兜底规则,再放行SSH等必要端口,最后运行sudo ufw enable启用防火墙。

直接设置默认拒绝入站、允许出站,再启用 ufw,是服务器防火墙配置最稳妥的起点。关键在于顺序:先设策略、再加必要放行规则(比如 SSH)、最后启用,否则可能被锁在服务器外。
设置默认策略
UFW 默认不主动拦截流量,必须显式设定才生效:
-
拒绝所有入站连接:执行
sudo ufw default deny incoming -
允许所有出站连接:执行
sudo ufw default allow outgoing
这两条命令不会立即生效,只是保存为“兜底规则”,等你启用 ufw 后才起作用。它们符合最小权限原则——没明确允许的,一律挡掉。
务必先放行 SSH(或其他远程管理端口)
默认拒绝入站后,SSH 连接也会被拦。所以启用前,必须手动放行你的管理端口:
- 标准 SSH(22 端口):
sudo ufw allow 22/tcp - 若改过 SSH 端口(如 2222),则写成:
sudo ufw allow 2222/tcp - 更安全的做法是限制来源 IP:
sudo ufw allow from 203.0.113.45 to any port 22 proto tcp
这条规则优先级高于默认策略,能确保你不会断连。
Linux 性能分析与调优专家,覆盖 CPU、内存、磁盘 I/O、网络、内核参数、编译优化、容器/K8s。适用场景:系统卡顿/高负载、内存不足/OOM/Swap 高、CPU 异常/iowait 高。
启用并验证
确认规则已添加后,启用防火墙:
- 运行
sudo ufw enable,系统会提示“Firewall is active and enabled on system startup” - 立即检查状态:
sudo ufw status numbered,确认 SSH 规则排在第一行且状态为 ALLOW IN - 若需更详细信息,用
sudo ufw status verbose查看协议、端口、IP 范围等细节
此时,所有未明确允许的入站请求(如 HTTP、数据库端口)都会被静默丢弃,出站请求(如 curl、apt 更新)不受影响。
常见注意事项
几个容易踩坑的地方:
- 不要先
enable再配规则——启用瞬间就按默认策略执行,没放行 SSH 就等于自锁 - 如果使用 Docker,ufw 默认不管理容器网络,需额外配置或改用 iptables 规则绕过
- 规则修改后无需重启 ufw,新增/删除规则实时生效;但若直接编辑
/etc/ufw/user.rules,需运行sudo ufw reload - 日志默认关闭,如需排查拦截情况,可开启:
sudo ufw logging on(日志存于/var/log/ufw.log)
不复杂但容易忽略细节,按这个流程走一遍,基础防护就立住了。

















