UFW防火墙状态可通过三条命令区分查看:sudo ufw status显示启用状态及基础规则(无编号);sudo ufw status numbered显示带编号的完整规则(用于删除);sudo ufw status verbose显示默认策略、日志等详细配置(无编号)。

想快速确认 Ubuntu 或 Debian 系统上防火墙是否生效、当前放行了哪些端口、规则编号是多少,ufw 提供了直接可读的状态输出,但编号需额外参数才能显示。
查看 UFW 防火墙是否启用及基础规则列表
执行 sudo ufw status,若输出为 Status: active,说明防火墙已启用;若为 Status: inactive,则未运行。该命令只显示“允许/拒绝”动作和目标端口,【不显示规则编号】,也不展示协议细节(如 tcp/udp)。
这一步操作起来很简单,直接在终端敲完回车就能看到结果,适合日常快速检查。
查看带编号的完整规则列表(含协议、方向、来源)
执行 sudo ufw status numbered,输出中每条规则前会带数字编号(如 [ 1] 22/tcp ALLOW IN Anywhere),编号从 1 开始递增,按规则添加顺序排列。
编号不可手动指定,删除规则时必须用这个编号(例如 sudo ufw delete 3),不能用端口号或服务名替代。如果误删了 SSH 规则又没提前放行其他管理通道,【远程连接将立即中断且无法恢复】。
注意:编号只反映当前加载到内核的运行时规则顺序,重启系统后编号不变,但若通过 --permanent 添加过永久规则却未 reload,编号可能与磁盘配置不一致。
查看详细状态(含默认策略、日志设置、接口绑定)
执行 sudo ufw status verbose,输出包含三大部分:默认入站/出站策略、日志级别、当前激活的规则列表(不含编号)。
它能告诉你默认是 deny (incoming) 还是 allow (outgoing),这对判断某端口不通是否源于默认拦截至关重要——比如你只加了 ufw allow 80,但忘了设默认 deny incoming,那所有端口其实都开着。
这条命令不会显示编号,也不列出被拒绝的具体端口,仅作策略级核查。











