網路與 Port 偵錯

部分內容由 LLM 生成,尚未經過人工驗證。

netsh http show urlacl

查詢系統中已保留的 HTTP URL 清單(URL Access Control List)。

cmd
netsh http show urlacl

當某個 port 被 Windows HTTP API 保留時,其他程序即使 port 未被佔用也無法綁定。此指令可列出所有保留項目。

netsh interface ipv4 show excludedportrange

查詢系統排除的 TCP Port 範圍。Windows 會自動保留部分 port 供 Hyper-V 或其他系統功能使用。

cmd
netsh interface ipv4 show excludedportrange protocol=tcp

若應用程式啟動時出現 port 被佔用的錯誤,可用此指令確認目標 port 是否在排除範圍內。

netstat -ano | findstr

查詢特定 port 目前由哪個 PID 佔用。

cmd
netstat -ano | findstr :<port>

範例: 查詢 port 1313

cmd
netstat -ano | findstr :1313

輸出範例:

TCP    0.0.0.0:1313    0.0.0.0:0    LISTENING    12345

最後一欄為 PID。

tasklist | findstr

根據 PID 查詢對應的程序名稱。

cmd
tasklist | findstr <PID>

範例: 查詢 PID 12345

cmd
tasklist | findstr 12345

輸出範例:

hugo.exe    12345    Console    1    25,456 K

常見除錯流程

### 確認 port 是否被系統排除 ```bat netsh interface ipv4 show excludedportrange protocol=tcp ``` ### 確認 port 是否有 URL 保留 ```bat netsh http show urlacl ``` ### 找出佔用 port 的 PID ```bat netstat -ano | findstr : ``` ### 查詢 PID 對應程序 ```bat tasklist | findstr ```