查看並發狀態
# netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
這條語句返回結果如下
LAST_ACK 5
SYN_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[$NF]} END {for(key in state) print key,"\t",state[key]}'
會得到類似下面的結果,具體數字會有所不同:
LAST_ACK 1
SYN_RECV 14
ESTABLISHED 79
FIN_WAIT1 28
FIN_WAIT2 3
CLOSING 5
TIME_WAIT 1669
狀態:描述
CLOSED:無連接是活動的或正在進行
LISTEN:服務器在等待進入呼叫
SYN_RECV:一個連接請求已經到達,等待確認
SYN_SENT:應用已經開始,打開一個連接
ESTABLISHED:正常數據傳輸狀態
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]} END {for(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
2:netstat -pnt | awk '/^tcp/{s=split($5,N,":");A[N[s-1]]++} END{ for (k in A) print k,A[k]}'
Netstat用於顯示與IP、TCP、UDP和ICMP協議相關的統計數據,一般用於檢驗本機各端口的網絡連接情況。
netstat -ntlp
netstat -anp | grep 3306 #查看某一端口的連接客戶端IP 比如3306端口
netstat -an #查看網絡端口
netstat -ae |grep mysql
lsof -i :port,使用lsof -i :port就能看見所指定端口運行的程序,同時還有當前連接。
netstat -i -e 顯示主機上每個網絡接口的配置和狀態
netstat -lp 標識正在監聽的網絡服務
netstat -rn 檢查路由表
netstat -s 查看各種網絡協議運行的統計信息
netstat -tln 用來查看linux的端口使用情況
netstat --ip -an
Linux查看端口及服務
# netstat -tulpn
或者是
# netstat -npl
參 數:
-a或–all 顯示所有連線中的Socket。
-A<網絡類型>或–<網絡類型> 列出該網絡類型連線中的相關地址。
-c或–continuous 持續列出網絡狀態。
-C或–cache 顯示路由器配置的快取信息。
-e或–extend 顯示網絡其他相關信息。
-F或–fib 顯示FIB。
-g或–groups 顯示多重廣播功能群組組員名單。
-h或–help 在線幫助。
-i或–interfaces 顯示網絡界面信息表單。
-l或–listening 顯示監控中的服務器的Socket。
-M或–masquerade 顯示偽裝的網絡連線。
-n或–numeric 直接使用IP地址,而不通過域名服務器。
-N或–netlink或–symbolic 顯示網絡硬件外圍設備的符號連接名稱。
-o或–timers 顯示計時器。
-p或–programs 顯示正在使用Socket的程序識別碼和程序名稱。
-r或–route 顯示Routing Table。
-s或–statistice 顯示網絡工作信息統計表。
-t或–tcp 顯示TCP傳輸協議的連線狀況。
-u或–udp 顯示UDP傳輸協議的連線狀況。
-v或–verbose 顯示指令執行過程。
-V或–version 顯示版本信息。
-w或–raw 顯示RAW傳輸協議的連線狀況。
-x或–unix 此參數的效果和指定”-A unix”參數相同。
–ip或–inet 此參數的效果和指定”-A inet”參數相同
服務端,端口的狀態變化
先在本機(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、從本機也可以測試,只不過顯示的是本機連本機
c、在Tcpview中雙擊連接可看出程序的位置,右鍵點擊該連接,選擇End Process即可結束該連接
客戶端,端口的狀態變化
---------------------
作者:禾斗比不來IT
來源:CSDN
原文:https://blog.csdn.net/river131/article/details/53404518
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!