要查看 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 列表。 undefined undefined undefined undefined undefined undefined