要查看 Linux 系统上每个 IP 的连接数,可以使用 netstat
或 ss
命令结合其他工具,如 awk
和 sort
。
以下是两种方法,分别使用 netstat
和 ss
命令:
1、使用 netstat
命令:
netstat -an | grep ESTABLISHED | awk '{print $5}' | awk -F: '{print $1}' | sort | uniq -c | sort -nr
2、使用 ss
命令:
ss -tan state established | awk '{print $5}' | awk -F: '{print $1}' | sort | uniq -c | sort -nr
这两个命令的工作原理相似,首先列出所有已建立的连接,然后提取远程 IP 地址(去除端口号),接着统计每个 IP 的连接数,并按连接数降序排列。
命令解释:
netstat -an
或ss -tan
:列出系统上所有已建立的 TCP 连接。grep ESTABLISHED
:过滤出状态为已建立(ESTABLISHED)的连接。awk '{print $5}'
:使用 awk 提取每行的第 5 列,即远程 IP 地址和端口号。awk -F: '{print $1}'
:使用 awk 再次提取 IP 地址(去除端口号)。sort
:对 IP 地址进行排序。uniq -c
:统计每个唯一 IP 地址的连接数。sort -nr
:按连接数降序排列结果。
执行以上命令之后,你将看到一个按连接数降序排列的 IP 列表。