localhost、127.0.0.1 與 0.0.0.0 的差異

理解回環、所有介面與 IPv6,排查「本機可存取、其他裝置無法存取」,同時控制公開範圍。

說明監聽位址與用戶端目標的差異。具體雙協定行為受作業系統和應用程式設定影響,不能僅憑顯示為 :: 就斷定 IPv4 也可存取。

1. 回環位址指向目前環境

127.0.0.1 是 IPv4 回環,::1 是 IPv6 回環。localhost 可能解析為其中之一或兩者;僅綁定一種時,另一路徑可能失敗。容器裡的 localhost 通常是該容器,而非主機。

2. 所有介面監聽不是存取 URL

應用程式綁定 0.0.0.0 表示接收所有本機 IPv4 介面上的連線,用戶端應連接真實主機位址。外部能否存取仍取決於防火牆、路由、NAT 和容器公開設定。開發除錯完成後應縮小不必要的公開範圍。

3. 比較位址族,定位差異

以下範例僅測試本機 HTTP 3000,分別強制 IPv4 與 IPv6。若僅一條成功,回查 localhost 解析與實際監聽位址;不要先改成公網監聽來掩蓋差異。

curl --noproxy "*" -4 --connect-timeout 3 --max-time 10 -I http://localhost:3000/
curl --noproxy "*" -6 --connect-timeout 3 --max-time 10 -I http://localhost:3000/

來源與核驗

資料核對日期:

相關連接埠