Hostsの書き方 localhost, localdomainとは? /etc/hostsの中身と書き換え!

Hostsファイルとは?

/etc/hostsファイルとは?

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

名前解決とはgoogle.comという名前のサイトを訪れるのに必要なIPアドレスを取得することです。以下を参考にしてください。

ドメイン名とホスト名とは?

名前解決の流れは、まずはサーバ内にあるhostsファイルを見てから、なければ外部のDNSサーバに問い合わせてIPアドレスを取得します。

  1. hostsファイルを参照する
  2. 外部のDNSサーバに問い合わせる

Hostsファイルの場所

Linuxでは「/etc/hosts」にあります。
(windowsの場合:C:\Windows\System32\drivers\etc)

実際にviで/etc/hostsの内容を見てみましょう。

HostsファイルにはIPアドレスとドメイン名で記述

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

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

インターネット初期ではHostファイルで名前解決を行っていたようですが、ドメインの数が無数にある現代ではローカルのHostsファイルではなくDNSを使っています。

Hostsファイルの書き方

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

# vi /etc/hosts

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

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

172.163.252.52 www.example.com

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

172.163.252.52 www.example.com sub.example.com

実際に設定すると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になります。

localhostは特別なドメインとして予約されていています(RFC 6761)。このドメインはループバックアドレス127.0.0.1に名前解決されます。

localdomainも同様に特別なドメイン名です。

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 (正式ホスト名)(別名ホスト名)…

コメントを残す

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