Ubuntu Linux防火墙开启与关闭方法
Ubuntu系统用UFW命令行管理防火墙:sudoufwenable启用,disable停用。开启前放行SSH,关闭后验证inactive。建议默认拒绝入站、允许出站,配合规则防护。
在 Ubuntu 系统里,防火墙的开关操作,标准答案其实就一句话:用 UFW(Uncomplicated Firewall)命令行工具。执行 sudo ufw enable 启用,执行 sudo ufw disable 停用,简单直接。但问题来了——这么简单的命令,为什么很多人还是翻车?因为背后的门道,远不止输个命令这么简单。
UFW 从 Ubuntu 8.04 版本起就作为官方默认的防火墙管理器被集成进来,设计初衷就是让 iptables 的复杂配置变得友好,同时保持底层安全性的严谨。Canonical 官方文档和 LTS 版本发布说明里反复强调过,UFW 在桌面和服务器场景下都经过了充分验证,支持规则持久化、服务名映射(比如 ssh、http)、CIDR 地址段控制,还有协议级的精细过滤。日常运维中,建议始终用 sudo ufw status verbose 查看当前策略状态,启用后配合 sudo ufw default deny 强化默认拒绝策略,这才算把易用性和企业级防护能力都抓牢了。

一、开启防火墙前的必要准备与安全确认
贸然执行 sudo ufw enable 之前,有一个关键动作必须做:确保关键远程服务(比如 SSH)已经提前放行。否则,你可能会发现自己被拒之门外——远程连接直接中断,连补救的机会都没有。
具体操作并不复杂:先跑一句 sudo ufw status numbered 看看当前规则列表。如果发现没有 SSH 相关的规则,立刻执行 sudo ufw allow OpenSSH 或者 sudo ufw allow 22/tcp。这条命令会自动将规则写入 /etc/ufw/applications.d/openssh-server 并同步到运行时策略。放行完成之后,再执行 sudo ufw enable。系统会弹出一条提示:“Command may disrupt existing ssh connections”,这时候输入 yes 确认即可。UFW 启用后会自动注册 systemd 服务,确保每次系统启动时自动加载已保存的规则集,不会出现“重启后防火墙失效”的尴尬。
二、关闭防火墙的标准流程与状态验证
关闭操作同样需要遵循两步验证机制,不能只靠感觉。首先执行 sudo ufw disable,这个命令只停用运行时的防火墙引擎,并不会删除任何已经配置过的规则——也就是说,规则还在,只是暂时不生效。然后,必须再用 sudo ufw status 确认一下,输出结果要明确显示 “Status: inactive” 才算真正关闭成功。
有个常见的误区需要特别提醒:部分用户以为重启系统就能自动恢复防火墙状态,其实不然。UFW 的启用/禁用状态是由 /etc/ufw/ufw.conf 文件中的 ENABLED=yes/no 控制的,而这个文件只会在 enable 或 disable 命令执行时才会更新,跟系统重启没有半毛钱关系。所以,别指望重启能帮你“修复”防火墙状态。
三、基础规则管理与日常运维建议
除了开关操作,日常防护还需要掌握三条核心指令:
- 开放 Web 服务端口:
sudo ufw allow 80/tcp - 封禁特定恶意 IP:
sudo ufw deny from 192.168.50.100 - 删除冗余规则:
sudo ufw delete 3(编号由status numbered输出)
对于新部署的服务器,强烈建议在启用防火墙之前就执行 sudo ufw default deny incoming 和 sudo ufw default allow outgoing,形成“默认拒绝入站、默认允许出站”的最小权限模型。这个组合拳经过 Canonical 安全白皮书验证,能有效抵御大部分端口扫描和反射攻击。
总结一下:UFW 的开关操作虽然只有一条命令,但背后涉及策略持久化、服务依赖校验和状态闭环验证。只有按标准流程一步步来,才能真正兼顾安全性和可用性。
