hostsファイルとは?DNSとの違いや使い方を解説




はじめに

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サイトを一般公開する前の動作確認などに向いています。

※本記事の図解は生成AIを使用して作成しています。

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」と覚えておくと、それぞれの違いが理解しやすいでしょう。

コメント

タイトルとURLをコピーしました