0 Linux查看连接到服务器特定端口的所有IP地址

我们以80端口为例,执行过程中,由于列表过长,可能存在一段时间等待。如果要查看其它端口,替换即可。

netstat -tn 2>/dev/null | grep :80 | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr | head

最终输出如下:

     97 114.198.236.100
     56 67.166.157.194
     44 170.248.43.76
     38 141.0.9.20
     37 49.248.0.2
     37 153.100.131.12
     31 223.62.169.73
     30 65.248.100.253
     29 203.112.82.128
     29 182.19.66.187

接着我们分解来看这条命令

1. netstat -tn 2>/dev/null

我们使用netstat[1]命令列出所有服务和客户端的连接。

  • -n 将最终的外部连接以数字形式展示(ip地址),而不是通过主机名或域名形式展示
  • -t 仅展示tcp连接

未指定-n外部连接以主机名形式展示

Proto Recv-Q Send-Q Local Address               Foreign Address             State
tcp        0      0 set-bf-hit-dsp-qua:9511 set-bf-eat-dsp-tri:37273 ESTABLISHED

指定-n后以ip地址形式展示

Proto Recv-Q Send-Q Local Address               Foreign Address             State
tcp        0      0 10.54.191.131:9511          10.54.167.143:37273         ESTABLISHED

2>/dev/null
将标准错误输出重定向到/dev/null

2. grep :80

仅筛选出连接80端口的ip,这里可以替换为我们想要检查的端口。

tcp        0      0 64.91.*.*:80            114.198.236.100:12763       TIME_WAIT   
tcp        0      0 64.91.*.*:80            175.136.226.244:51950       TIME_WAIT   
tcp        0      0 64.91.*.*:80            175.136.226.244:51951       TIME_WAIT   
tcp        0      0 64.91.*.*:80            149.238.193.121:65268       TIME_WAIT   
tcp        0      0 64.91.*.*:80            114.198.236.100:44088       ESTABLISHED
tcp        0      0 64.91.*.*:80            175.136.226.244:51952       TIME_WAIT

3. awk ‘{print $5}’

因为netstat命令第5列列出了连接到本服务外部地址信息。所以要筛选出第5列数据。

114.198.236.100:12763  
175.136.226.244:51950
175.136.226.244:51951
149.238.193.121:65268
114.198.236.100:44088
175.136.226.244:51952

4. cut -d: -f1

由于要统计IP的数量,我们将筛选的结果按冒号(:)切分,并筛选出切分后第一列数据。

  1. -d 指定切分符号
  2. -f 指定了要展示切分后的哪列数据,这个是和-d配合使用。
114.198.236.100
175.136.226.244
175.136.226.244
149.238.193.121
114.198.236.100
175.136.226.244

5. sort | uniq -c | sort -nr

接着对第4步的结果进行排序,随后统计每个IP的数量,最终对统计的结果按降序排序输出

sort后得到如下结果:


114.198.236.100
114.198.236.100
149.238.193.121
175.136.226.244
175.136.226.244
175.136.226.244

uniq -c –分组统计数量

2 114.198.236.100
1 149.238.193.121
3 175.136.226.244

sort -nr 对结果按降序排序

3 175.136.226.244
2 114.198.236.100
1 149.238.193.121

6. head

最后我们通过head命令展示前10行数据

参考

[1]netstat命令详解,https://www.howtogeek.com/513003/how-to-use-netstat-on-linux/

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐