【hosts】localhostをコメントアウトしてるのに有効な件

ループバックアドレスとは

ループバックアドレスとはネットワーク上において、自分自身を指す仮想的なアドレスのことです。

IPv4では「127.0.0.1」が、IPv6では「::1」がループバックアドレスになります。

ホスト名としては「localhost」が一般的に使われています。

本題

Windows上においては以下の「hosts」ファイルにてIPアドレスとホスト名のヒモ付が行われています。

「C:\Windows\System32\drivers\etc\hosts」

# Copyright (c) 1993-2009 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
#
# This file contains the mappings of IP addresses to host names. Each
# entry should be kept on an individual line. The IP address should
# be placed in the first column followed by the corresponding host name.
# The IP address and the host name should be separated by at least one
# space.
#
# Additionally, comments (such as these) may be inserted on individual
# lines or following the machine name denoted by a '#' symbol.
#
# For example:
#
#      102.54.94.97     rhino.acme.com          # source server
#       38.25.63.10     x.acme.com              # x client host

# localhost name resolution is handled within DNS itself.
#   127.0.0.1       localhost
#   ::1             localhost

「#」が先頭についている行はコメント行になります。

上記の状態でコマンドプロンプトで「ping」を打ってみます。

何故かホスト名「localhost」が認識されてIPv6[::1]にpingが送信されます。

つまり「localhost」に関しては「C:\Windows\System32\drivers\etc\hosts」以外に設定がある?

いろいろ調べたけど答えが無いので質問してみた

困ったときの知恵袋

質問してみた。

「C:\Windows\System32\drivers\etc\hosts」の以下の行をコメントアウトしています。
# 127.0.0.1 localhost
# ::1 localhost
ホスト名「localhost」だけはpingやブラウザでアクセスしても認識されるのは何故ですか?
別のファイルか、PC内のどこかでデフォルト設定みたいなのがあるのでしょうか?のは何故ですか?

https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q14202073429

そして回答もらえました。

DNSが有効ならDNSで解決されているのではないでしょうか。
例えばCloudflareのDNSはlocalhostを解決できるようです。

なるほど。DNS(Domain Name System)のことは忘れていました。

ローカルPC内でDNS設定している覚えはないので、DNS設定されていそうなルータと切り離すため、とりあえずLAN線を抜いてスタンドアロンにして「ping localhost」を実行しました。

特に結果は変わらずですね。つまりPC内だけで「localhost=127.0.0.1[::1]」と解釈されているようです。

netsh(ネットシェル)コマンドの切口から調査してみる

「netsh interface ip show config」コマンド

実行することで現在設定されているインターフェース・パラメータが一覧確認できます。

“ローカル エリア接続”

“VMware Network Adapter VMnet1”

“VMware Network Adapter VMnet8”

“Loopback Pseudo-Interface 1”

上記の4つのインターフェースが表示されました。

“Loopback Pseudo-Interface 1”・・・なんともループバック設定をやっていそうな名前だ

ネットワーク接続設定でインターフェースを無効にする

まずは上の3つを除外してみる

「コントロールパネル」>「ネトワークとインターネット」>「ネットワーク接続」

から各接続設定を右クリックし、「無効にする」を選択する

この状態で「netsh interface ip show config」コマンドを実行する

無効にした3つのインターフェースは一覧に表示されなくなりました。

あとはこの”Loopback Pseudo-Interface 1″を設定する方法が分かれば、もしかしたらlocalhostの設定場所が分かるかもしれない??と行ったところで今回はここまでになります。

追記(2019/01/23)

「Loopback Pseudo-Interface 1」は無効にすることが出来ないようです。でも調べてみたところ名前の通りループバックアドレス用のインターフェースのようで、やっぱりこのインターフェースのおかげで「localhost」は「127.0.0.1[::1]」となるんだろうなあと思った次第です。

スポンサーリンク

フォローする

スポンサーリンク