前言 - Prologue
在 Ubuntu 操作 VScode ,常常不小心關掉,而當再次開啟輸入 npm start
時,就會出現下列警示:
Something is already running on port 3000.
這時候就會詢問你是否要開啟另一個端口,而後端的測試伺服器限定只能 Port 3000 怎麼辦呢?
於是就爬文尋找如何強制關閉 Port 3000 的方法,這邊做一個解決辦法的筆記與紀錄。
說明 - Explanation
當在 Node.js
中遇到「Port 3000 already in use」、「Something is already running on port 3000」的錯誤訊息,通常表示該埠號已被其他進程或應用程式佔用。

即使你認為該埠號並未被使用,可能仍有殘留的進程或服務佔用著該埠號。
要解決這個問題可以嘗試以下步驟:
- 確認埠號是否真的被使用:
可以使用命令列工具,例如 netstat
或 lsof
,來檢查是否有任何進程正在監聽該埠號。
例如:在 Unix 系統上,可以執行命令 lsof -i :3000
來查看哪個進程正在使用該埠號。
- 終止佔用該埠號的進程:
如果發現有進程正在使用埠號 3000,可以終止該進程以釋放該埠號。
例如:在 Unix 系統上,可以使用 kill <PID>
來終止進程。
- 重新啟動 Node.js 應用程式:
確保埠號已經釋放後,重新啟動 Node.js
應用程式,檢查錯誤是否仍然存在。
- 使用不同的埠號:
如果無法釋放埠號 3000,可以修改代碼或配置,使用另一個尚未被使用的埠號。
也有可能是其他因素導致問題,例如防火牆設定或衝突的網路配置。
如果問題仍然存在,也可以嘗試百試不靈的老方法重新啟動電腦,或直接諮詢系統的管理員以獲得進一步協助。
解決方案 - Solution
You can search on how to kill that process.
For Linux/Mac OS search (sudo) run this in the terminal:
Linux/Mac:
$ lsof -i tcp:3000
$ kill -9 PID
On Windows:
netstat -ano | findstr :3000
tskill typeyourPIDhere
change tskill for taskkill in git bash
📚 原文連結 - Source Post Link
javascript - Node.js Port 3000 already in use but it actually isn't? - Stack Overflow
https://stackoverflow.com/questions/39322089/node-js-port-3000-already-in-use-but-it-actually-isnt