找出開啟網路連線的程式

出自KMU Wiki

在2011年10月31日 (一) 17:06由Lisachang (對話 | 貢獻)所做的修訂版本
跳轉到: 導航, 搜索

在 Windows 環境下,若發現網路連線明顯的變慢,或網路設備有類似當機情況時,
可使用「netstat」指令配合「工作管理員」找出開啟網路連線的程式,
來檢測及排除網路連線是否異常的狀況。
檢測步驟如下:
1. 檢視網路連線狀態
請開啟「命令提示字元」,於指令列鍵入netstat -ano

 XP:按「開始」後,在「執行」的位置上鍵入cmd,再按「ENTER」,您便會得到一個「命令提示字元」視窗。
 Vista:按「開始」後,在「搜尋」的位置上鍵入cmd,再按「ENTER」,您便會得到一個「命令提示字元」視窗。
 netstat(network statistics)是一個可以查詢本機網路和外界網路連線的指令,
 可以透過這個指令瞭解電腦連線的狀況,也可得知有沒有奇怪的連線。
 參數 a 表示列出所有連線中或listening的連線;
      n 表示使用數字形態列出,亦即 http 會以 80 顯示,ftp 會以 21 顯示…;
      o 則為列出該連線程式的 PID(Process ID)

當網路是連線狀態時,會出現以下資訊

『Proto』代表協議,有TCP和UDP兩種協議。
『Local Address』代表本機地址,該位址冒號後的數字就是開放的埠號。
『Foreign Address』代表遠端地址,如果和其他機器正在連線,顯示的就是對方的位址。
『State』代表狀態,如果顯示LISTENING表示處於偵聽狀態,就是說該埠是開放的,等待連接,但還沒有被連接。
 在連線時『State』可能會有以下幾種狀態:
   LISTENING:偵聽狀態,等待連接。
   SYN_SENT:連線初始時,發送封包的狀態。
   SYN_RECV:接收到一個要求連線的主動連線封包。
   TIME_WAIT:等候對方回應的狀態。
   ESTABLISHED:連線已建立完成的狀態。
   FIN_WAIT1:該插槽服務(socket)已中斷,該連線正在斷線當中。 
   FIN_WAIT2:該連線已掛斷,但正在等待對方主機回應斷線確認的封包。

在這些欄位中要特別檢視的是 『Local Address』欄位內的 port number 以及『State』欄位的 SYN_SENT 這個狀態。 若出現大量的連線,port number 呈現連續性(正常的話應為隨機性,不至於出現大量的連續性,除非整個網路只有一部主機連線),並且『State』持續為 SYN_SENT 的狀態時,則可大約判定網路連線是處於異常狀態。


如果「工作管理員」中沒列出 PID 欄位(預設是沒有),可自行調整顯示欄位設定。

「工作管理員」 -> 「檢視」 -> 「選擇欄位」 -> 「PID」打勾