檢視網路連線數netstat -an

zys5發表於2020-12-06

檢視網路連線數:

netstat -an |wc -l

netstat -an |grep xx |wc -l        檢視某個/特定ip的連線數

netstat -an |grep TIME_WAIT|wc -l    檢視連線數等待time_wait狀態連線數

netstat -an |grep ESTABLISHED |wc -l    檢視建立穩定連線數量

 

檢視不同狀態的連線數數量

[root@cp-nginx ~]# netstat -an | awk '/^tcp/ {++y[$NF]} END {for(w in y) print w, y[w]}'

LISTEN 8

ESTABLISHED 2400

FIN_WAIT1 2

TIME_WAIT 6000

 

檢視每個ip跟伺服器建立的連線數

[root@cp-nginx ~]# netstat -nat|awk '{print$5}'|awk -F : '{print$1}'|sort|uniq -c|sort -rn

     31 45.116.147.178

     20 45.116.147.186

     12 23.234.45.34

     11 103.56.195.17

(PS:正則解析:顯示第5列,-F : 以:分割,顯示列,sort 排序,uniq -c統計排序過程中的重複行,sort -rn 按純數字進行逆序排序)

 

檢視每個ip建立的ESTABLISHED/TIME_OUT狀態的連線數

[root@cp-nginx ~]# netstat -nat|grep ESTABLISHED|awk '{print$5}'|awk -F : '{print$1}'|sort|uniq -c|sort -rn

     24 103.56.195.17

     19 45.116.147.186

     18 103.56.195.18

     17 45.116.147.178

 

 

問題1:解決time_wait連線數大量問題

查詢到time_wait連線數過多情況下,調整核心引數:/etc/sysctl.conf

vim /etc/sysctl.conf

 

新增以下配置檔案:

net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_fin_timeout = 300

 

/sbin/sysctl -p 讓引數生效,調優完成

 

相關文章