このページではLinuxWindowsMacintoshの、LAN内の名前解決を行うhostsファイルの設定について初心者/ビギナー向けに解説します。
お便利サーバー.com+相互リンクサイト内をキーワードで検索
自宅内DNSサーバーの構築

DNSサーバーの構築

hostsファイルの設定

BINDについて(〜9.3.x)

BINDについて(9.7.x〜)

named.confの設定(〜9.3.x)

named.confの設定(9.7.x〜)

ゾーンファイルの書式

ゾーンファイルの省略方法

既存のゾーンファイル(〜9.3.x)

既存のゾーンファイル(9.7.x〜)

正引きゾーンファイルの作成

逆引きゾーンファイルの作成

設定ファイルの書式チェック

namedの起動とコントロール

namedの動作確認

ルーターとホストの設定

DNSSECについて


hostsファイルについて

hostsファイル はその名前のとおり、 FQDN IPアドレス との対照を記述した テキスト ファイルです。

hostsファイルの内容は、通常は外部の名前解決サーバー( DNSサーバー など)よりも先に参照されますから、これを適切に設定することで、 ホスト機 ごとに独自の名前解決結果を与えることが可能になります。

hostsファイルは OS の種類によって場所も書式もまちまちです。

またhostsファイルを直接エディタで書き換えずに、hostsファイルの設定のツールを使う MacOSX のようなパターンもあります。

LinuxOS の場合、hostsファイルの書式自体はほとんどの ディストリビューション WBEL CentOS と同じです。

ただ、ディストリビューションによっては、 GUI で予め準備されている設定ツールを利用できるものもあります。

もちろん、どちらを利用しても構いませんが、 名前解決 の意味さえわかっていれば、わざわざツールを使うよりも直接hostsファイルを編集したほうが簡単で確実ですから、可能な限り直接書き換えで設定することをおすすめします。

LinuxOSのhostsファイルの書き換えについては、 WBEL3のhostsファイルの設定 CentOS3のhostsファイルの設定 WBEL4のhostsファイルの設定 CentOS4のhostsファイルの設定 CentOS5のhostsファイルの設定 CentOS6のhostsファイルの設定 を参考にしてください。

関連セクションへ 関連セクション・ 固定IPでDNSサーバー構築


"web1.obenri.com"のhostsファイル

まず、 サーバー機 自身の hostsファイル の修正を行います。

現在 構築中のLinuxサーバー は、 ダイナミックDNS で、

と名前解決されるように登録していますから、これらの FQDN をそのままhostsファイルに設定します。

127.0.0.1 localhost.localdomain localhost
192.168.100.11 web1.obenri.com web1 obenri.com www.obenri.com mail.obenri.com

これらのFQDNはサーバー機にとっては 自分自身を示すもの ですから、必ずしも"192.168.100.11"に対応させる必要はなく、 ループバックアドレス に対応させても構いません。

127.0.0.1 localhost.localdomain localhost web1.obenri.com web1 obenri.com www
.obenri.com mail.obenri.com

説明が重複しますので、 WBEL CentOS のhostsファイル設定の書式などについては、 WBEL3のhostsファイルの設定 CentOS3のhostsファイルの設定 WBEL4のhostsファイルの設定 CentOS4のhostsファイルの設定 CentOS5のhostsファイルの設定 CentOS6のhostsファイルの設定 を参考にしてください。

また、設定を書き換えたら、 WBEL3のネットワーク設定の有効化の方法 CentOS3のネットワーク設定の有効化の方法 WBEL4のネットワーク設定の有効化の方法 CentOS4のネットワーク設定の有効化の方法 CentOS5のネットワーク設定の有効化の方法 CentOS6のネットワーク設定の有効化の方法 を参考に必ず設定の有効化を行ってください。

関連セクションへ 関連セクション・ 固定IPでDNSサーバー構築


このページの先頭へ↑

WindowsOSのhostsファイル

WindowsOS hostsファイル "hosts" というファイル名で所定のディレクトリに存在しなければなりません。

ただしその場所はOSの種類によって様々です。

Windows7 WindowsVista WindowsXP (Home,Professional, Server2003 , Server2008 )の場合

"c:\windows\system32\drivers\etc\hosts"

Windows2000 の場合

"c:\winnt\system32\drivers\etc\hosts"

WindowsMe 98 95 の場合

"c:\windows\hosts"

ただし、先頭の で示した部分はWindowsOSが インストール されたときに指定された デフォルト パス 名です。従って、WindowsOSをインストールしたときに別のパスを指定した場合には、この部分は異なってきます。

もしも "c:\windows" "c:\winnt" というディレクトリが見当たらないとき、あるいはhostsファイルを書き換えても設定が変わらないときは、この"Windowsのインストールパス"がデフォルトとは異なっているかもしれません。

このインストールパスは、WindowsOS上の 環境変数 "windir" として設定されていますから、うまく行かないときはその値を調べる必要があります。

そこでまずスタートメニューから ファイル名を指定して実行(R) を開き、 "cmd"(WindowsMe,98,95の場合は"command") とタイプしてから OK ボタンをクリックし、 コマンドプロンプト を開きます。もちろん、コマンドプロンプトはメニューから開いても構いません。

コマンドプロンプトを開く

コマンドプロンプトの画面が開いたら、

echo %windir% Enter

とタイプしてください。

環境変数windirを表示する
環境変数"windir"を表示する

このとき表示される文字列(この場合は"C:\WINDOWS")が環境変数"windir"の値、すなわち前に で示した部分になります。

DNSサーバーの構築に、
とても役に立った一冊です

またhostsファイルには拡張子を 付けてはいけません が、WindowsOSのほとんどは、 「登録されている拡張子は表示しない」 がデフォルトの表示設定になっています。

従って、自分では"hosts"を編集したつもりが、拡張子が表示されていないことに気付かずに"hosts.txt"を編集してしまい、設定がうまくいかない原因が解らずに悩んでしまうことがあります。

hostsファイルの編集に限らず、 サーバー の設定作業にWindowsOSを使う場合は、「登録されている拡張子は表示しない」になっていると何かと不都合がありますから、WindowsOSの "フォルダオプション" から、この設定を無効にしておきましょう。

WindowsOSのhostsファイルは、外部の DNSサーバー よりも先に参照されますから、 WBEL CentOS "/etc/host.conf" WBEL3のhost.confの設定 CentOS3のhost.confの設定 WBEL4のhost.confの設定 CentOS4のhost.confの設定 CentOS5のhost.confの設定 CentOS6のhost.confの設定 の設定に相当する作業は不要です。

hostsファイルの所在がわかったら、それを 「メモ帳」 「ワードパッド」 などで開いてください。OSの種類や使用環境で異なりますが、例えばWindowsXPの場合、hostsファイルは次のような内容になっているはずです。

WindowsOS用の アプリケーション の中には、hostsファイルに設定を書き込むものがありますから、必ずしも内容はこのとおりではありません。
既に書かれている内容については、アプリケーションが独自に参照して使用しますので、不用意に消さないようにしてください。
WindowsXPのデフォルトのhostsファイル
WindowsXPのデフォルトのhostsファイル

また、WindowsMe,98,95の場合は、所定の場所にhostsファイルが存在せず、代わりに "hosts.sam" というファイルが見つかることがあります。

これはhostsの設定のための説明文が書かれているだけの サンプルファイル ですから、これを同じディレクトリ内にコピーして名前を"hosts"に書き換えて使ってもかまいませんし、同じ場所に新規に"hosts"を作成してもかまいません。

書式は WBEL CentOS の場合と同じで WBEL3のhostsファイルの設定 CentOS3のhostsファイルの設定 WBEL4のhostsファイルの設定 CentOS4のhostsファイルの設定 CentOS5のhostsファイルの設定 CentOS6のhostsファイルの設定

IPアドレス   ホスト名 ( FQDN ) 改行

です。

行の先頭から最初のスペースまたはTABまでが IPアドレス と解釈されます。
また、改行コードまでが一つの設定とみなされますから、hostsファイルの最後の行は必ず改行で終わってください。

左側のパラメータである IPアドレス と、右側のパラメータである ホスト名 はスペースまたはTABで区切って、一つの設定を一行で記述します。ホスト名はスペースまたはTABで区切って複数指定することが可能です。

記述は何行でも可能です。

参照は必ず上の行から順に行われますが、名前解決ができたところで参照は終了し、それ以降の行の設定は無視されます。つまり、

192.168.100.11 web1.obenri.com←有効
192.168.100.13 web1.obenri.com←無効
192.168.100.13 web2.obenri.com←有効

のように異なる行に 同じFQDNの記述 を行った場合、下の行の設定は無効になる点に注意してください。

また "#" で始まる行はコメント行としてプログラムからは無視されますから、メモなどで適宜利用してください。

例えばこのファイルに

"192.168.100.11 web1.obenri.com"

と記述した場合には、

web1.obenri.com → 192.168.100.11

と名前解決されます。

そこで、例えば以下のように設定を追加します。

WindowsOS用hostsファイルの設定例1
WindowsOS用hostsファイルの設定例1

もちろん、次のように記述しても構いません。

WindowsOS用hostsファイルの設定例2
WindowsOS用hostsファイルの設定例2

hostsファイルの記述は、先頭に "#" を付けると無効にすることができますから、設定例2のように記述するとFQDNに対して個別に有効/無効が設定できますから、どちらかといえばこちらの記述方法をお勧めします。

記述が終わったらhostsファイルを保存してください。

hostsファイルの記述はhostsファイルが保存されるとすぐに反映されますから、設定後に再起動などの操作は不要です。

関連セクションへ 関連セクション・ 固定IPでDNSサーバー構築


このページの先頭へ↑

MacOSXのhostsファイルは設定不可

MacOSX の場合、システム上に WBEL CentOS と同じく "/etc/hosts" が存在しますが、これを同じように編集しても機能しません。

簡単操作がウリのはずの MacintoshOS ですが、どういう訳だかこのNetInfoマネージャだけは恐ろしくわかり難いツールです。

MacOSXで DNSサーバー より優先して 名前解決 される FQDN を設定するには、 "NetInfoマネージャ" というツールを使用して設定を行うか、予めhostsファイルを作成しておいて "ターミナル" から コマンド 入力でNetInfoのデータベースに登録するか、そのどちらかの方法で行いますが、ここでは後者の方法で説明します。

まず、 "テキストエディット" などで以下のような テキスト ファイルを、作業中のユーザーのホームディレクトリに作成します。

IPアドレス とFQDNの間は"TAB"で区切ります。
MacOSX用hostsファイル
MacOSX用hostsファイル

テキストファイルを保存したら、 "ターミナル" MacOSXのターミナルの開き方(WBEL3) MacOSXのターミナルの開き方(CentOS3) MacOSXのターミナルの開き方(WBEL4) MacOSXのターミナルの開き方(CentOS4) MacOSXのターミナルの開き方(CentOS5) MacOSXのターミナルの開き方(CentOS6) を開き、以下のようにコマンド入力します。

この作業はMacOSX独自のものですから、詳細は説明しません。呪文のようなものだと思ってください。
????:~????$ sudo niload hosts . < hosts.txtEnter
We trust you have recieved the usual lecture from the loacl System
Administrator. It usually boils down to these two things:

     #1) Respect the privacy of others.
     #2) Think before you type.

Password: 管理者のパスワードをタイプEnter
????:~????$ nidump hosts .Enter
  内容を確認します↑。
127.0.0.1    localhost
255.255.255.255 broadcasthost
192.168.100.11  obenri.com
192.168.100.11  web1.obenri.com
192.168.100.11  www.obenri.com
192.168.100.11  mail.obenri.com
????:~????$

"localhost" "broadcasthost" の記述は、 ループバックアドレス とそれに対する ブロードキャストアドレス デフォルト の名前解決の設定です。

一度設定した内容を修正するときは、元の "hosts.txt" を書き直してからもう一度上の作業を行います。

設定は直ぐに反映されますが注意点があります。

実はこの方法で修正できるのは FQDNに対するIPアドレスの値 だけです。例えばFQDNの名前を間違えて登録した場合や、設定そのものを削除したい場合は "NetInfoマネージャ" で行う必要があります。

NetInfoマネージャは、通常は起動ディスクの中の "アプリケーション"→"ユーティリティ" の中にありますから、これをダブルクリックして開きます。

NetInfoマネージャの初期画面
NetInfoマネージャの初期画面

次に、内容を修正可能な権限を得るために、鍵マークをクリックします。すると、ユーザー名とパスワードを入力する ダイアログ が開きますので、管理者ユーザーのユーザー名とパスワードを入力して OK ボタンをクリックします。

ユーザー認証のダイアログ
ユーザー認証のダイアログ

鍵マークが開いた形になって、内容の修正ができるようになったら、 "machines" をクリックします。

すると、対象となるFQDNが表示されますから、削除したいFQDNを選んで 削除 ボタンをクリックしてください。

FQDNの名前解決の設定を削除
FQDNの名前解決の設定を削除

これで、とりあえず hostsファイル の役割を担う設定はできましたが、実はMacOSXは、デフォルトではこの設定よりもDNSサーバーの参照のほうが優先されてしまいますから、WBELやCentOSの "/etc/host.conf" WBEL3のhost.confの設定 CentOS3のhost.confの設定 WBEL4のhost.confの設定 CentOS4のhost.confの設定 CentOS5のhost.confの設定 CentOS6のhost.confの設定 に相当する、参照順序の設定を行う必要があります。

これは、以下のようにコマンド入力で設定します。

これは、ホスト機の DNSキャッシュ 、hostsファイル、NetInfoの設定、外部のDNSサーバー、...という順序で参照する、という設定です。
また、この参照順序の設定を反映させるには再起動が必要です。
????:~????$ sudo nicl . create /locations/lookupd/hosts LookupOrder
CacheAgent FFAgent NIAgent DNSAgent NILAgent
Enter
Password: 管理者のパスワードをタイプEnter
????:~????$

MacOSXの場合はこのように操作が非常にわかり難いので、特に慎重に作業を行ってください。

関連セクションへ 関連セクション・ 固定IPでDNSサーバー構築


このページの先頭へ↑

OldMacはhostsファイルで設定

MacOS9 及びそれ以前の MacintoshOS は、 WindowsOS と同じように hostsファイル で設定を行います。また、 MacOSX と違って デフォルト でhostsファイルが DNSサーバー よりも先に参照されますから面倒がありません。

まず、任意の場所に(システムフォルダ内がいいと思います)、以下のようにhostsファイルを作成します(ファイル名は適当でかまいません)。

実は、このOldMacの記述法が、DNSサーバー アプリケーション である BIND の記述方法に一番近かったりします。
OldMacのhostsファイルの設定
OldMacのhostsファイルの設定

FQDN IPアドレス の間にある "A" 「アドレス」 で、「左の名前が指し示すのは右のアドレス」という意味を表します。

ちなみに、 ダイナミックDNS に登録した内容 ダイナミックDNSの登録内容(WBEL3) ダイナミックDNSの登録内容(CentOS3) ダイナミックDNSの登録内容(WBEL4) ダイナミックDNSの登録内容(CentOS4) ダイナミックDNSの登録内容(CentOS5) ダイナミックDNSの登録内容(CentOS6) は、 "www.obenri.com" "mail.obenri.com" はどちらも "web1.obenri.com" の別名ですから、もしその通りにhostsファイルを記述するならば、

OldMacのhostsファイルの別の記述法
OldMacのhostsファイルの別の記述法

となります。ここで使われている "CNAME" 「本名"canonical name"」 で、「左の名前の本当の名前は右の名前」という意味を表します。

もちろん、どちらの記述方法も結果的には同じ名前解決結果になりますからどちらでも構いません。

どちらにせよ、この程度の記述内容であれば、大した手間ではありませんが。

ただ、CNAMEによる記述法は、 WindowsOS のhostsファイル設定で「複数のFQDNを一行にまとめて指定する場合」と同じく、一度にまとめてIPアドレスを変更したい場合には便利ですが、個別にIPアドレスを変更したい場合には逆に手間がかかります。

ファイルを保存したら、次に コントロールパネル から TCP/IP を開き、 Hostsファイルの選択... をクリックします。

OldMacのTCP/IPコントロールパネル
OldMacのTCP/IPコントロールパネル

すると、ファイル選択の ダイアログ が表示されますから、先に保存したhostsファイルを選択して 開く ボタンをクリックしてください。

hostsファイル選択のダイアログ
hostsファイル選択のダイアログ

すると、読み込みを確認するダイアログが表示されますので OK ボタンをクリックしてください。

hostsファイル読み込み確認のダイアログ
hostsファイル読み込み確認のダイアログ

ただし、書式に間違いがある場合は警告が出されますので、その場合は キャンセル をクリックしてもう一度hostsファイルを見直してください。

最後にTCP/IPコントロールパネルを閉じるときに設定の保存を促すダイアログが表示されますが、ここで設定内容を保存すると設定が反映されるようになります。

設定内容の修正は、WindowsOSと同様に書き換えられたhostsファイルの内容に完全に置き換わりますのでMacOSXの場合のように面倒ではありません。

もしもすべてのhostsの設定を削除したい場合は、空白のテキストファイルをTCP/IPコントロールパネルから読み込ませてください。

関連セクションへ 関連セクション・ 固定IPでDNSサーバー構築


このページの先頭へ↑

動作の確認

まず、 構築中のLinuxサーバー Webサーバー アプリケーション Apache を起動してください。

[tanaka@web1 ~]$ su -Enter
Password: "root"のパスワードを入力します。 Enter
[root@web1 ~]# /etc/init.d/httpd startEnter
httpdを起動中:                    [ OK ]
[root@web1 ~]#

そして、設定を行った サブネット 内の任意の ホスト から、 構築中のLinuxサーバー プライベートIPアドレス を使って、

"http://192.168.100.11/"

にアクセスしてみてください。以下のようなのテストページが表示されれば、Webサーバーは正常に機能していることになります。

サブネット内から接続したApache2のテストページ
サブネット内から接続したApache2のテストページ

これと同じページが、

"http://www.obenri.com/"

で表示されれば hostsファイル の設定はOKです。

また、 バーチャルホスト の設定はまだ行っていませんから、同じページが

"http://web1.obenri.com/

"http://mail.obenri.com/

でも見ることができるはずです。

また、hostsの設定は他の クライアント アプリケーション でも同様に利用できますから、例えば SSHクライアント から 構築中のLinuxサーバー への接続 SSHクライアントでサーバーに接続する(WBEL3) SSHクライアントでサーバーに接続する(CentOS3) SSHクライアントでサーバーに接続する(WBEL4) SSHクライアントでサーバーに接続する(CentOS4) SSHクライアントでサーバーに接続する(CentOS5) SSHクライアントでサーバーに接続する(CentOS6)

IPアドレスでSSH接続
IPアドレスでSSH接続

のように IPアドレス ではなく、

FQDNでSSH接続
FQDNでSSH接続

のように FQDN でも接続できるようになります。

関連セクションへ 関連セクション・ 固定IPでDNSサーバー構築


このページの先頭へ↑

複数のドメイン名を利用する場合

"*.obenri.com" だけではなく、その他にも ドメイン名 を取得していて、 構築中のLinuxサーバー でそれらを使った FQDN を併用したいときでも基本的な考え方は同じです。

例えば 構築中のLinuxサーバー には、

127.0.0.1 localhost.localdomain localhost
192.168.100.11 web1.obenri.com web1 obenri.com www.obenri.com mail.obenri.com
192.168.100.11 www.ugegege.com mail.ugegege.com

のように記述し、 クライアント機 には WindowsOS の場合で、

WindowsOS用hostsファイルの設定例3
WindowsOS用hostsファイルの設定例3

のように記述していけばOKです。

ただ、このように複数のドメイン名を扱うようになると記述量が増え、設定をすべてのクライアント機に記述するのはかなり面倒な作業になってきます。

こういう状態になってきたらもう hostsファイル の利用に頼るのではなく LAN 内に DNSサーバー を設置して一元管理するほうがベターではないでしょうか。

関連セクションへ 関連セクション・ 固定IPでDNSサーバー構築


このサイトは リンクフリー です。趣味や勉強のためでしたら、引用、転用、コピー、朗読、その他OKです。このサイトへのリンクについては こちら をご覧ください。今のところ更新予定はありませんのでご了承ください。
”Linux”は、Linus Torvalds 氏の各国における登録商標です。”Red Hat”及びRed Hatのロゴおよび Red Hat をベースとしたすべての商標とロゴは、各国におけるRed Hat, Inc. 社の商標または登録商標です。その他のプログラム名、システム名、製品名などは各メーカー、ベンダの各国における登録商標又は商標です。