Linux如何查看端口狀態


查看並發狀態 

# 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
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM