回答:
一部のサービスは、ローカルホストのIPアドレスでのみリッスンするように構成されています。
例としては、MySQLデータベースがあります。同じサーバー上で実行されているPHPアプリケーションに接続したいが、外部サービスや外部からのハッカーさえも接続したくない場合です。127.0.0.1
サーバーの実際のIPアドレス(10.x.x.x
たとえば)ではなく、ローカルホストアドレスのみ(たとえば)を受け入れるようにMySQLを構成することにより、侵害される可能性を減らします。
だから、あなたの質問に答えるために-はい、彼らは異なっています。
localhost
127.0.0.0
ネットワークのIPアドレスが与えられて、仮想ループバックネットワークデバイスに与えられますlo
。このデバイスは、物理ネットワークデバイス(WiFiまたはイーサネットなど)が装備されているかどうかに関係なく、すべてのシステムに存在します。どのネットワークにも接続されていないシステムには、このループバックデバイスがあるため、127.0.0.0
アドレスがあります。名前localhost
は単にこのIPアドレスに解決される名前であり、で設定され/etc/hosts
ます。
あなたの本当の IPアドレス(たとえば、10.xxx)は、ネットワークデバイスに割り当てられています。これは通常、物理ネットワークデバイス(WiFiまたはイーサネット)ですが、高度なセットアップtun
またはtap
デバイスでも使用できます。再び、(例えば、名前解決www.example.org
には10.0.1.1
)に設定することができ/etc/hosts
、またはDNSを使用するように設定することができます。
127.0.0.1
は localhost
、現在のマシンのアドレスであり、ループバックインターフェイスを介してアクセスされます(ネットワークアダプターを介してではなく、システムにネットワークチップがなくても機能します)。
ルーターから取得するIPは別の話です。これは、ネットワーク上の他のコンピューターがあなたを見つけることができるアドレスです。まあ、あなたは同じマシンでそのIPを使用することもできますが、それは以前とは異なる動作をします:それはルーターに出て行きます(ここでは簡単にしていますが、それは一般的な考え方です)。
また、インターネットに接続している場合は、ISPから別のIPを取得します。これは、世界中の他のコンピューターがあなたを見つけるためのIPです。ただし、これら2つは少なくとも同じネットワークアダプター(eth0
またはワイヤレスカードなど)を指します。localhost
違います。
オペレーティングシステム、サーバーなどは、からアクセスしlocalhost
たときに異なる動作をする可能性があります。通常、そのためのファイアウォールはありません。多くのローカルサービスには、localhost
単にアプリケーションと通信するためのインターフェイスがあります。多くの場合、最初に接続してリッスンするlocalhost
だけでWebサーバーをテストする必要があります。そうすれば、機能するかどうかを確認できますが、他の人はできません。次に、外部IPアドレスでリッスンするように再構成し、Webサイトのサービスを開始できます(すべてがまだ機能するかどうかを再度テストします)。
network is unreachable
。それ以外の場合は、取得するか類似したものになります。トリックは(少なくともdhcpでは)最初にLAN IPを提供するのはルーターであるということです。ルートが持続する場合、これは場合によっては異なる可能性がありますが、本質的には、LAN IPにはLANが必要であり、外部IPにはISPへの接続が必要です。
にアクセスするlocalhost
と、/etc/hosts
ファイルはコンピューターにこれ以上調べないように指示し、自分のコンピューターにリダイレクトします。ローカルIPアドレスにアクセスすると、コンピューターはルーターにデータを取得するように要求し、ルーターはコンピューターを指すようになります。