温馨提示×

debian iptables怎么查连接数

小樊
52
2026-09-07 18:13:07
栏目: 智能运维

在 Debian 下,使用 iptables 本身并不能直接“看连接数”,通常需要结合 conntrack / netstat / ss 等工具来查看。下面按常见场景给你总结一下。


一、查看系统当前所有连接数(最常用)

1. 使用 ss(推荐,速度快)

ss -ant | wc -l
  • -a 所有连接
  • -n 不解析名称
  • -t TCP 连接

只看 ESTABLISHED:

ss -ant state established | wc -l

2. 使用 netstat(老工具)

netstat -ant | wc -l

或

netstat -ant | grep ESTABLISHED | wc -l

二、查看 iptables 跟踪的连接数(conntrack)

iptables 依赖 nf_conntrack 模块来跟踪连接。

1. 查看当前连接跟踪数

cat /proc/net/nf_conntrack | wc -l

或

conntrack -L | wc -l

2. 查看 conntrack 最大限制

cat /proc/sys/net/netfilter/nf_conntrack_max

3. 查看当前使用量(更直观)

cat /proc/sys/net/netfilter/nf_conntrack_count

三、按 IP 统计连接数(排查攻击很常用)

按来源 IP 统计 TCP 连接数

ss -ant | awk '{print $4}' | cut -d: -f1 | sort | uniq -c | sort -nr

或用 netstat:

netstat -ant | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr

四、iptables 规则层面看“命中数”

iptables 本身只能看规则匹配次数,不是连接数。

iptables -L -n -v

或指定表:

iptables -L -n -v -t nat

示例输出中:

pkts bytes target  prot opt in out source destination
  • pkts:包数量
  • bytes:字节数

五、常见场景示例

查看某个端口连接数(如 80)

ss -ant | grep ':80' | wc -l

查看某个 IP 的连接数

ss -ant | grep '1.2.3.4' | wc -l

六、补充说明(重要)

  • iptables ≠ 连接数统计工具
  • 真正“连接数”来自:
    • TCP/IP 协议栈
    • nf_conntrack
  • 如果你做 DDoS / 限流 / 并发控制,建议:
    • ss
    • conntrack
    • iptables -C + hashlimit / connlimit

如果你能说一下你是:

  • 查 总连接数
  • 查 某 IP 连接数
  • 还是 iptables 限制连接数

我可以给你更精确的命令或规则示例。

0 踩