通常情況下。假設想發現全部已經使用的和正在監聽的port,我們能夠使用netstat命令。 netstat並不是一個port掃描工具。假設你想掃描計算機開放了哪些port的話。建議使用本文介紹的方法。
Netstat命令基礎
Netstat命令主要用於顯示協議統計資訊和當前 TCP/IP 網路連線。
其格式例如以下:
NETSTAT [-a] [-b] [-e] [-n] [-o] [-p proto] [-r] [-s] [-v] [interval]
以下簡單說明各個引數的含義:
-a 顯示全部連線和監聽port。
-b 顯示包括於建立每一個連線或監聽port的可執行元件。在某些情況下已知可執行元件擁有多個獨立元件,而且在這些情況下包括於建立連線或監聽port的元件序列被顯示。這樣的情況下,可執行元件名在底部的 [] 中。頂部是其呼叫的元件。等等。直到 TCP/IP 部分。注意此選項可能須要非常長時間,假設沒有足夠許可權可能失敗。
-e 顯示乙太網統計資訊。
此選項能夠與 -s選項組合使用。
-n 以數字形式顯示地址和port號。
-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 選項一起使用時將顯示包括於為全部可執行元件建立連線或監聽port的元件。
interval 又一次顯示選定統計資訊,每次顯示之間暫停時間間隔(以秒計)。
按 CTRL+C 停止又一次顯示統計資訊。
假設省略。netstat 顯示當前配置資訊(僅僅顯示一次)。
使用Netstat發現計算機上的監聽或開放port
開啟命令提示符窗體,並鍵入:
C:/WINDOWS>netstat -an |find /i "listening" |
假設使用者想要將顯示結果存到一個檔案裡(一般是文字檔案),以備日後參考,能夠使用重定向命令,如“>”或“>>”:
netstat -an |find /i "listening" > c:/openports.txt |
我們能夠將“listening”改為“established”,檢視一下計算機究竟通過哪些port通訊:
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 860 TCP pro1:microsoft-ds pro1.dpetri.net:0 LISTENING 4 TCP pro1:1025 pro1.dpetri.net:0 LISTENING 908 TCP pro1:1084 pro1.dpetri.net:0 LISTENING 596 TCP pro1:2094 pro1.dpetri.net:0 LISTENING 596 TCP pro1:3389 pro1.dpetri.net:0 LISTENING 908 TCP pro1:5000 pro1.dpetri.net:0 LISTENING 1068 |
使用者能夠訪問http://www.petri.co.il/download_free_reskit_tools.htm.
使用PULIST來找到PID和使用它的程式。
比如,我們可能會發現計算機在TCPport80上有一個與遠端IP地址的連線,可是計算機上並沒有開啟Internet Explorer或其他的瀏覽器窗體。為了檢視究竟是什麼程式在使用
這個會話,我們使用例如以下的命令:
C:/WINDOWS>netstat -no Active Connections Proto Local Address Foreign Address State PID TCP 192.168.0.100:2496 212.179.4.7:80 ESTABLISHED 1536 |
然後使用帶有“FIND”引數的“PULIST”命令:
C:/WINDOWS>pulist |find /i "1536" Process PID User LUCOMS~1.EXE 1536 DPETRI/danielp |
能夠看出, DANIELP在執行著 LUCOMS~1.EXE,這是Symantec Live Update程式。
要檢視全部開啟的、已建立的、關閉的以及使用的port,能夠使用例如以下的命令:
C:/WINDOWS>netstat -a |
在Windows XP或2003中,我們能夠使用-o開關:
C:/WINDOWS>netstat -ao |