LocahostとローカルIPアドレスの違いは何ですか?
LANベースのアプリやサーバーツールを設定する、あるいは単に興味をそそるようなネットワークの調整をたくさんしているのであれば、ローカルホストとローカルIPアドレスに違いがあることにお気づきでしょう。違いを学ぶために読んでください.
本日の質疑応答セッションは、コミュニティ主導のQ&A Webサイトのグループである、Stack Exchangeの下位区分であるSuperUserの好意により提供されます。.
質問
SuperUserの読者Diogoは、表面的には同じもののように見えるのに、pingコマンドがなぜlocalhostとlocal IPアドレスを別々に扱うのかを知りたいのです。
Windowsでcmdとpingを使用すると、次のような結果が得られました。
「localhost」をpingします。
「192.168.0.10」(ローカルIPアドレス)にpingを送信します。
両方の状況がまったく同じではありません?
つまり、同じインタフェース、同じマシン、同じアドレスに対してpingを実行しています。どうしてこんなに違う結果が出るの??
明らかに何らかの違いがありますが、2つを切り替えたときに正確に何が起こっているのか?
答え
SuperUserの寄稿者であるTom Wijsmanは、両者の間の微妙な違いについて以下の洞察を提供します。
あなたは同じインターフェースをpingしていません, 物理インタフェースがなくても、まだ「ローカルホスト」があります。.
きみの
ローカルホスト
コンピュータの「外部」IPからではなく、「内部」IPからコンピュータを参照するために使用されます。そのため、pingパケットは物理ネットワークインタフェースを通過しません。物理的なホップなしでポートからポートへパケットを直接送信する仮想ループバックインターフェイスを通してのみ.あなたはまだなぜか疑問に思うかもしれません
ローカルホスト
に解決しています:: 1
, 伝統的に私たちはそれがIPv4アドレスに解決されることを期待するでしょうが127.0.0.1
. ご了承ください.ローカルホスト
ループバックIPアドレスを指すTLD(RFC 2606を参照)(伝統的にはRFC 3330、特に127.0.0.0/8を参照).見上げる
ローカルホスト
使うnslookup
私たちを与えます:
nslookup localhost
…名前:localhostアドレス::: 1 127.0.0.1
したがって、WindowsはIPv6ループバックIPアドレスを使用することを好みます。
:: 1
(RFC 2373を参照)最初にリストされているとおり.それでは、どこから来たのでしょうか、hostsファイルを見てみましょう。.
%WINDIR%\ System32 \ Drivers \ Etc \ Hostsと入力します。
…#localhostの名前解決はDNS自体の中で処理されます。 #127.0.0.1 localhost#:: 1 localhost…
うーん、私たちはWindowsのDNS設定を見なければなりません.
このKB記事は、Windowsが好む設定に影響を与える設定について、太字で強調して説明しています。
- レジストリエディタで、次のレジストリサブキーを見つけてクリックします。
HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ Tcpip6 \ Parameters
- DisabledComponentsエントリを変更するには、DisabledComponentsをダブルクリックします。注:DisabledComponentsエントリが使用できない場合は、作成する必要があります。これを行うには、次の手順を実行します。
- 編集メニューで新規作成をポイントし、DWORD(32-bit)Valueを次にクリックします。.
- DisabledComponentsを入力してEnterを押します.
- DisabledComponentsをダブルクリック.
- [値のデータ]フィールドに次のいずれかの値を入力してIPv6プロトコルを目的の状態に設定し、[OK]をクリックします。
- タイプ
0
すべてのIPv6コンポーネントを有効にします。 (Windowsのデフォルト設定)- タイプ
0xffffffff
IPv6ループバックインタフェースを除くすべてのIPv6コンポーネントを無効にします。この値は、プレフィックスポリシーテーブルのエントリを変更することによって、IPv6よりもインターネットプロトコルバージョン4(IPv4)の使用を優先するようにWindowsを構成します。詳細については、送信元アドレスと宛先アドレスの選択を参照してください。.- タイプ
0x20
プレフィックスポリシーテーブルのエントリを変更して、IPv6よりもIPv4を優先する.- タイプ
0x10
すべての非トンネルインタフェース(LANとPPP(Point-to-Point Protocol)インタフェースの両方)でIPv6を無効にする.- タイプ
0x01
すべてのトンネルインターフェイスでIPv6を無効にします。これらには、サイト内自動トンネルアドレス指定プロトコル(ISATAP)、6to4、およびTeredoが含まれます。.- タイプ
0x11
IPv6ループバックインタフェースを除くすべてのIPv6インタフェースを無効にする.- この設定を有効にするためにコンピュータを再起動します.
このプレフィックスポリシーテーブルとは?
netshインターフェースipv6 show prefixpolicies
(またはプレフィックスポリシー
以前のバージョンでは)優先ラベルのプレフィックス---------- ----- -------------------------------- 50 0 :: 1/128 45 13 fc00 :: / 7 40 1 :: / 0 10 4 :: ffff:0:0/96 7 14 2002 :: / 16 5 5 2001 :: / 32 1 11 fec0 :: / 10 1 12 3ffe :: / 16 1 10 :: / 96
このテーブルは、DNS解決時にどのプレフィックスが他のプレフィックスよりも優先されるかを決定します。.
ああ、そのKBを使用して、IPv4がIPv6よりも優先されることを示すエントリをここに追加できます。.
注意: 互換性のある問題が発生していない限り、この動作を無効にする理由はありません。 Windows Serverでこの設定を変更するとメールサーバーが破損したため、慎重に処理する必要があります。
リンクされたサポート文書を惜しみなく提供する徹底的で有益な回答以上のものはありません。明らかに、localhostとlocal IPアドレスは別々のエンティティであり、異なる目的を果たしています。そして今、私たち全員がその理由を知っています。.
説明に追加するものがありますか?コメントの中で消してください。他の技術に精通したStack Exchangeユーザーからの回答をもっと読みたいですか?こちらのディスカッションスレッドをチェックしてください。.