如何查出佔用連接埠(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 命令

若上述方式無法找到佔用的程式,可再試著使用下列方法。改下指令:netstat -ano。以下圖為例,可以看出 80 port 正在使用,PID 為 1392。

netstat 命令使用

知道 PID 之後,接著就可以使用『工作管理員』查看該 PID 是由哪一支程式所執行。找到 PID 1392 原來是 Skype.exe。(亦可在命令列模式下,輸入: 『tasklist』指令查詢。
工作管理員

進到 skype 裡查看設定,果然在連線設定看到預設允許其使用 80/443 port 進對外連線。將此勾選移除,再重新啟動 skype,釋放其佔用的 80 port。
skype 設定

如果工作管理員中沒列出 PID 欄位,可自行調整顯示欄位設定。

5 個留言

  1. 發表於:2008年11月10日 0:58 1. 作者:凝風

    謝謝你的文章 XD

    我也是Apache打不開,害我一直在查到底是啥程式。

    原來是skype佔住了,真是第一次遇到= =

  2. 發表於:2009年04月16日 20:53 2. 作者:sam

    我是無線網卡被佔用,但找不出佔用的程式的PID號碼…
    該如何知道哪個程式PID在佔用~??

  3. 發表於:2009年04月17日 18:58 3. 作者:落腳齋主人

    sam, “無線網卡被佔用”? 我不太懂你的問題耶…

  4. 發表於:2009年08月20日 15:13 4. 作者:訪客

    感謝哩!!派上用場

  5. 發表於:2009年09月02日 11:49 5. 作者:如何知道哪個PORT被佔用 | 楊桃加泡芙

    [...] http://wuyy.idv.tw/blog/index.php/inquire-comm-port/ 電腦密技 [...]

引用 | 訂閱留言(RSS Feed)

發表您的留言