Hostsファイルの書き方 localhostとは? /etc/hosts

Hostsファイルとは?

/etc/hostsファイルとは?

Hostsファイルはドメイン名とIPアドレスの紐づけ対応表で名前解決に利用されるファイルです。

Linuxでは「/etc/hosts」のパスにあります。

実際にこのファイルをviエディタで開いてみると以下のようにでてきます。

Hostsファイルは、IPアドレス:ドメイン名で記述されている。この名前解決は初めにHostsファイルを参照してから、権威DNSサーバーへの問い合わせが行われる

IPアドレスとドメイン名がタブスペースで区切られて記載されています。

名前解決では、フルリゾルバによる権威DNSサーバーへの問い合わせよりも前にHostsファイルの参照が行われます

インターネット初期ではHostファイルで名前解決を行っていたようです。今日では外部のインターネット上のコンピュータの名前解決はDNSを使っています。

Hostsファイルの書き方

Hostsファイルの編集はrootユーザーで行います。

# vi /etc/hosts

エディタで開いてみるとループバックアドレス 127.0.0.1がlocalhostとして登録されていると思います。

Hostsファイルの書式の基本は「IPアドレス ドメイン名」です。

/etc/hosts
172.163.252.52 www.example.com

スペースを空けてドメイン名を2つ以上入れることも可能

/etc/hosts
172.163.252.52 www.example.com hogehoge

実際に設定するとHostsファイルに基づいて名前解決を行っている様子はこちらのリンクから

上のリンクのGIFアニメでは、ループバックアドレス127.0.0.1のホスト名としてnetdekagakuをHostsファイルに指定しています。設定する前はnetdekagakuをアドレスバーに入れても検索ページが出てきますが、設定後(#を消して有効化)は名前解決が行われて127.0.0.1のページに飛んでいます。127.0.0.1はApacheで立ち上げたwebページ(index.html)が設定されています。

localhost.localdomainの意味とは?

localhostは自分自身を表すホスト名localdomainは自分自身のドメイン名です。localhost.localdomainは自分自身を表すFQDNになります。外部のPCはwww.google.comなどのドメイン名を持つのと同様に自分自身もアドレスをもっています。

Hostファイルには「127.0.0.1」とlocalhost.localdomainですがどんな意味があるのでしょうか?

まず、127.0.0.1はループバックアドレスといって、自分自身を表す特殊なIPアドレスです。

また、別行には「::1」というものも設定されています。これもループバックアドレスです。省略表記されていて、元に戻すと0:0:0:0:0:0:0:1です。このアドレスはIPv6のループバックアドレスです。127.0.0.1はIPv4のループバックアドレスです。

また、localhostの他にlocalhost4とlocalhost6があります。これもIPv4とIPv6のループバックアドレスがあるのと同じく、IPv4のホスト名にはlocalhost4と区別する必要がある場合に利用するホスト名です。

そのため、localhost, localhost4, localhost6のホスト名がそれぞれのループバックアドレスに紐づけられています。

MEMO

Hostsファイルに1つのIPアドレスに対して複数のホスト名を指定できますが、最初のホスト名は正式なホスト名でそれ以降はエイリアス(別名)の扱いになります。

172.0.0.1 (正式ホスト名)(別名ホスト名)…

コメントを残す

メールアドレスが公開されることはありません。