こんにちはユキトモです。
今回は「/etc/hosts」ファイルについて解説していきます。
この記事でわかること
- 「/etc/hosts」ファイルの概要が分かります。
「/etc/hosts」ファイル
ひとことで言うと
「ホスト名とIPアドレスを対応させるためのファイル」
です。
筆者の環境の例を記すと
/etc/hosts
 
[root@localhost etc]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.200.132 home1 home1.example.net
各行に、IPアドレスと、それに対応するホスト名が記述されています。
このように記載されていた場合、sshで接続する時にIPアドレス またはホスト名(home1.example.net)
どちらでも接続することができます。
/etc/hosts
 
$ ssh 192.168.200.132
または
$ ssh home1.example.net
ですが、DNSに対応していれば、DNSが実施してくれます。
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アドレスに接続しようとする
ことがあるので、注意が必要です。