hostsファイルはシンプルな構造を持つテキストファイルですが、記述方法を正しく理解していないと意図した動作をしてくれません。
IPアドレスとホスト名の並べ方、コメントアウトの使い方、複数ホスト名の指定方法など、基本的なルールを押さえることが重要です。
本記事では、hostsファイルの正しい書き方・記述方法と具体的な設定例を詳しく解説していきます。
「どう書けばいいかわからない」「書き換えても反映されない」という方も、この記事を読めば基礎から理解できるようになるでしょう。
hostsファイルの基本的な書き方と構文ルール
それではまず、hostsファイルの基本的な書き方と構文ルールについて解説していきます。
hostsファイルは非常にシンプルな書式で記述されており、1行に「IPアドレス+スペース(またはタブ)+ホスト名」という形式で記述します。
この基本構文さえ押さえておけば、hostsファイルの編集はそれほど難しくありません。
【hostsファイルの基本構文】
(IPアドレス) (ホスト名)
127.0.0.1 localhost
192.168.1.100 myserver.local
0.0.0.0 block.example.com
IPアドレスとホスト名の間はスペース1つ以上、またはタブ文字で区切ります。
見やすさのために複数のスペースやタブを使って整列させても、正しく動作します。
ファイルは基本的にASCII文字またはUTF-8(BOMなし)で保存する必要があり、文字コードのミスが動作不良の原因になることがあります。
| 要素 | 記述方法 | 注意点 |
|---|---|---|
| IPアドレス | IPv4またはIPv6形式で記述 | 行の先頭に記述すること |
| 区切り文字 | スペースまたはタブ | 1つ以上あればOK |
| ホスト名 | ドメイン名またはホスト名 | 大文字小文字は区別しない |
| コメント | #以降の文字はすべてコメント | 行頭でも行末でも使用可能 |
| 複数ホスト名 | スペース区切りで同一行に複数記述可能 | エイリアスとして機能する |
コメントアウトの書き方と使い方
hostsファイルでは「#」(シャープ)を使ってコメントを記述できます。
「#」以降の文字はすべてコメントとして扱われ、ネームリゾリューションの処理には影響しません。
コメントアウトは「一時的に設定を無効にしたいが、記述内容は残しておきたい」というときに非常に便利な機能です。
設定の説明や変更履歴をコメントとして記録しておくことで、後から見直したときに内容を把握しやすくなります。
特に複数人でサーバー管理を行っている場合は、コメントで「誰が・いつ・なぜ」設定を変更したかを残しておくとトラブルの予防になるでしょう。
複数ホスト名を1行に記述する方法
hostsファイルでは、1つのIPアドレスに対して複数のホスト名を1行で指定できます。
記述方法は、IPアドレスの後ろにスペースで区切りながらホスト名を並べるだけです。
【複数ホスト名の記述例】
192.168.1.10 myserver.local myserver www.myserver.local
↑この場合、3つのホスト名がすべて同じIPアドレス(192.168.1.10)に解決される
この記述方法を使うことで、1台のサーバーに対して複数のドメインやホスト名でアクセスできるように設定できます。
開発環境で複数のサブドメインを1つのローカルサーバーで処理したい場合などに役立つ記述方法です。
IPv6アドレスの記述方法
hostsファイルはIPv4だけでなくIPv6にも対応しており、IPv6形式のアドレスも記述できます。
IPv6の場合は「::1 localhost」のように、コロン区切りのIPv6アドレス形式で記述します。
localhostをIPv6でも正しく動作させるには、IPv4の「127.0.0.1 localhost」とIPv6の「::1 localhost」の両方を記述しておくことが推奨されます。
IPv6環境ではIPv6が優先されることがあるため、両方記述することで環境に依存しない安定した動作が期待できるでしょう。
hostsファイルの具体的な設定例
続いては、実際の用途別にhostsファイルの具体的な設定例を確認していきます。
書き方のルールを理解したら、実際にどんな設定を記述するのかを例で把握しておくことが大切です。
開発環境でのhostsファイル設定例
Web開発でよく使われるhostsファイルの設定例を見てみましょう。
【開発環境向けhostsファイル設定例】
# 開発用ローカルサーバーの設定
127.0.0.1 dev.example.com
127.0.0.1 staging.example.com
192.168.1.50 api.example.com
このように設定することで、「dev.example.com」や「staging.example.com」といった本番環境と同じドメイン名でローカルサーバーへアクセスできます。
開発中のWebアプリケーションを本番環境と同じURL構成でテストするのに非常に便利な設定です。
本番のDNS設定には影響を与えず、自分のPCだけで動作確認できる点が大きなメリットといえるでしょう。
アクセスブロック用のhostsファイル設定例
特定のWebサイトやドメインへのアクセスをブロックしたい場合は、接続先IPアドレスを「0.0.0.0」または「127.0.0.1」に設定します。
【アクセスブロック用の設定例】
# アクセスをブロックするサイト
0.0.0.0 ads.example.com
0.0.0.0 tracker.example.com
127.0.0.1 block.example.com
「0.0.0.0」を指定した場合は接続先が存在しないアドレスとして扱われ、「127.0.0.1」を指定した場合は自分自身のPCにアクセスしようとしてエラーになります。
どちらも実質的なアクセスブロックの効果がありますが、「0.0.0.0」の方が接続試行を即座に終了させるため、若干パフォーマンスが良いとされています。
hostsファイルの書き換え後に設定を反映する方法
hostsファイルを編集・保存しても、すぐに変更が反映されない場合があります。
これはDNSキャッシュが残っているためで、キャッシュをクリアすることで変更を即座に反映させられます。
【DNSキャッシュクリアのコマンド例】
Windows:ipconfig /flushdns(コマンドプロンプトを管理者として実行)
Mac:sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder
Linux:sudo systemd-resolve –flush-caches(systemd使用環境)
DNSキャッシュをクリアした後は、ブラウザのキャッシュも念のためクリアしておくと確実です。
pingコマンドで目的のホスト名に対してIPアドレスが正しく解決されているか確認することも、設定が反映されたかどうかを確かめる有効な方法でしょう。
hostsファイルの記述でよくある間違いと対策
続いては、hostsファイルの記述においてよくある間違いとその対策を確認していきます。
正しい構文で記述しているつもりでも、些細なミスが原因で正しく動作しないことは珍しくありません。
行末の余分なスペースや文字に注意
hostsファイルの記述でよくあるミスの一つが、行末に余分なスペースや不可視文字が混入することです。
特にコピー&ペーストで内容を貼り付けた場合、元のテキストに含まれていた空白文字が意図せず混入することがあります。
このような場合、目視では確認しにくいため、設定を記述した後はpingコマンドで動作確認を行うことが重要です。
テキストエディタによっては「すべての文字を表示する」オプションで不可視文字を確認できるため、活用すると良いでしょう。
ファイルの文字コードと改行コードの設定
hostsファイルはUTF-8(BOMなし)またはASCIIで保存する必要があります。
WindowsのメモアプリはデフォルトでUTF-8(BOM付き)で保存する場合があり、BOM(バイトオーダーマーク)が先頭に入るとhostsファイルが正しく読み込まれないことがあります。
保存時に文字コードを選択できるエディタを使用し、「UTF-8(BOMなし)」を選択して保存することをおすすめします。
また、Windowsの改行コードはCRLF、Unix系はLFですが、hostsファイルはどちらの改行コードでも動作するケースが多いため、通常は問題になりません。
hostsファイルの変更が反映されない場合のチェックリスト
hostsファイルを書き換えても反映されない場合は、以下の点を順に確認しましょう。
【hostsファイル設定が反映されない場合のチェックポイント】
①ファイルが正しいパスに保存されているか確認する
②管理者権限でファイルを保存できているか確認する
③DNSキャッシュをクリアしたか確認する
④ブラウザのキャッシュをクリアしたか確認する
⑤記述に構文エラー(余分なスペース・文字コードの問題)がないか確認する
これらを順番に確認していくことで、多くの場合は原因を特定して解決できます。
それでも解決しない場合は、セキュリティソフトウェアがhostsファイルの変更をブロックしている可能性もあるため、一時的に無効化して確認してみる価値があるでしょう。
まとめ
本記事では、hostsファイルの書き方・記述方法として基本構文、コメントアウトの使い方、複数ホスト名の記述、設定例、よくある間違いとその対策について詳しく解説してきました。
hostsファイルは「IPアドレス ホスト名」というシンプルな書式で記述でき、コメントアウトや複数ホスト名指定など柔軟な設定が可能です。
設定を変更した後はDNSキャッシュのクリアを忘れずに行うことで、変更を確実に反映させられます。
文字コードや行末スペースなどの些細なミスが動作不良につながることがあるため、記述後は必ずpingコマンドなどで動作確認する習慣をつけましょう。
正しい書き方をマスターすれば、hostsファイルは開発・検証・アクセス制御において強力なツールとなります。
ぜひ本記事を参考に、hostsファイルの記述を実践してみてください。