1. ホーム
  2. ip

[解決済み] 0.0.0.0、127.0.0.1、localhostの違いは何ですか?

2022-03-14 07:21:12

質問

を使っています。 JekyllVagrant をmacにインストールしました。私が見つけたのは Jekyll server にバインドされます。 0.0.0.0:4000 ではなく 127.0.0.1:4000 . また gem server は、デフォルトでこのアドレスにバインドされます。それでも http://localhost:port . しかし Jekyll , は、デフォルトの設定(例:0.0.0.0:4000)では、インターネットに接続する必要があるようです。を実行することができません。 Jekyll server インターネットがない場合 小さなバグなのでしょうか?

また、私は Vagrant . をインストールしているので、Vagrantfileでポートフォワーディング(8080 => 4000)を設定しました。 JekyllVagrant の仮想マシンで、Macintoshでテストしてみました。デフォルトの設定(0.0.0.0:4000)であれば、動作しています。サファリから http://localhost:8080 . しかし、インターネットがない場合、0.0.0.0:4000にバインドすることができません。私は jekyll server -H 127.0.0.1 にサービスをバインドするために 127.0.0.1:4000 を経由してアクセスすることはできません。 http://localhost:8080 .

誰でもいい 0.0.0.0, 127.0.0.1, localhostの違いを教えてください。 ? また、どなたか なぜその違いがこの問題を引き起こすのかを説明してください。 ?

解決方法は?

127.0.0.1 は通常、quot;loopback"またはlocal-onlyインターフェースに割り当てられたIPアドレスです。 これは、同じホスト内でのみ通信可能な偽のネットワーク・アダプタです。 これは、ネットワーク対応アプリケーションが同じホスト上のクライアントにのみサービスを提供したい場合によく使用されます。 でリッスンしているプロセスは 127.0.0.1 は、そのソケットでローカル接続のみを受信します。

は、通常は 127.0.0.1 IPアドレスです。 これは通常 /etc/hosts (の下のどこかにあるhosts"という名前のWindowsに相当するもの)。 %WINDIR% ). 他のホスト名と同様に使用することができます - "ping localhost"で、それがどのように 127.0.0.1 .

0.0.0.0 にはいくつかの意味がありますが、この文脈では、サーバが 0.0.0.0 というのは、「利用可能なすべてのネットワーク・インターフェイスをリッスンする」という意味です。 ループバックアダプタのIPアドレスは 127.0.0.1 サーバプロセスから見ると、マシン上の他のネットワークアダプタと同じように見えるので、サーバが 0.0.0.0 はそのインターフェイスでの接続も受け付けます。

これでIP側の質問には答えられたと思います。 私はJekyllまたはVagrantに精通していないですが、私はあなたのポートフォワーディングを推測している 8080 => 4000 が何らかの形で特定のネットワークアダプタにバインドされているため、ローカルで 127.0.0.1