Linux桌面版防火墙开启与关闭指南
Linux桌面版防火墙因发行版而异:CentOS等用firewalld,Ubuntu等用ufw,底层均为iptables。先识别系统工具,再按流程操作,重点包括firewalld永久规则配置、ufw默认策略启用及iptables规则持久化。
Linux桌面版防火墙的开关,其实并没有一个“万能命令”能通吃所有发行版,但思路和路径是清晰的。不同系统预装的管理工具不同:CentOS、RHEL、Fedora 这些走的是 firewalld 路线,Ubuntu、Debian 则习惯用 ufw,而底层始终是 iptables 在兜底。关键是要先搞清楚自己手上是什么系统,再选对工具。下面就把这套逻辑拆开来讲。

一、精准识别当前系统所用防火墙工具
动手之前,得先确认系统底层到底跑的是哪个防火墙服务,不然命令敲错了反而添乱。执行 sudo systemctl list-unit-files | grep -E "(firewalld|ufw|iptables)",就能把相关服务单元的状态列出来。如果输出里 firewalld 显示 enabled 且 active,那基本是 RHEL 系;如果 ufw 显示 enabled,并且 sudo ufw status 返回 “Status: active”,那就是 Debian 系。要是这两个都没启用,但 which iptables 能返回路径,说明系统正在用原生 iptables 管理。另外,运行 cat /etc/os-release | grep -i "id=" 确认一下发行版标识,再对照官方文档,基本就能锁定默认的防火墙方案了。
二、firewalld 环境下的标准操作流程
以 CentOS 8/9 为例:启动 firewalld 后,一定要执行 sudo firewall-cmd --reload 让规则生效,这一步很多人会忘。添加端口时,需要分两步走——先跑 sudo firewall-cmd --permanent --add-port=3306/tcp 把规则写入永久配置,再执行 sudo firewall-cmd --reload 加载。关闭防火墙时,建议用 sudo systemctl stop firewalld && sudo systemctl disable firewalld 组合拳,既停掉当前会话,又防止下次重启后自动激活。验证是否生效很简单:运行 sudo firewall-cmd --state,返回 running 就是开启,否则提示 not running。
三、ufw 环境下的安全启停规范
Ubuntu 22.04 默认装了 ufw 但处于 inactive 状态。启用之前,一定要先设定默认策略:sudo ufw default deny incoming 和 sudo ufw default allow outgoing,然后再执行 sudo ufw enable。如果需要放行 SSH,务必在启用前完成 sudo ufw allow OpenSSH,否则启用后你可能直接被锁在系统外面。禁用时直接 sudo ufw disable 就行,不需要额外清理规则——ufw 会在禁用后自动清空内存里的策略集,重启也不会恢复,这点很省心。
四、iptables 手动配置的可靠持久化方法
当系统没有高层管理器时,推荐用 sudo iptables-restore < /etc/iptables.rules 配合定时保存机制。日常维护中,每次修改规则后务必执行 sudo iptables-sa ve > /etc/iptables.rules 保存到文件。为了确保开机自动加载,需要创建一个 systemd 服务文件 /etc/systemd/system/iptables-restore.service,然后启用 sudo systemctl enable iptables-restore.service。这种方式比传统的 service iptables sa ve 更稳,在新内核下兼容性也更好,符合现代 Linux 的初始化规范。
说到底,不同发行版的防火墙管理逻辑并不复杂,关键就是匹配好工具链、遵守启停次序、落实持久化机制。只要把这三步走顺了,Linux 桌面版的防火墙操作就没什么坑。
