想監控特定連線的來源或 Port,在 UNIX 中內建了不少好用的程式,組合各個小工具後更是威力無窮;Windows 在這方面雖然也有相當多類似的程式可安裝,但內建的 Netstat 用起來總是有些缺憾,在 SANS 看到這篇 Fun With Windows Netstat ,提到一些小技巧,用例子講述大家就可明瞭:netstat –na 1 | find “特定IP”顯示特定 IP 之連線,每隔一秒更新畫面一次 (適用於像是你已鎖定可疑對象,但不知他何時會連過來)-a 代表列出所有連線-n 代表僅列出 IP 及 Port,不解析為 hostname 及 service name,速度會快很多netstat –nao 1 | find “特定IP”加上 -o 參數可顯示觸發該連線之 process ID,欲知 process name 則可以透過內建的 tasklist 這程式netstat –na 1 | find “4444″ | find “ESTABLISHED”也可以針對特定 Port,不分對象的進行監控,再透過 find “ESTABLISHED” 篩選掉僅 LISTENING 的部份netstat /?顯示通訊協定統計資料和目前的 TCP/IP 網路連線。NETSTAT [-a] [-b] [-e] [-f] [-n] [-o] [-p proto] [-r] [-s] [-t] [interval] -a 顯示所有連線和聽候連接埠。 -b 顯示涉及建立每個連線或聽候連接埠的執行檔。在某些情況下,已知執行檔可主控多個獨立元件,在這些情況下,便會顯示涉及建立連線或聽候連接埠的元件順序。如此,執行檔名稱位於底部的 [] 中,上方便是它呼叫的元件等,直到已達 TCP/IP。請注意,此選項相當耗時,而且如果您沒有足夠的權限,便會失敗。 -e 顯示 Ethernet 統計資料。這可以跟 -s 選項合併使用。 -f 顯示外部地址的完整格式的網域名稱 (FQDN)。 -n 以數字格式顯示位址和連接埠號碼。 -o 顯示與每個連線相關聯的擁有處理程序識別碼。 -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 選項可以用來指定預設的子集。 -t 顯示目前的連線卸載狀態。 interval 重新顯示選取的統計資料,每次顯示之間的暫停間隔秒數。按 CTRL+C 鍵可以停止重新顯示統計資料。如果省略,netstat 將會列印一次目前的設定資訊。下面是尋找 28021 與 開啟連線中 為 TCP 協定 計算數量 累記到 1.lognetstat -na | findstr “28021″ | findstr “ESTABLISHED” | find /C “TCP” >> 1.lognetstat參數-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 由這個接口所記錄的網絡沖突數目在 windows 下使用 netstat 指令來查詢已開啟的 listen port (-a), 以及已建立的連線 (active connection) 是十分方便的工具. 不過若是要知道該 connection 或 listen port 是由哪個 process 建立的, 在 netstat 指令下是無法達成的, 必須藉由另一個 sysinternals (被 ms 併入了)的 tcpview 工具.不過, 現在可以不用這麼麻煩了, netstat 工具已經增加了這個功能, 指令是 (-b), 例如:netstat -nb可以找出目前建立 connection 的不解析名稱(即使用ip及port number, -n)的方式, 列出對應的執行檔名稱及 process id (PID), 如此一來, 對於要快速追蹤 active connection 及 listen port 的 process (或執行檔名) 可以更快速的利用指令來取得.常用的方式如下:netstat -nanetstat -nab為什麼使用 -n, 因為可以不用反查 hostname, 直接顯示 ip, 速度較快啦.另外使用 -b 的功能應該是要在 windows 2003 sp2 及以上, windows xp sp3, windows vista 以上才有.less..以下為 netstat 的指令功能列表:顯示通訊協定統計資料以及目前的 TCP/IP 網路連線。NETSTAT [-a] [-b] [-e] [-n] [-o] [-p proto] [-r] [-s] [-t] [-v] [interval]-a 顯示所有連線以及接聽連接埠。-b 顯示關於建立各連線或接聽連接埠的可執行檔。某些情況下是知名的可執行主機多重獨立元件,在這些情況下則會顯示關於建立連線或接聽連接埠的元件組合。在此狀況下,可執行檔的名稱顯示於底部的 [] 中,而其呼叫的元件則顯示於頂端,直到取得 TCP/IP 為止。請注意,這個選項可能需要很多時間而且可能會失敗,除非您有足夠的權限。-e 顯示乙太網路統計資料。這可結合 -s該選項。-n 以數字形式顯示位址與連接埠號。-o 顯示與各連線有關之所擁有的處理程序。-p 通訊協定 顯示由通訊協定所指定的通訊協定連線;通訊協定可能為下列其中一種:TCP、UDP、TCPv6 或 UDPv6。如果使用此 -s選項顯示每一個通訊協定統計資料,則通訊協定可能為下列其中一種:IP、IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP 或 UDPv6。-r 顯示路由表。-s 顯示每一個通訊協定統計資料。根據預設值,會顯示 IP、IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP 和 UDPv6 的統計資料;此 -p 選項可用於指定預設子集。-t 顯示目前的連線卸載狀態。-v 與 -b 搭配使用時,將顯示關於建立所有可執行檔之連線或接聽連接埠的元件組合。間隔 重新顯示已選的統計資料,並在每次顯示的間隔暫停數秒。按下 CTRL+C 以停止顯示統計資料。如果省略此步,則 netstat 將列印目前的組態資訊。