![在 OpenWRT 路由器上查找每个 ip 的连接?](https://linux22.com/image/2580/%E5%9C%A8%20OpenWRT%20%E8%B7%AF%E7%94%B1%E5%99%A8%E4%B8%8A%E6%9F%A5%E6%89%BE%E6%AF%8F%E4%B8%AA%20ip%20%E7%9A%84%E8%BF%9E%E6%8E%A5%EF%BC%9F.png)
如何列出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