標籤:網路
通常情況下,如果想發現所有已經使用的和正在監聽的連接埠,我們可以使用netstat命令。 netstat並非一個連接埠掃描工具,如果你想掃描電腦開放了哪些連接埠的話,建議使用本文介紹的方法。
Netstat命令基礎
Netstat命令主要用於顯示協議統計資訊和當前 TCP/IP 網路連接。
其格式如下:
NETSTAT [-a] [-b] [-e] [-n] [-o] [-p proto] [-r] [-s] [-v] [interval]
下面簡單說明各個參數的含義:
-a 顯示所有串連和監聽連接埠。
-b 顯示包含於建立每個串連或監聽連接埠的可動作項目。在某些情況下已知可動作項目擁有多個獨立組件,並且在這些情況下包含於建立串連或監聽連接埠的組件序列被顯示。這種情況下,可動作項目名在底部的 [] 中,頂部是其調用的組件,等等,直到 TCP/IP 部分。注意此選項可能需要很長時間,如果沒有足夠許可權可能失敗。
-e 顯示乙太網路統計資訊。此選項可以與 -s選項組合使用。
-n 以數字形式顯示地址和連接埠號碼。
-o 顯示與每個串連相關的所屬進程 ID。
-p proto 顯示 proto 指定的協議的串連;proto 可以是下列協議之一: TCP、UDP、TCPv6 或UDPv6。如果與 -s 選項一起使用以顯示按協議統計資訊,proto 可以是下列協議之一: IP、IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP 或 UDPv6。
-r 顯示路由表。
-s 顯示按協議統計資訊。預設地,顯示 IP、IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP 和 UDPv6 的統計資訊;-p 選項用於指定預設情況的子集。
-v 與 -b 選項一起使用時將顯示包含於為所有可動作項目建立串連或監聽連接埠的組件。
interval 重新顯示選定統計資訊,每次顯示之間暫停時間間隔(以秒計)。按 CTRL+C 停止重新顯示統計資訊。如果省略,netstat 顯示當前配置資訊(只顯示一次)。
使用Netstat發現電腦上的監聽或開放連接埠
開啟命令提示字元視窗,並鍵入:
C:/WINDOWS>netstat -an |find /i "listening" |
如果使用者想要將顯示結果存到一個檔案中(通常是文字檔),以備日後參考,可以使用重新導向命令,如“>”或“>>”:
netstat -an |find /i "listening" > c:/openports.txt |
我們可以將“listening”改為“established”,查看一下電腦到底通過哪些連接埠通訊:
C:/WINDOWS>netstat -an |find /i "established" |
注意:在Windows XP和Windows Server2003中,如果使用者要得到與每個串連相關的所有自有進程的ID列表,可以輸入執行“NETSTAT -O”:
C:/WINDOWS>netstat -ao |find /i "listening"TCP pro1:epmap pro1.dpetri.net:0 LISTENING 860TCP pro1:microsoft-ds pro1.dpetri.net:0 LISTENING 4TCP pro1:1025 pro1.dpetri.net:0 LISTENING 908TCP pro1:1084 pro1.dpetri.net:0 LISTENING 596TCP pro1:2094 pro1.dpetri.net:0 LISTENING 596TCP pro1:3389 pro1.dpetri.net:0 LISTENING 908TCP pro1:5000 pro1.dpetri.net:0 LISTENING 1068 |
使用者可以訪問http://www.petri.co.il/download_free_reskit_tools.htm.
使用PULIST來找到PID和使用它的進程。例如,我們可能會發現電腦在TCP連接埠80上有一個與遠程IP地址的串連,但是電腦上並沒有開啟Internet Explorer或其它的瀏覽器視窗。為了查看到底是什麼進程在使用
這個會話,我們使用如下的命令:
C:/WINDOWS>netstat -noActive ConnectionsProto Local Address Foreign Address State PIDTCP 192.168.0.100:2496 212.179.4.7:80 ESTABLISHED 1536 |
然後使用帶有“FIND”參數的“PULIST”命令:
C:/WINDOWS>pulist |find /i "1536"Process PID UserLUCOMS~1.EXE 1536 DPETRI/danielp |
可以看出, DANIELP在運行著 LUCOMS~1.EXE,這是Symantec Live Update進程。
要查看所有開啟的、已建立的、關閉的以及使用的連接埠,可以使用如下的命令:
在Windows XP或2003中,我們可以使用-o開關: