1. 程式人生 > 其它 >Linux 檢視TCP連線狀態

Linux 檢視TCP連線狀態

檢視TCP連線狀態
#netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'

 

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狀態]

 

==================================================

 

埠:80
無狀態(連線WIFI) -> ESTABLISHED(開啟APP)

ESTABLISHED(開啟APP) -> FIN_WAIT1(APP進入後臺執行,約10秒) -> 無狀態(APP進入後臺執行,約60秒)

埠:554
無狀態(連線WIFI) -> ESTABLISHED(開啟APP在預覽介面)

只有開啟APP在預覽介面才有狀態,並且狀態為 ESTABLISHED