在 Debian 系统中,可以通过 iptables 命令来查看当前的防火墙规则。下面给你几种常用、实用的查看方式,从最基础到更详细。
iptables -L
默认只显示 filter 表,不包含 NAT 等规则。
iptables -t filter -L -n -v
iptables -t nat -L -n -v
iptables -t mangle -L -n -v
或者一次性查看所有规则(更直观):
iptables -L -n -v
参数说明:
-L:列出规则-n:不做 DNS 反解析(显示 IP,速度更快)-v:显示详细信息(流量统计、接口等)iptables -L -n -v --line-numbers
✅ 非常有用,比如你要删除某条规则时。
示例输出:
Chain INPUT (policy ACCEPT)
num target prot opt source destination
1 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:22
例如只查看 INPUT 链:
iptables -L INPUT -n -v
iptables-save
输出示例:
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -p tcp --dport 22 -j ACCEPT
COMMIT
✅ 推荐用于备份规则
iptables -t nat -L -n -v
查看 SNAT / DNAT 是否正常生效。
Debian 10(Buster)以后,iptables 实际上是 nftables 的兼容层,你可以用:
update-alternatives --list iptables
如果看到:
/usr/sbin/iptables-nft
说明系统用的是 nftables 后端,但 iptables 命令仍然可用。
如果你想直接看 nftables 规则:
nft list ruleset
# 是否没有任何规则?
iptables -L
# 流量是否命中规则?
iptables -L -n -v
# 是否规则顺序导致未生效?
iptables -L --line-numbers
查看 iptables 规则 需要 root 权限:
sudo iptables -L -n -v
如果你愿意,可以告诉我:
我可以帮你精确分析当前规则或给出优化建议 ✅