windows下用cmd命令netstat查看系統端口使用情況


開始--運行--cmd 進入命令提示符 輸入netstat -ano 即可看到所有連接的PID 之后在任務管理器中找到這個PID所對應的程序如果任務管理器中沒有PID這一項,可以在任務管理器中選"查看"-"選擇列" 
經常,我們在啟動應用的時候發現系統需要的端口被別的程序占用,如何知道誰占有了我們需要的端口,很多人都比較頭疼,下面就介紹一種非常簡單的方法,希望對大家有用 
假如我們需要確定誰占用了我們的9050端口 

Windows平台 

在windows命令行窗口下執行: 

查看所有的端口占用情況

C:\>netstat -ano

  協議    本地地址                     外部地址               狀態                   PID

  TCP    127.0.0.1:1434         0.0.0.0:0              LISTENING       3236
  TCP    127.0.0.1:5679         0.0.0.0:0              LISTENING       4168
  TCP    127.0.0.1:7438         0.0.0.0:0              LISTENING       4168
  TCP    127.0.0.1:8015         0.0.0.0:0              LISTENING       1456
  TCP    192.168.3.230:139      0.0.0.0:0              LISTENING       4
  TCP    192.168.3.230:1957     220.181.31.225:443     ESTABLISHED     3068
  TCP    192.168.3.230:2020     183.62.96.189:1522     ESTABLISHED     1456
  TCP    192.168.3.230:2927     117.79.91.18:80        ESTABLISHED     4732
  TCP    192.168.3.230:2929     117.79.91.18:80        ESTABLISHED     4732
  TCP    192.168.3.230:2930     117.79.91.18:80        ESTABLISHED     4732
  TCP    192.168.3.230:2931     117.79.91.18:80        ESTABLISHED     4732

查看指定端口的占用情況

C:\>netstat -aon|findstr "9050"

  協議    本地地址                     外部地址               狀態                   PID

  TCP    127.0.0.1:9050         0.0.0.0:0              LISTENING       2016

P: 看到了嗎,端口被進程號為2016的進程占用,繼續執行下面命令: (也可以去任務管理器中查看pid對應的進程)

查看PID對應的進程

C:\>tasklist|findstr "2016"

 映像名稱                       PID 會話名              會話#       內存使用
 ========================= ======== ================
  tor.exe                     2016 Console                 0     16,064 K 

P:很清楚吧,tor占用了你的端口。

結束該進程

C:\>taskkill /f /t /im tor.exe

Netstart選項

netstat命令的功能是顯示網絡連接、路由表和網絡接口信息,可以讓用戶得知目前都有哪些網絡連接正在運作。 
該命令的一般格式為: 

netstat [選項] 

命令中各選項的含義如下: 

-a 顯示所有socket,包括正在監聽的。 
-c 每隔1秒就重新顯示一遍,直到用戶中斷它。 
-i 顯示所有網絡接口的信息,格式同“ifconfig -e”。 
-n 以網絡IP地址代替名稱,顯示出網絡連接情形。 
-r 顯示核心路由表,格式同“route -e”。 
-t 顯示TCP協議的連接情況。 
-u 顯示UDP協議的連接情況。 
-v 顯示正在進行的工作。 

-A 顯示任何關聯的協議控制塊的地址。主要用於調試 
-a 顯示所有套接字的狀態。在一般情況下不顯示與服務器進程相關聯的套接字 
-i 顯示自動配置接口的狀態。那些在系統初始引導后配置的接口狀態不在輸出之列 
-m 打印網絡存儲器的使用情況 
-n 打印實際地址,而不是對地址的解釋或者顯示主機,網絡名之類的符號 
-r 打印路由選擇表 
-f address -family對於給出名字的地址簇打印統計數字和控制塊信息。到目前為止,唯一支持的地址簇是inet 
-I interface 只打印給出名字的接口狀態 
-p protocol-name 只打印給出名字的協議的統計數字和協議控制塊信息 
-s 打印每個協議的統計數字 
-t 在輸出顯示中用時間信息代替隊列長度信息。 

netstat命令的列標題 
Name 接口的名字 
Mtu 接口的最大傳輸單位 
Net/Dest 接口所在的網絡 
Address 接口的IP地址 
Ipkts 接收到的數據包數目 
Ierrs 接收到時已損壞的數據包數目 
Opkts 發送的數據包數目 
Oeers 發送時已損壞的數據包數目 
Collisions 由這個接口所記錄的網絡沖突數目 

netstat的一些常用選項: 
netstat -s--本選項能夠按照各個協議分別顯示其統計數據。如果你的應用程序(如Web瀏覽器)運行速度比較慢,或者不能顯示Web頁之類的數據,那么你就可以用本選項來查看一下所顯示的信息。你需要仔細查看統計數據的各行,找到出錯的關鍵字,進而確定問題所在。 
netstat -e--本選項用於顯示關於以太網的統計數據。它列出的項目包括傳送的數據報的總字節數、錯誤數、刪除數、數據報的數量和廣播的數量。這些統計數據既有發送的數據報數量,也有接收的數據報數量。這個選項可以用來統計一些基本的網絡流量)。 
netstat -r--本選項可以顯示關於路由表的信息,類似於后面所講使用route print命令時看到的 信息。除了顯示有效路由外,還顯示當前有效的連接。 
netstat -a--本選項顯示一個所有的有效連接信息列表,包括已建立的連接(ESTABLISHED),也包括監聽連接請求(LISTENING)的那些連接。 
bnetstat -n--顯示所有已建立的有效連接。 
« AWKPHP經典 »netstat -an中state含義 


netstat -an中state含義 
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:沒有任何連接狀態 
其實可以man netstat , 看其中的stat部分解釋 
State 
The state of the socket. Since there are no states in raw mode and usually no states used in UDP, this column may be left 
blank. Normally this can be one of several values: 
ESTABLISHED 
The socket has an established connection. 
SYN_SENT 
The socket is actively attempting to establish a connection. 
SYN_RECV 
A connection request has been received from the network. 
FIN_WAIT1 
The socket is closed, and the connection is shutting down. 
FIN_WAIT2 
Connection is closed, and the socket is waiting for a shutdown from the remote end. 
TIME_WAIT 
The socket is waiting after close to handle packets still in the network. 
CLOSED The socket is not being used. 
CLOSE_WAIT 
The remote end has shut down, waiting for the socket to close. 
LAST_ACK 
The remote end has shut down, and the socket is closed. Waiting for acknowledgement. 
LISTEN The socket is listening for incoming connections. Such sockets are not included in the output unless you specify 
the –listening (-l) or –all (-a) option. 
CLOSING 
Both sockets are shut down but we still don’t have all our data sent. 
UNKNOWN 
The state of the socket is unknown

 


免責聲明!

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



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