inoino-blog
0.0.0.0と127.0.0.1とlocalhost
2025-2-24

Webの開発していて同一ネットワークからiPadで開発サーバーにアクセスしたいと思ったときに、0.0.0.0127.0.0.1とlocalhostの違いで詰まったのでそのメモ。

全てIPアドレスなので何かしらの住所を表していることは大前提。

0.0.0.0

0.0.0.0にはいくつかの用途がある。今回は3のbindアドレスの話。

1. 未指定のアドレス

まだ、自身に有効なIPアドレスが割り振られていない時に使用

詳細

iconCatalyst スイッチまたは企業ネットワークにおける DHCP の説明とトラブルシューティング - Cisco Community

icon0.0.0.0 ‐ 通信用語の基礎知識

2. (ルーティングテーブル上で使用)デフォルトルート

ルーティングテーブル上のデフォルトルート。

詳細

icon0.0.0.0 - Wikipedia

3. (サーバーの)bindアドレス

0.0.0.0をバインドすると、システム上のすべてのネットワークインターフェースに対してListen状態になる。

※ bindとは

ApacheなどのHTTPサーバー起動時に、自身がListenするポートとIPアドレスを設定すること。bindによって、自身の特定のポートやポートとアドレスから入ってくるリクエストを受け付けられるようになる。

iconバインド - Apache HTTP サーバ バージョン 2.5

詳細(詳細は後でも説明)

127.0.0.1(ループバックアドレス)

iconループバックアドレス とは #初心者 - Qiita

icon特別なIPアドレス:ローカルループバックアドレス(Local Loopback Address)について | IT情報メディア「LIVRA」

IPアドレス空間のうち、127.xxx.xxx.xxx/8は自分自身を表す特別なIPアドレスとして予約されている。

そのうち、127.0.0.0/8はダイレクトブロードキャストのためのIPアドレス、127.255.255.255/8はローカルブロードキャストのためのIPアドレスなので使えない。

結論、127.0.0.1/8 ~ 127.255.255.244/8の範囲ならどのIPアドレスもループバックアドレスに使用できる。

その中でも通常は127.0.0.1をデフォルトに使用する。

自分自身とは?

開発するノートPCでサーバーを立てた(pnpm run devとか)時、そのノートPCのブラウザでアクセスする。その時はアクセスしたいWebサーバーは自分自身になる。この時にループバックアドレスが使われる。

localhost

これはループバックアドレスのエイリアス(別名)。

/etc/hosts を見ると

127.0.0.1       localhost

と書かれている。

hostsファイルはOSの設定ファイルの一つで、ホスト名とIPアドレスの対応を管理するファイル。

iconhostsファイルの設定について | ブログ | 多言語翻訳と制作のアイ・ディー・エー株式会社

localhostは127.0.0.1、すなわち自分自身を表している。

まとめ

0.0.0.0127.0.0.1がよく分かった。この知識をもとにWebの開発していて同一ネットワークからIpadで開発サーバーにアクセスしよう!

次回へ続く…

参考

icon[Docker]0.0.0.0でサーバーを立てる理由(Python)

icon0.0.0.0にはアクセスしないこと #Linux - Qiita