终端如何查看防火墙状态
终端查看防火墙状态需依据系统类型选择对应命令:Windows用户应通过图形界面进入“Windows Defender 防火墙高级安全”进行状态确认,而Linux及国产操作系统则主要依赖终端指令。Ubuntu/Debian系常用`sudo ufw status`,返回“active”即表示启用;CentOS/RHEL系多采用`sudo systemctl status firewalld`或`sudo firewall-cmd --state`,输出“running”为正常运行;传统iptables环境可执行`sudo iptables -L`或`sudo service iptables status`,结合策略行中“policy ACCEPT/DROP”判断默认行为。麒麟OS还支持`systemctl status kylin-firewall`原生命令。这些方法均源自各发行版官方文档与Red Hat、Canonical、麒麟软件发布的权威操作指南,具备一致性和可复现性,是运维人员与普通用户日常安全自查的标准实践。
一、Ubuntu/Debian系系统:启用UFW后状态验证需分两步操作
执行`sudo ufw status`仅显示基础启停状态,若需确认规则细节与日志配置,应追加`verbose`参数运行`sudo ufw status verbose`。该命令会明确列出当前启用的入站/出站策略、默认行为(如“Default: deny (incoming), allow (outgoing)”)、各服务端口的允许状态(如“22/tcp ALLOW IN Anywhere”),以及日志级别是否开启。若输出为“Status: inactive”,说明防火墙未激活,此时须先执行`sudo ufw enable`并按提示确认,系统将自动加载内核模块并设置iptables底层规则,重启后仍保持生效。
二、CentOS/RHEL/AlmaLinux等主流发行版:firewalld服务状态需交叉验证
仅运行`sudo systemctl status firewalld`可能显示“active (running)”,但不代表防火墙策略已实际生效。必须同步执行`sudo firewall-cmd --state`——该命令直接调用firewalld守护进程接口,返回“running”才代表策略引擎正在处理流量;若返回“not running”,则需先启动服务:`sudo systemctl start firewalld && sudo systemctl enable firewalld`。此外,可使用`sudo firewall-cmd --list-all-zones`查看所有区域的端口开放情况,例如public区域中是否包含“ports: 80/tcp 443/tcp”,确保业务端口未被意外屏蔽。
三、传统iptables环境及兼容场景:策略链默认行为是关键判断依据
在未启用firewalld或ufw的精简系统中,`sudo iptables -L`输出末尾的“Chain INPUT (policy ACCEPT)”表示默认放行所有入站请求,属高风险配置;而“Chain INPUT (policy DROP)”才体现基础防护逻辑。若需进一步确认规则是否加载,可执行`sudo service iptables status`(CentOS 6)或`sudo iptables-save | head -n 5`(查看规则快照)。注意:此模式下无“启用/关闭”抽象状态,其安全强度完全取决于用户手动配置的规则集完整性与优先级顺序。
四、麒麟操作系统:原生kylin-firewall与通用工具并存,需区分调用路径
麒麟V10 SP1及以上版本预装kylin-firewall服务,以`sudo systemctl status kylin-firewall`检查时,正常状态应含“active (running)”及“Loaded: loaded (/usr/lib/systemd/system/kylin-firewall.service)”。若显示“inactive (dead)”,需先执行`sudo kylin-firewall start`再启用自启。同时兼容firewalld与ufw,但三者不可共存——启用任一服务前,须先停用其余两个,避免规则冲突导致网络异常。
综上,终端查防火墙绝非单一命令可定论,必须结合系统架构、服务状态、策略引擎响应及规则集完整性进行多维验证。




