linux系統檢視網路連線情況

雲深知處發表於2018-12-04

netstat命令狀態說明:

CLOSED                      沒有使用這個套接字[netstat 無法顯示closed狀態]
LISTEN 套接字正在監聽連線[呼叫listen後]
SYN_SENT 套接字正在試圖主動建立連線[傳送SYN後還沒有收到ACK]
SYN_RECEIVED 正在處於連線的初始同步狀態[收到對方的SYN,但還沒收到自己發過去的SYN的ACK]
ESTABLISHED 連線已建立
CLOSE_WAIT 遠端套接字已經關閉:正在等待關閉這個套接字[被動關閉的一方收到FIN]
FIN_WAIT_1 套接字已關閉,正在關閉連線[傳送FIN,沒有收到ACK也沒有收到FIN]
CLOSING 套接字已關閉,遠端套接字正在關閉,暫時掛起關閉確認[在FIN_WAIT_1狀態下收到被動方的FIN]
LAST_ACK 遠端套接字已關閉,正在等待本地套接字的關閉確認[被動方在CLOSE_WAIT狀態下傳送FIN]
FIN_WAIT_2 套接字已關閉,正在等待遠端套接字關閉[在FIN_WAIT_1狀態下收到發過去FIN對應的ACK]
TIME_WAIT 這個套接字已經關閉,正在等待遠端套接字的關閉傳送[FIN、ACK、FIN、ACK都完畢,這是主動方的最後一個狀態,在過了2MSL時間後變為CLOSED狀態]

提示:LISTEN和LISTENING的狀態只有用-a或者-l才能看到

 

通過netstat命令檢視資料庫、網站等連線情況(併發數等)

統計出所有TCP連線以及各個狀態的連線數

netstat -n | awk `/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}`

結果示例:

  SYN_RECV 1
  ESTABLISHED 45
  TIME_WAIT 125

單獨檢視web站點當前併發數:

netstat -tanl|grep “ESTABLISHED”|grep “:80″|wc -l

單獨檢視mysql當前連線數:

netstat -tanl|grep “ESTABLISHED”|grep “:3306″|wc -l

相關文章