Windows 10 で特定の名前解決だけを一時的に固定したい場合、hosts ファイルを編集することがあります。
DNS を変更せずに検証用サーバーへ向けたい時、移行前の Web サイトを確認したい時、名前解決の切り分けをしたい時には便利です。ただし、hosts は OS 側の名前解決に直接影響するため、戻し忘れると後から原因が分かりにくくなります。
hosts ファイルの場所
Windows 10 の hosts ファイルは、次の場所にあります。
C:\Windows\System32\drivers\etc\hosts拡張子はありません。通常のテキストファイルですが、システム領域にあるため、そのまま保存するには管理者権限が必要です。
管理者権限で編集する
編集する場合は、メモ帳やエディタを管理者として起動し、その上で hosts ファイルを開きます。PowerShell を管理者として開いて、次のように起動してもよいです。
notepad C:\Windows\System32\drivers\etc\hosts以前のメモでは、一度デスクトップにコピーして編集し、元の場所へ上書きする方法を書いていました。これでも対応できますが、現在は管理者権限でエディタを起動して直接開く方が分かりやすいです。
hosts の書き方
hosts では、IP アドレスとホスト名を 1 行に書きます。先頭が # の行はコメントです。
# 例: 検証用サーバーを一時的に固定する
192.168.10.50 test.example.local
# IPv6 を指定する場合
fd00::1050 test-v6.example.local検証用途で使う場合は、何のために追加した行なのかをコメントで残しておくと、後から見た時に戻しやすくなります。
DNS より hosts が優先される
hosts に書いた名前解決は、通常の DNS より優先されます。そのため、DNS 側では別の IP アドレスを返していても、Windows 上では hosts の内容が使われます。
これは検証には便利ですが、運用環境では注意が必要です。hosts に古い設定が残っていると、DNS を正しく直しても、その端末だけ古い接続先を見続けることがあります。
反映を確認する
変更後は、名前解決と通信を確認します。
ping test.example.local
nslookup test.example.local
ipconfig /flushdnsping は Windows の名前解決結果を使って疎通確認を行います。一方、nslookup は DNS サーバーへの問い合わせ結果を見るため、hosts の内容とは一致しないことがあります。
この違いは重要です。hosts の確認では、nslookup だけを見て判断しない方がよいです。
検証後は戻す
hosts は便利ですが、恒久的な名前解決の管理場所として使うものではありません。検証や一時的な切り分けで使った後は、不要な行をコメントアウトするか削除します。
複数端末で同じ名前解決を管理したい場合は、端末ごとの hosts ではなく DNS 側で管理する方が自然です。hosts は、あくまで端末単位の上書き設定として扱うのがよいです。
参考書籍
Windows / DNS / 名前解決関連書籍
Windows の名前解決、DNS、hosts ファイルの扱いを確認したい場合の参考リンクです。価格や在庫はリンク先で確認してください。
Amazon で見るこのリンクは Amazon アソシエイトリンクです。

