1. 程式人生 > >centOS伺服器 netstat命令 檢視TCP連線數資訊

centOS伺服器 netstat命令 檢視TCP連線數資訊

netstat命令的功能是顯示網路連線、路由表和網路介面的資訊,可以讓使用者得知有哪些網路連線正在運作。在日常工作中,我們最常用的也就兩個引數,即netstat –an,如下所示:

[[email protected] ~]# netstat -an  
Active Internet connections (servers and established)  
Proto Recv-Q Send-Q Local Address               Foreign Address             State        
tcp        0      0 0.0
.0.0:50020 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:199 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:41224 0.0.0.0:* LISTEN tcp
0 0 127.0.0.1:21224 0.0.0.0:* LISTEN

netstat  -an引數中stat(狀態)的含義如下:


LISTEN:偵聽來自遠方的TCP埠的連線請求;
SYN-SENT:在傳送連線請求後等待匹配的連線請求;
SYN-RECEIVED:在收到和傳送一個連線請求後等待對方對連線請求的確認;
ESTABLISHED:代表一個開啟的連線,我們常用此作為併發連線數;
FIN-WAIT-1:等待遠端TCP連線中斷請求,或先前的連線中斷請求的確認;
FIN-WAIT-2:從遠端TCP等待連線中斷請求;
CLOSE-WAIT

:等待從本地使用者發來的連線中斷請求;
CLOSING:等待遠端TCP對連線中斷的確認;
LAST-ACK:等待原來發向遠端TCP的連線中斷的確認;
TIME-WAIT:等待足夠的時間以確保遠端TCP連線收到中斷請求的確認;
CLOSED:沒有任何連線狀態;

在日常工作中,我們可以用shell組合命令來檢視伺服器的TCP連線狀態並彙總,命令如下:

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

引數說明:
CLOSED:沒有連線活動或正在進行的;
LISTEN:伺服器正在等待的進入呼叫;
SYN_RECV:一個連線請求已經到達,等待確認;
SYN_SENT:應用已經開始,開啟一個連線;
ESTABLISHED:正常資料傳輸狀態,也可以近似的理解為當前伺服器的併發數;
FIN_WAIT1:應用已經完成;
FIN_WAIT2:另一邊同意釋放;
ITMED_WAIT:等待所有分組死掉;
CLOSING:兩邊同時嘗試關閉;
TIME_WAIT:另一邊已初始化一個釋放;
LAST_ACK:等待所有分組死掉;

統計 TCP連線數 命令:

netstat -an |grep 'ESTABLISHED' |grep 'tcp' |wc -l