如何列出FORWARD
OpenWRT 路由器链上每个客户端的连接数?
我知道如何列出路由器上每个 IP 地址的连接数:
netstat -ntu | tail -n +3 | # list open TCP and UDP connections
awk '{print $5}' | cut -d: -f1 | # extract client IP addresses
sort | uniq -c | sort -nr # show number of occurrences and sort by it
我想对通过路由器FORWARD
链的连接执行相同的操作。
答案1
如果我正确理解你的问题(你的问题总是可疑的),这是不可能的。转发不保留任何状态:路由器接收数据包,分析它,将其发送到下一个目的地,然后忘记数据包是什么。您可以计算或记录数据包,但无法跟踪该级别的连接。
计算当前 NAT 连接数是有意义的。 netfilter 子系统跟踪的所有连接都列在 中/proc/net/ip_conntrack
。您可以使用以下命令提取客户端地址
sed -ne 's/^.*src=\([^ ]*\).*/\1/p' /proc/net/ip_conntrack