localhost・127.0.0.1・0.0.0.0 の違い
ループバック、全インターフェース、IPv6 の違いから、他の端末から接続できない原因と公開範囲を確認します。
待受アドレスと接続先アドレスを区別します。デュアルスタック動作は OS とアプリ次第です。:: の表示だけで IPv4 も使えるとは断定できません。
1. ループバックは現在の環境自身を指す
127.0.0.1 は IPv4、::1 は IPv6 のループバックです。localhost は片方または両方へ解決されます。コンテナ内では通常そのコンテナ自身を指し、ホストを指しません。
2. 全インターフェース待受は接続先 URL ではない
0.0.0.0 への bind はローカルの全 IPv4 インターフェースで受け付けます。クライアントは実際のホストアドレスへ接続します。外部到達性はファイアウォールや NAT などにも左右されます。
3. アドレスファミリーを比較する
以下はローカルの HTTP 3000 を IPv4 と IPv6 で別々に確認します。片方だけ成功する場合は、公開範囲を広げる前に名前解決と待受アドレスを調べてください。
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/出典と確認
資料確認日: