发布于2026-08-22 阅读(0)
扫一扫,手机访问
ufw status仅显示高层策略和显式添加的规则(如“80 ALLOW Anywhere”),不反映默认策略绕过、IPv6独立规则、Docker等直写nftables的bypass规则,也无法体现本地回环流量不受管控等底层细节。

Ubuntu 默认用 ufw 管理防火墙,但规则实际由 nftables 执行;直接看 ufw status 只能查到高层策略,底层放行/拦截细节得看 nft list ruleset 或 iptables -L -n -v。
执行 sudo ufw status 命令,会展示当前的启用状态以及明确添加的规则(例如 22/tcp ALLOW Anywhere)。然而,它无法反映出这些情况:默认策略是否被绕过、IPv6规则是否独立生效、或者某些服务(像Docker)悄然插入的bypass规则。打个比方,你执行了 ufw allow 80 命令,但nginx实际监听在 127.0.0.1:80,此时 ufw status 依然会显示“ALLOW”,但连接却会失败——原因在于该规则仅对入向流量起作用,而本地回环不受ufw的管控。
建议搭配以下命令交叉验证:
sudo ufw status verbose:看协议类型(tcp/udp)、方向(IN/OUT)、日志开关sudo ufw show raw:输出原始规则链顺序,确认默认策略(如 ufw-before-input 链末尾的 DROP)是否真起作用sudo ufw status numbered:删错规则时避免误删,编号对应 ufw delete <编号>Ubuntu 22.04+ 默认用 nftables 后端,但保留了 iptables 命令兼容层。执行 sudo iptables -L -n -v 有时显示空或旧规则,是因为:
ip6tables -L -n 单独查,ufw 不自动同步 IPv6 策略正确做法是优先用:sudo nft list ruleset。它输出完整结构(table → chain → rule),包括注释、字节计数、跳转目标。若习惯 iptables 语法,可加 | grep -A5 'chain input' 快速定位入站链。
ufw status 显示 8080 ALLOW 不等于你能从外网访问它。需分三步验证:
nc -zv 127.0.0.1 8080 —— 排除服务未启动nc -zv 192.168.x.x 8080 —— 排除 ufw 的 Anywhere 是否含糊(比如规则绑定了特定 interface)ufw 和 nft 都正常,但流量根本到不了系统特别注意:ufw 默认不管理转发流量(forward chain),如果你开了 NAT 或容器桥接,得额外查 nft list chain ip filter forward。
启用 sudo ufw logging on 后,只记录匹配 ufw 规则的包(比如命中 ufw-user-input 链)。但若包被更早的链(如 ufw-before-input)丢弃,或走的是 raw 表提前标记,就不会进 ufw 日志。
排查方法:
sudo tail -f /var/log/ufw.logsudo ufw logging full(仅调试,性能损耗大)sudo tcpdump -i any port 8080 -nn,看 SYN 包是否发出、是否有 RST 回复真正容易被忽略的点是:ufw 规则只作用于 IPv4 的 filter 表,而 nftables 的 inet family 同时管 IPv4/IPv6,且 Docker 默认创建独立的 nft 表,完全游离于 ufw 之外。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
4
5
6
7
8
9