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/

出典と確認

資料確認日:

関連ポート