查看tcp連接數狀態
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
統計8080端口上有多少個TCP連接,命令:
netstat –nat | grep 8080 | wc –l
TCP連接中有多少個連接狀態是ESTABLISHED,命令:
netstat –nat | grep 8080 | grep ESTABLISHED| wc -l
TCP連接中有多少個連接狀態是CLOSE_WAIT
netstat –nat | grep 8080 | grep CLOSE_WAIT| wc -l
TCP連接中有多少個連接狀態是TIME_WAIT
netstat –nat | grep 8080 | grep TIME_WAIT| wc -l
使用awk來完成統計信息,命令如下
netstat –nat | grep 8080 | awk ‘{++S[$NF]} END {for (a in S) print a, S[a]}’
列出所有連接到你服務器的ip
下列是一個Unix命令,用來列出所有連接到主機80端口的IP地址。
netstat -tn 2>/dev/null | grep :80 | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr | head
輸出 - 全部按IP連接數從高到低排列
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
注:
This command is useful to detect if your server is under attack, and null route those IPs. Read this null route attacker IP story.
下面來把這個有點長的命令打散:
1. netstat -tn 2>/dev/null
用 netstat 列出所有網絡連接,包括進和出。
- -n -只顯示數字(IP地址和端口),不解析成名字。
- -t -只顯示TCP連接。
輸出
#Examples - 7 connections 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.*.*:23 202.127.210.2:14517 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
2>/dev/null
重定位所有不必要的輸出流到/dev/null——一個專門用來獲取並清空所有輸出流的地方。(譯注:2是標准錯誤輸出,這段命令用來隱藏所有錯誤信息。)
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}’
使用 awk
來只顯示第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
使用 cut
來抽取內容。
- -d – 在-d選項后面緊挨着的文字將作為分隔符,默認是tab。
- -f – 指定顯示用分隔符進行分割后的列
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
對列表進行排序,分組然后再次倒序排序。
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
這是個可選項,用來顯示前10個結果。