如何查出佔用連接埠(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 欄位,可自行調整顯示欄位設定。


發表於:2008年11月10日 0:58 1. 作者:凝風
謝謝你的文章 XD
我也是Apache打不開,害我一直在查到底是啥程式。
原來是skype佔住了,真是第一次遇到= =
發表於:2009年04月16日 20:53 2. 作者:sam
我是無線網卡被佔用,但找不出佔用的程式的PID號碼…
該如何知道哪個程式PID在佔用~??
發表於:2009年04月17日 18:58 3. 作者:落腳齋主人
sam, “無線網卡被佔用”? 我不太懂你的問題耶…
發表於:2009年08月20日 15:13 4. 作者:訪客
感謝哩!!派上用場
發表於:2009年09月02日 11:49 5. 作者:如何知道哪個PORT被佔用 | 楊桃加泡芙
[...] http://wuyy.idv.tw/blog/index.php/inquire-comm-port/ 電腦密技 [...]