Closed7

/etc/hostsファイルについて

こまきちこまきち

/etc/hosts ファイルは、ホスト名とIPアドレスを対応させるためのファイル

こまきちこまきち

さて、DNSのことを学んでいる方であれば、ここで「それはDNSに対応していれば、DNSがやってくれることでは?」と思うことでしょう。その通りです。/etc/hostsの存在を理解するには、その歴史的背景を理解しておく必要があります。

DNSが普及する前、名前解決(ホスト名をIPアドレスに変換すること)はDNSでなく、この/etc/hostsの記述に則って行われていたのです。すなわち、/etc/hostsにインターネット上のホストの一覧がずらりと並んでいたのです。
インターネットというものがまだそれほど大きくなかった時代の話ですので、それでも何とか名前解決というものができたのです。

しかし、インターネットが大きくなり、/etc/hostsに頼る方法では埒があかないという状態になってから、DNSが開発され、/etc/hostsはその役割をDNSに譲ったというわけです。

では/etc/hostsは無用の長物なのかというと、必ずしもそうとは言い切れません。DNSサーバを構築設定するほどでもない小規模な検証環境などでは、各ホストの/etc/hostsを設定すれば名前解決が行えます。ただし、ほとんどのディストリビューションではDNSよりも/etc/hostsを優先して名前解決を行います。実在するホスト名を/etc/hostsに記述した場合には、想定外のIPアドレスが返ることでホストにアクセスできない(別のIPアドレスに接続しようとする)ことがあるので、注意が必要でしょう。

https://linuc.org/study/knowledge/506/

こまきちこまきち

疑問①
例えば

127.0.0.1 example.com

と記載した場合、ホスト名をしていすることで得られるメリットはあるのか。

こまきちこまきち

A. 例えばCSRFをドメインで指定して、本番環境でも使いまわせるようにしている場合は有効

こまきちこまきち

疑問②
そもそもの話になっちゃうけど、

127.0.0.1 example.com

example.com 127.0.0.1

と変えたらどうなる?(多分できないけど)

このスクラップは2022/03/24にクローズされました