はじめに
Webサイトやサーバーについて勉強していると、「hostsファイル」という言葉を目にすることがあります。
普段Webサイトへアクセスするときは、DNSによってドメイン名からIPアドレスを調べています。
しかし、hostsファイルを利用すると、DNSを使わずに特定のドメイン名とIPアドレスを紐付けることができます。
例えば、
「本番公開前のWebサイトを自分のPCだけで確認したい」
「DNSを変更する前に、新しいサーバーでWebサイトが正常に表示されるか確認したい」
といった場面で便利です。
この記事では、hostsファイルとは何なのか、DNSとの違いやWindows・Linuxでの使い方、利用する際の注意点について初心者向けに解説します。
hostsファイルとは?
hostsファイルとは、ホスト名やドメイン名とIPアドレスの対応関係を記述するファイルです。
例えば、hostsファイルに次のように記述したとします。
192.0.2.10 example.com
この設定を行ったPCから「example.com」へアクセスすると、指定した「192.0.2.10」というIPアドレスへ接続するようになります。
通常、ブラウザにドメインを入力するとDNSを利用してIPアドレスを調べます。
しかし、hostsファイルに対象のドメインが設定されている場合は、OSの名前解決の設定に従ってhostsファイルの情報が優先的に利用されるのが一般的です。
イメージとしては次のようになります。
通常の場合
example.com
↓
DNSへ問い合わせ
↓
IPアドレスを取得
↓
Webサーバーへ接続
hostsを設定した場合
example.com
↓
hostsファイル
↓
指定したIPアドレス
↓
Webサーバーへ接続
つまり、hostsファイルを利用すれば、DNSの設定を変更せずに接続先を変更できます。
DNSとの違い
hostsファイルとDNSは、どちらも「ドメイン名からIPアドレスを調べる」という点では似ています。
ただし、大きな違いがあります。
| 項目 | hostsファイル | DNS |
|---|---|---|
| 設定場所 | PC内 | DNSサーバー |
| 影響範囲 | 設定した端末 | DNSを参照する利用者 |
| 設定方法 | ファイルを編集 | DNSレコードを設定 |
| 主な用途 | 開発・テスト | 一般公開 |
例えば、Webサイトのサーバーを移行するとします。
DNSを変更すると、そのDNS情報を利用するユーザーの接続先も新しいサーバーへ切り替わっていきます。
一方、hostsファイルを変更しても影響するのは基本的にその設定を行ったPCだけです。
そのため、Webサイトを一般公開する前の動作確認などに向いています。

hostsファイルはどんなときに使う?
hostsファイルはWeb制作やサーバー移行などでよく利用されます。
特に便利なのが、DNS切り替え前の動作確認です。
例えば、現在次のサーバーでWebサイトを公開しているとします。
example.com
↓
旧サーバー
203.0.113.10
新しいサーバーへ移行するとき、いきなりDNSを変更してしまうと、不具合があった場合に実際のユーザーにも影響してしまいます。
そこで、自分のPCのhostsファイルだけを変更します。
203.0.113.20 example.com
すると、
一般ユーザー
example.com
↓
旧サーバー
自分のPC
example.com
↓
新サーバー
という状態を作ることができます。
本番のDNS設定を変更することなく、新しいサーバーでWebサイトが正常に表示されるか確認できるわけです。
WordPressなどのWebサイトを別サーバーへ移行するときにも便利な方法です。
Windowsのhostsファイルの場所
Windowsでは、hostsファイルは通常次の場所にあります。
C:\Windows\System32\drivers\etc\hosts
hostsファイルを編集するには管理者権限が必要です。
メモ帳などのテキストエディタを「管理者として実行」してhostsファイルを開きます。
例えば次のように追記します。
192.0.2.10 example.com
www付きのURLでも確認する場合は、それぞれ指定しておくと分かりやすいです。
192.0.2.10 example.com
192.0.2.10 www.example.com
保存後、ブラウザから対象のドメインへアクセスして確認します。
Linuxのhostsファイルの場所
Linuxでは、hostsファイルは次の場所にあります。
/etc/hosts
内容を確認する場合は、次のコマンドを利用できます。
cat /etc/hosts
編集する場合は管理者権限が必要になるため、例えばnanoを利用する場合は次のように実行します。
sudo nano /etc/hosts
Windowsと同じように、
192.0.2.10 example.com
の形式でIPアドレスとドメイン名を記述します。
hostsファイルを編集するときの注意点
hostsファイルは便利ですが、利用する際にはいくつか注意が必要です。
設定を戻し忘れない
特に注意したいのが、動作確認後の削除忘れです。
hostsファイルに設定が残っていると、DNSを変更した後も自分のPCだけ古い設定やテスト用サーバーへ接続し続ける可能性があります。
「他の人は新しいサイトが表示されているのに、自分だけ表示が違う」
というトラブルの原因にもなります。
テストが終わったら、追加した記述を削除するか、先頭に「#」を付けてコメントアウトしておきましょう。
# 192.0.2.10 example.com
DNSの変更ではない
hostsファイルを変更しても、インターネット上のDNS情報が書き換わるわけではありません。
あくまで設定した端末内での名前解決を変更するものです。
Webサイトを正式に新しいサーバーへ切り替える場合は、最終的にDNS側のAレコードなどを変更する必要があります。
キャッシュが残る場合がある
hostsファイルを変更しても、OSやブラウザなどに名前解決のキャッシュが残っていると、すぐに接続先が変わらない場合があります。
その場合はDNSキャッシュのクリアやブラウザの再起動などを試してみましょう。
まとめ
hostsファイルとは、IPアドレスとドメイン名の対応関係をPC内で設定できるファイルです。
通常はDNSによって、
ドメイン
↓
DNS
↓
IPアドレス
という流れで接続先を調べます。
一方、hostsファイルを利用すると、
ドメイン
↓
hostsファイル
↓
指定したIPアドレス
という形で、特定の接続先を指定できます。
特にWebサイトのサーバー移行では、DNSを切り替える前に新しいサーバーを確認できるため便利です。
ただし、hostsファイルの変更は設定した端末にしか影響しません。
「一時的な動作確認はhostsファイル」「実際の接続先変更はDNS」と覚えておくと、それぞれの違いが理解しやすいでしょう。



コメント