localhost・0.0.0.0・待受アドレスの違い

入門 | 10分 で読める | 2026.06.16

公式ドキュメント

待受アドレスとは、サーバーアプリが「どのIPアドレス宛の通信を受け付けるか」を決める設定です。開発中の localhost0.0.0.0 の違いは、ここで重要になります。

一言でいうと

localhost は自分自身だけ、0.0.0.0 はその機器が持つ全IPv4アドレスで待ち受ける指定として使われます。

まず比較

表記主な意味よく使う場面
localhost自分自身を指す名前自分のPC内で開発サーバーを見る
127.0.0.1IPv4のループバックアドレス自分自身への接続
::1IPv6のループバックアドレス自分自身への接続
0.0.0.0すべてのIPv4アドレスで待受外部や別端末から接続したい時

localhostで起動する場合

開発サーバーが 127.0.0.1:3000 で待ち受けている場合、自分のPCからはアクセスできます。

curl http://localhost:3000

しかし、同じWi-Fi内のスマホや別PCからは接続できないことがあります。外部向けのネットワークインターフェースでは待ち受けていないためです。

0.0.0.0で起動する場合

0.0.0.0:3000 で待ち受けると、その機器が持つIPv4アドレス宛の通信を受け付ける設定になります。

npm run dev -- --host 0.0.0.0

実際のアクセスは、別端末から次のように行います。

http://192.168.1.20:3000

0.0.0.0 はアクセス先としてブラウザに入れるものではなく、サーバー側の待受指定として使うものです。

セキュリティ上の注意

0.0.0.0 で待ち受けると、同じネットワーク内の他の端末から見える可能性があります。開発用サーバー、管理画面、デバッグ用APIを不用意に公開しないようにします。

外部から接続できる形で起動する時は、ネットワーク範囲、認証、ファイアウォールを必ず確認します。

Dockerや仮想環境で混乱しやすい点

Dockerコンテナ内の localhost は、ホストPCではなくコンテナ自身を指します。

場面localhost が指すもの
ホストPCのブラウザホストPC自身
Dockerコンテナ内コンテナ自身
仮想マシン内仮想マシン自身

そのため、コンテナ内からホストのサービスへ接続する時は、環境ごとの特別なホスト名やネットワーク設定が必要になる場合があります。

よくある誤解

誤解実際
0.0.0.0 をブラウザで開く多くの場合、待受指定でありアクセス先ではありません
localhostで動けばスマホからも見えるlocalhostは自分自身なので見えないことがあります
0.0.0.0は必ずインターネット公開LAN内公開に留まる場合もありますが、設定次第で危険です
Docker内のlocalhostはホストPCコンテナ自身を指します

まとめ

localhost127.0.0.1 は自分自身、0.0.0.0 は全IPv4アドレスで待ち受ける指定として理解します。開発サーバーを別端末から確認したい時は便利ですが、公開範囲と認証には注意が必要です。

参考リソース

← 一覧に戻る
PR
PR
PR
PR