如何查出佔用連接埠(port)的程式(程序)
今天在安裝 Apache Server 時,出現 80 port 被佔用,無法啟動 Apache Server 的情況,納悶著,這台 WindowsXP 我明明沒安裝 IIS 啊,到底 80 port 被哪支程式給佔用了?使用 netstat + 工作管理員,找出原兇,原來是 skype 啊,之前竟然都沒注意過這件事。以下簡單說明一下查詢的方式。
使用 netstat 查看網路連線狀況
先進到命令列模式(開始 -> 所有程式 -> 附屬應用程式 -> 命令提示字元),指令:netstat -abn。參數 a 表示列出所有連線中或 listening的連線;n 表示使用數字形態列出,亦即 http 會以 80 顯示,ftp 會以 21 顯示…;b為列出哪支程式在使用該連接埠;o 則為列出該程式的 PID。以下圖為例,可以看出使用 80 port 的程式為 httpd.exe,即正被 Apache 使用。(update: 2009/03/10)
若上述方式無法找到佔用的程式,可再試著使用下列方法。改下指令:netstat -ano。以下圖為例,可以看出 80 port 正在使用,PID 為 1392。
知道 PID 之後,接著就可以使用『工作管理員』查看該 PID 是由哪一支程式所執行。找到 PID 1392 原來是 Skype.exe。(亦可在命令列模式下,輸入: 『tasklist'指令查詢。
進到 skype 裡查看設定,果然在連線設定看到預設允許其使用 80/443 port 進對外連線。將此勾選移除,再重新啟動 skype,釋放其佔用的 80 port。
如果工作管理員中沒列出 PID 欄位,可自行調整顯示欄位設定。
文章出處:http://wuyy.idv.tw/blog/index.php/inquire-comm-port/
留言
張貼留言