私はMac でJekyll
とを使用しています。は の代わりににバインドすることがわかりました。 また、 はデフォルトでこのアドレスにバインドされます。 経由でもアクセスできます。 しかし の場合、デフォルト設定 (例: 0.0.0.0:4000) ではインターネット アクセスが必要なようです。インターネットなしでは実行できません。これは小さなバグでしょうか?Vagrant
Jekyll server
0.0.0.0:4000
127.0.0.1:4000
gem server
http://localhost:port
Jekyll
Jekyll server
私も を使用しています。仮想マシンにVagrant
インストールして Macintosh でテストしているので、Vagrantfile でポート転送 (8080 => 4000) を設定しています。デフォルト設定 (0.0.0.0:4000) を使用すると動作します。 で Safari からアクセスできます。ただし、インターネットがない場合、0.0.0.0:4000 にバインドできません。代わりに にサービスをバインドすると、 経由でアクセスできなくなります。Jekyll
Vagrant
http://localhost:8080
jekyll server -H 127.0.0.1
127.0.0.1:4000
http://localhost:8080
0.0.0.0、127.0.0.1、localhost の違いを説明できる人はいますか? また、その違いがなぜこの問題を引き起こすのかを説明できる人はいますか?
ベストアンサー1
127.0.0.1
通常は、「ループバック」またはローカルのみのインターフェイスに割り当てられる IP アドレスです。これは、同じホスト内でのみ通信できる「偽の」ネットワーク アダプタです。これは、ネットワーク対応アプリケーションを同じホスト上のクライアントにのみ提供したい場合によく使用されます。127.0.0.1
接続をリッスンしているプロセスは、そのソケットでローカル接続のみを受信します。
「localhost」は通常、IP アドレスのホスト名です127.0.0.1
。これは通常 で設定されます/etc/hosts
(または、Windows の「hosts」という同等のものは、通常 にありますC:\Windows\System32\Drivers\etc\hosts
)。他のホスト名と同じように使用できます。ping localhost
に解決されるかどうかを確認してください127.0.0.1
。
0.0.0.0
にはいくつかの異なる意味がありますが、このコンテキストでは、サーバーが listen するように指示された場合、0.0.0.0
それは「利用可能なすべてのネットワーク インターフェイスを listen する」ことを意味します。サーバー プロセスの観点からは、IP アドレスを持つループバック アダプターは127.0.0.1
、マシン上の他のネットワーク アダプターとまったく同じように見えるため、listen するように指示されたサーバーは0.0.0.0
そのインターフェイスでの接続も受け入れます。
これでIPに関する質問への回答が得られたと思います。私はJekyllやVagrantに詳しくありませんが、ポート転送が8080 => 4000
何らかの形で特定のネットワークアダプタにバインドされているため、ローカルで接続したときにパスに含まれていないのではないかと思います。127.0.0.1