找出開啟網路連線的程式

出自KMU Wiki

跳轉到: 導航, 搜索

在 Windows 環境下,若發現網路連線明顯的變慢,或網路設備有類似當機情況時,

可下載並執行 TCPView (TCPView 校內下載)這個工具程式,

或者用 Windows 內建的「netstat」指令配合「工作管理員」找出開啟網路連線的程式,

來檢測及排除網路連線是否異常的狀況。

檢測步驟如下:
1. 檢視網路連線狀態
請開啟「命令提示字元」,於指令列鍵入netstat -ano
圖像:netstat.jpg

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

當網路是連線狀態時,會出現以下資訊 圖像:conn1.jpg

『Proto』代表協議,有TCP和UDP兩種協議。
『Local Address』代表本機地址,該位址冒號後的數字就是開放的埠號。
『Foreign Address』代表遠端地址,如果和其他機器正在連線,顯示的就是對方的位址。
『State』代表狀態,如果顯示LISTENING表示處於偵聽狀態,就是說該埠是開放的,等待連接,但還沒有被連接。
『PID』代表連線程式的 PID(Process ID)。
 在連線時『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 的狀態時,則可大約判定網路連線是處於異常狀態。 找出開啟網路連線的程式

2. 取得連線程式的 PID
以下圖為例,本機port:2981目前與207.46.125.33主機連線已建立完成,PID是3116
圖像:conn.jpg

3. 找出連線程式
「工作管理員」 -> 「處理程序」頁籤中,查詢PID是3116的影像名稱(程式名稱)
以下圖為例,PID是3116執行的程式是msnmsgr.exe
圖像:process.jpg


如果「工作管理員」中沒列出 PID 欄位(預設是沒有),可自行調整顯示欄位設定。
「工作管理員」 -> 「檢視」 -> 「選擇欄位」 -> 「PID」打勾
圖像:PID01.jpg

圖像:PID02.jpg