通常情況下,如果想發(fā)現(xiàn)所有已經(jīng)使用的和正在監(jiān)聽的端口,我們可以使用netstat命令。 netstat并非一個(gè)端口掃描工具,如果你想掃描計(jì)算機(jī)開放了哪些端口的話,建議使用本文介紹的方法。
Netstat命令基礎(chǔ)
Netstat命令主要用于顯示協(xié)議統(tǒng)計(jì)信息和當(dāng)前 TCP/IP 網(wǎng)絡(luò)連接。
其格式如下:
NETSTAT [-a] [-b] [-e] [-n] [-o] [-p proto] [-r] [-s] [-v] [interval]
下面簡單說明各個(gè)參數(shù)的含義:
-a 顯示所有連接和監(jiān)聽端口。
-b 顯示包含于創(chuàng)建每個(gè)連接或監(jiān)聽端口的可執(zhí)行組件。在某些情況下已知可執(zhí)行組件擁有多個(gè)獨(dú)立組件,并且在這些情況下包含于創(chuàng)建連接或監(jiān)聽端口的組件序列被顯示。這種情況下,可執(zhí)行組件名在底部的 [] 中,頂部是其調(diào)用的組件,等等,直到 TCP/IP 部分。注意此選項(xiàng)可能需要很長時(shí)間,如果沒有足夠權(quán)限可能失敗。
-e 顯示以太網(wǎng)統(tǒng)計(jì)信息。此選項(xiàng)可以與 -s選項(xiàng)組合使用。
-n 以數(shù)字形式顯示地址和端口號。
-o 顯示與每個(gè)連接相關(guān)的所屬進(jìn)程 ID。
-p proto 顯示 proto 指定的協(xié)議的連接;proto 可以是下列協(xié)議之一: TCP、UDP、TCPv6 或UDPv6。如果與 -s 選項(xiàng)一起使用以顯示按協(xié)議統(tǒng)計(jì)信息,proto 可以是下列協(xié)議之一: IP、IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP 或 UDPv6。
-r 顯示路由表。
-s 顯示按協(xié)議統(tǒng)計(jì)信息。默認(rèn)地,顯示 IP、IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP 和 UDPv6 的統(tǒng)計(jì)信息;-p 選項(xiàng)用于指定默認(rèn)情況的子集。
-v 與 -b 選項(xiàng)一起使用時(shí)將顯示包含于為所有可執(zhí)行組件創(chuàng)建連接或監(jiān)聽端口的組件。
interval 重新顯示選定統(tǒng)計(jì)信息,每次顯示之間暫停時(shí)間間隔(以秒計(jì))。按 CTRL+C 停止重新顯示統(tǒng)計(jì)信息。如果省略,netstat 顯示當(dāng)前配置信息(只顯示一次)。
使用Netstat發(fā)現(xiàn)計(jì)算機(jī)上的監(jiān)聽或開放端口
打開命令提示符窗口,并鍵入:
C:\WINDOWS>netstat -an |find /i "listening"
如果用戶想要將顯示結(jié)果存到一個(gè)文件中(通常是文本文件),以備日后參考,可以使用重定向命令,如“>”或“>>”:
netstat -an |find /i "listening" > c:\openports.txt
我們可以將“listening”改為“established”,查看一下計(jì)算機(jī)到底通過哪些端口通信:
C:\WINDOWS>netstat -an |find /i "established"
注意:在Windows XP和Windows Server2003中,如果用戶要得到與每個(gè)連接相關(guān)的所有自有進(jìn)程的ID列表,可以輸入執(zhí)行“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和使用它的進(jìn)程。例如,我們可能會(huì)發(fā)現(xiàn)計(jì)算機(jī)在TCP端口80上有一個(gè)與遠(yuǎn)程IP地址的連接,但是計(jì)算機(jī)上并沒有打開Internet Explorer或其它的瀏覽器窗口。為了查看到底是什么進(jìn)程在使用
這個(gè)會(huì)話,我們使用如下的命令:
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”參數(shù)的“PULIST”命令:
C:\WINDOWS>pulist |find /i "1536"
Process PID User
LUCOMS~1.EXE 1536 DPETRI\danielp
可以看出, DANIELP在運(yùn)行著 LUCOMS~1.EXE,這是Symantec Live Update進(jìn)程。
要查看所有打開的、已建立的、關(guān)閉的以及使用的端口,可以使用如下的命令:
C:\WINDOWS>netstat -a
在Windows XP或2003中,我們可以使用-o開關(guān):
C:\WINDOWS>netstat -ao