文档首页> Linux命令> 蓝易云cdn:Linux查看防火墙状态

蓝易云cdn:Linux查看防火墙状态

发布时间:2026-03-31 00:33       

Linux 查看防火墙状态完整指南 🔥

Linux 系统中防火墙是服务器安全的第一道屏障。不同发行版使用的防火墙管理工具不尽相同,排查网络故障或部署服务时,第一步往往就是确认防火墙的运行状态和已放行的规则。下面按主流防火墙工具逐一讲解查看方法。

一、firewalld(CentOS 7/8/9、RHEL、Rocky Linux)🛡️

firewalld 是目前 CentOS 7 及以后版本默认的防火墙管理工具,通过 systemctl 和 firewall-cmd 两个命令配合使用。

查看运行状态:

systemctl status firewalld
​

输出中看到 Active: active (running) 表示防火墙正在运行,inactive (dead) 则表示已关闭。

也可以用 firewalld 自带的命令快速确认:

firewall-cmd --state
​

返回 running 或 not running,简洁明了 ✅。

查看当前生效的规则:

# 查看默认区域的所有规则
firewall-cmd --list-all

# 查看所有区域的规则
firewall-cmd --list-all-zones

# 只看已放行的端口
firewall-cmd --list-ports

# 只看已放行的服务
firewall-cmd --list-services
​

--list-all 输出的信息最全面,包含当前所属区域(zone)、放行的服务和端口、是否开启了伪装(masquerade)、端口转发规则等。日常排查问题时用这条命令就够了 💡。

常用操作速查:

# 开放 80 端口(永久生效)
firewall-cmd --zone=public --add-port=80/tcp --permanent

# 开放 HTTP 服务
firewall-cmd --zone=public --add-service=http --permanent

# 重新加载使配置生效
firewall-cmd --reload
​

加了 --permanent 参数的规则写入配置文件,重启后依然有效。不加的话只对当前运行时生效,重启后丢失。修改永久规则后,必须执行 --reload 才能立即生效。

二、iptables(CentOS 6 及部分老系统)⚙️

CentOS 6 以及一些选择手动管理防火墙的系统仍在使用 iptables。它没有"启动/停止"这样的服务状态概念(在 CentOS 6 上通过 iptables 服务管理,CentOS 7+ 上 iptables 命令依然可用但只是 netfilter 的前端工具)。

CentOS 6 查看服务状态:

service iptables status
​

直接查看当前规则(所有系统通用):

# 查看所有链的规则(带详细包计数)
iptables -L -n -v

# 以命令格式显示(方便复制和备份)
iptables -S

# 只看 NAT 表的规则
iptables -t nat -L -n -v
​

参数说明:-L 列出规则,-n 以数字形式显示IP和端口(不做DNS反解,速度更快),-v 显示详细信息包括数据包计数和流量统计 📊。

如果输出中 INPUT 链的默认策略是 ACCEPT 且没有任何过滤规则,说明防火墙虽然在运行但实际上没有做任何拦截——等于形同虚设,需要引起注意。

三、ufw(Ubuntu / Debian)🐧

Ubuntu 从 8.04 版本开始引入了 ufw(Uncomplicated Firewall),顾名思义就是"简单防火墙",是 iptables 的上层封装,操作起来比直接写 iptables 规则轻松许多。

查看状态和规则:

sudo ufw status
​

输出 Status: active 表示已启用,Status: inactive 表示未启用。

加上 verbose 参数可以看到更详细的信息,包括默认策略:

sudo ufw status verbose
​

加上 numbered 参数会给每条规则编号,方便后续删除指定规则:

sudo ufw status numbered
​

常用操作:

# 启用防火墙
sudo ufw enable

# 放行 22 端口
sudo ufw allow 22/tcp

# 放行 HTTP 服务
sudo ufw allow http

# 删除第 3 条规则
sudo ufw delete 3
​

ufw 默认情况下是关闭的。首次启用前务必先放行 SSH 端口(默认22),否则远程连接会被立刻断开,导致无法登录服务器 ⚠️。

四、nftables(新一代内核防火墙框架)🆕

nftables 从 Linux 内核 3.13 开始引入,设计目标是取代 iptables。Debian 10+、RHEL 9/Rocky 9 等新版系统已经将 nftables 作为底层默认方案(firewalld 在这些系统上实际调用的后端就是 nftables)。

查看规则集:

nft list ruleset
​

查看指定表的规则:

nft list table inet filter
​

如果输出为空或提示无规则,说明当前没有加载任何 nftables 规则。

五、快速判断防火墙类型的思路 🔍

拿到一台不熟悉的 Linux 服务器,可以用以下顺序快速判断它在用哪种防火墙:

# 第一步:看系统版本
cat /etc/os-release

# 第二步:逐个检查
systemctl status firewalld    # CentOS 7+/RHEL
systemctl status ufw          # Ubuntu/Debian
systemctl status iptables     # CentOS 6 或手动安装
nft list ruleset              # 检查 nftables
​

哪个命令返回了 active 状态,当前系统就在使用哪种防火墙工具。同一台机器上不建议同时运行多个防火墙管理工具,容易造成规则冲突和排查困难 🛠️。

掌握以上方法后,无论面对哪个 Linux 发行版,都能快速定位防火墙状态、排查端口放行问题,保障服务器网络的安全与畅通 💪。