天天看點

windows下用cmd指令netstat檢視系統端口使用情況

開始--運作--cmd 進入指令提示符 輸入netstat -ano 即可看到所有連接配接的PID 之後在任務管理器中找到這個PID所對應的程式如果任務管理器中沒有PID這一項,可以在任務管理器中選"檢視"-"選擇列"

經常,我們在啟動應用的時候發現系統需要的端口被别的程式占用,如何知道誰占有了我們需要的端口,很多人都比較頭疼,下面就介紹一種非常簡單的方法,希望對大家有用

假如我們需要确定誰占用了我們的9050端口

1、Windows平台

在windows指令行視窗下執行:

1.檢視所有的端口占用情況

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

2.檢視指定端口的占用情況

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

  協定    本地位址                     外部位址               狀态                   PID

  TCP    127.0.0.1:9050         0.0.0.0:0              LISTENING       2016

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

3.檢視PID對應的程序

C:\>tasklist|findstr "2016"

 映像名稱                       PID 會話名              會話#       記憶體使用

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

  tor.exe                     2016 Console                 0     16,064 K

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

4.結束該程序

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

其他不懂的用 help吧~

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

繼續閱讀