http://www.now163.net/2011/04/460.html Netstat指令詳解/ 發現大量的TIME_WAIT解決方法
============================= 壓測時的netstat監控
查看並發狀態
# netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'這條語句回傳結果如下
LAST_ACK 5SYN_RECV 30
ESTABLISHED 1597
FIN_WAIT1 51
FIN_WAIT2 504
TIME_WAIT 1057
其中的SYN_RECV表示正在等待處理的請求 數;ESTABLISHED表示正常數據傳輸狀態;TIME_WAIT表示處理完畢,等待超時結束的請求數。
查看mysql連接
#netstat -anp | grep mysql | wc -l
netstat -n | awk '/^tcp/ {++state in$ state) print key,"t",state[key]}'會得到類似下面的結果,具體數字會有所不同:
SYN_RECV 14
ESTABLISHED 79
FIN_WAIT1 285335797975 月TIME_WAIT 1669
狀態:描述
CLOSED:無連線是活動的或正在進行
LISTEN:伺服器在等待進入呼叫
SYN_RECV:一個連線要求已經到達,等待確認
SYN_SENT:應用程式已經開始,開啟一個連線
資料傳輸狀態
FIN_WAIT1:應用說它已經完成
FIN_WAIT2:另一邊已同意釋放
ITMED_WAIT:等待所有分組死掉
CLOSING:兩邊同時嘗試關閉
TIME_WAIT:另一邊已初始化一個釋放
LAST_ACK:等待所有分組死掉
也就是說,這條指令可以把目前系統的網路連線狀態分類加總。
查看TIME_WAIT連線數
netstat -ae|grep "TIME_WAIT" |wc -l
netstat -n | awk '/^tcp/ {++state[$NF]} ENDENDfor(key in state) print key,"t",state[key]}'
查找較多time_wait連接
netstat -n|grep TIME_WAIT|awk '{print $5}'|sort|uniq -c|sort -rn|head -n20
netstat + awk 查詢連接數兩種方法,意義相同
1:netstat -pnt | awk '/^tcp/{print $5}' | cut -d: -f 1 | sort -n |uniq - c
Netstat用於顯示與IP、TCP、UDP和ICMP協定相關的統計數據,一般用於檢驗本機各連接埠的網路連線情況。
netstat -ntlp
netstat -anp | grep 3306
netstat -an
netstat -an
netstat -ae |grep mysqlnet
狀態netstat -lp 標識正在監聽的網路服務netstat -rn 檢查路由表netstat -s 查看各種網路協定運行的統計資訊netstat -tln 用來查看linuxux的連接埠使用情況--ip -an
Linux查看連接埠與服務
# netstat -tulpn或是
『 -a或–all 顯示所有連線中的Socket 。
-A或– 列出此網路類型連線中的相關位址。
-e或–extend 顯示網路其他相關資訊。
-F或–fib 顯示FIB。
-g或–groups 顯示多重廣播功能群組組員名單。
------------------------- ----------
服務端,連接埠的狀態變化
先在本機(IP位址為:192.168.1.10)設定FTP服務,然後在其它電腦(IP位址為:192.168.1.1)存取FTP服務,從TCPView看看連接埠的狀態變化。
下面黑體字顯示的是從TCPView中截取的部分。
1、LISTENING狀態
FTP服務啟動後首先處於偵聽(LISTENING)狀態。
State顯示是LISTENING時表示處於偵聽狀態,就是說該連接埠是開放的,等待連接,但還沒有連接。 就像你房子的門已經敞開的,但還沒有人進來。
從TCPView可以看出本機開放FTP的情況。它的意思是:程式inetinfo.exe開放了21個端口,FTP預設的端口為21,可見在本機開放了FTP服務。目前正處於偵聽狀態。
inetinfo.exe:1260 TCP 0.0.0.0:21 0.0.0.0:0 LISTENING
2、ESTABLISHED狀態
現在從192.168.1.1這台計算機訪問一下192.168.1.10的FTP服務。在本機的TCPView可以看出連接埠狀態變成ESTABLISHED。
ESTABLISHED的意思是建立連結。表示兩台機器正在通訊 。
下面顯示的是本機的FTP服務正在被192.168.1.1這台電腦存取。
inetinfo.exe:1260 TCP 192.168.1.10:21 192.168.1.1:3009 ESTABLISHED
注意:處於ESTABLISHED狀態的連線一定要格外注意,因為它也許不是個正常連線。後面我們要講到這個問題。
3、 TIME_WAIT狀態
現在從192.168.1.1這台電腦結束存取192.168.1.10的FTP服務。在本機的TCPView可以看出連接埠狀態變成TIME_WAIT。
TIME_WAIT的意思是結束了這次連線。說明21埠曾經有過訪問,但訪問結束了。
[System Process]:0 TCP 192.168.1.10:21 192.168.1.1:3009 TIME_WAIT
4、小技巧
a、可以telnet一個開放的端口,來觀察該端口的變化。例如看1025埠是開放的,在指令狀態(如圖1運作cmd)運作:
telnet 192.168.1.10 1025
b、從本機也可以測試,只不過顯示的是本機連本機
b、從本機也可以測試,只不過顯示的是本機連本機
c、在Tcpview中雙擊連接可看出程式的位置,右鍵點選該連接,選擇End Process即可結束該連接
客戶端,連接埠的狀態變化