netstat命令的功能是顯示網絡鏈接、路由表和網絡接口的信息,能夠讓用戶得知有哪些網絡鏈接正在運做。在平常工做中,咱們最經常使用的也就兩個參數,即netstat –an,以下所示:shell
[root@tiaobanji ~]# 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鏈接數 命令:tcp
netstat -an |grep 'ESTABLISHED' |grep 'tcp' |wc -l