1. 程式人生 > 其它 >使用netstat命令檢視連線到伺服器特定埠的所有IP地址

使用netstat命令檢視連線到伺服器特定埠的所有IP地址

技術標籤:運維

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/