hostsファイルの場所と書き方|Windows11・Mac対応の編集手順

カフェでノマドしながら記事を書くライター

サーバーを移転するとき、必ず発生するのがネームサーバー(DNS)の切り替え作業です。ところがDNSは設定してもすぐには反映されず、世界中に浸透するまでに数時間〜2日ほどかかります。その間、ブラウザでサイトを開いても新旧どちらのサーバーにつながっているのか分からず、新サーバーで正しく表示されるかを確認できません。私自身、移転のたびにここでやきもきしてきました。

そこで頼りになるのが、お使いのパソコンのhostsファイルです。hostsを編集すれば、DNSが切り替わる前でも、自分のパソコンだけを新サーバーに向けて表示確認ができます。

この記事では、hostsファイルの場所と書き方を、Windows 11・10とmacOSの両方に対応して、編集手順・反映されないときの対処・確認方法・終わったあとの戻し方まで、実際の作業手順に沿って解説します。

hostsファイルとは

hostsファイルとは、OSに標準で備わっているシステムファイルのひとつで、IPアドレスとドメイン名の対応表です。パソコンはドメイン名にアクセスするとき、通常はDNSサーバーに「このドメインのIPアドレスは?」と問い合わせますが、その前にこのhostsファイルを参照します

つまりhostsに「このドメインはこのIP」と書いておけば、DNSの設定よりも優先して、そのパソコンだけを指定したサーバーへ接続させられます。これがサーバー移転前の動作確認にhostsが使える理由です。逆に、ローカルで立ち上げた開発環境にドメイン名でアクセスしたいとき、特定サイトへの接続を一時的にブロックしたいときなど、用途は意外と広いです。

hostsファイルの場所

OSごとのhostsファイルの場所は次の通りです。現在主流のWindows 11・10とmacOSは押さえておけば十分です。

OS hostsファイルの場所
Windows 11 / 10 / 8 / 7 C:\Windows\System32\drivers\etc\hosts
macOS /etc/hosts
Linux /etc/hosts

Windowsのパスは、拡張子のない hosts というファイルが本体です(hosts.txt ではありません)。エクスプローラーのアドレスバーに C:\Windows\System32\drivers\etc と貼り付ければ、フォルダまで一気に開けます。

hostsファイルの編集手順(Windows 11・10)

Windowsのhostsはシステムフォルダ(System32)の中にあるため、ふつうに開いても保存できません。ここが最初のつまずきポイントです。必ずテキストエディタを「管理者として実行」してから開いてください。

  • スタートメニューで「メモ帳」と検索し、右クリック →「管理者として実行」を選ぶ
  • メモ帳の「ファイル → 開く」で C:\Windows\System32\drivers\etc へ移動する
  • 右下のファイル種別を「すべてのファイル」に変更すると hosts が表示されるので、これを開く
  • 後述の書き方に従って一行追記し、上書き保存する

メモ帳が苦手なら、Visual Studio Codeなどのエディタを管理者として起動して開いても構いません。いずれにせよ「管理者として実行」が保存できるかどうかの分かれ目です。編集前に元のhostsをコピーしてバックアップを取っておくと、戻すときに安心です。

出典: Microsoft Q&A「host file」

hostsファイルの編集手順(macOS)

Macではターミナルから編集するのが確実です。「アプリケーション → ユーティリティ → ターミナル」を開き、次のコマンドを実行します。

sudo nano /etc/hosts

Macのログインパスワードを入力するとエディタ(nano)が開きます。末尾に一行追記したら、Control + O で保存、Control + X で終了します。sudo はシステムファイルを書き換えるための管理者権限で、これがないと保存できません。

hostsファイルの書き方

書き方はOS共通で、ファイルの最下部に「IPアドレス + 半角スペース + ドメイン名」を一行で追記するだけです。

203.0.113.10    www.webernote.net
203.0.113.10    webernote.net

サーバー移転の動作確認では、ここに書くIPは新しいサーバーのIPアドレスです。これでDNSがまだ旧サーバーを指していても、自分のパソコンだけは新サーバーに接続して表示を確認できます。wwwあり・なしの両方でアクセスする可能性があるなら、上の例のように2行書いておくと確実です。区切りは半角スペースのほかタブでもかまいません。

変更が反映されないときは(DNSキャッシュのクリア)

hostsを編集しても、パソコンが古い接続先を記憶(DNSキャッシュ)していて反映されないことがあります。その場合は次のコマンドでキャッシュをクリアします。

Windows

コマンドプロンプトを「管理者として実行」して、次を実行します。

ipconfig /flushdns

macOS

ターミナルで次の2行を実行します。最近のmacOS(Sonoma/Sequoia含む)では、この2つをセットで実行するのが定番です。

sudo dscacheutil -flushcache
sudo killall -HUP mDNSResponder

それでも変わらないときは、ブラウザ自身のキャッシュが原因のこともあります。シークレットウィンドウ(プライベートウィンドウ)で開く、またはブラウザを再起動して確認してください。hostsの編集自体は、パソコンの再起動なしで反映されます。

出典: OS X Daily「How to Flush DNS Cache on macOS Sequoia & Sonoma」

新サーバーにつながっているか確認する方法

hostsが効いているかは、コマンドで接続先IPを確認するのが確実です。Windowsはコマンドプロンプト、Macはターミナルで次を実行します。

ping www.webernote.net

表示されるIPアドレスが、hostsに書いた新サーバーのIPになっていれば成功です。あとはブラウザで実際にサイトを開き、表示崩れ・リンク切れ・画像の欠けなどがないかを確認します。WordPressの移転なら、トップページだけでなく投稿ページや管理画面のログインまで一通り触っておくと安心です。

移転をスムーズに進めるコツ(TTLの事前調整)

hostsでの確認とあわせて覚えておくと役立つのが、DNSレコードのTTL(キャッシュ保持時間)を移転前に下げておく方法です。TTLは「このレコードを何秒キャッシュしてよいか」を示す値で、初期値が24時間(86400秒)などになっていると、切り替え後もしばらく旧サーバーを見続ける人が出ます。

移転の1〜2日前にAレコードのTTLを300秒(5分)程度まで下げ、元のTTLが過ぎるのを待ってから切り替えると、浸透にかかる時間を大幅に短縮できます。hostsが「自分の確認用」なら、TTL調整は「世界中への反映を速くする」打ち手です。

確認が終わったら必ず元に戻す

動作確認が終わったら、追記した行は必ず削除(またはコメントアウト)して元に戻してください。消し忘れると、DNSが切り替わったあともそのパソコンだけが古いIPを見続け、「自分の環境でだけ表示がおかしい」という、原因の分かりにくいトラブルにつながります。

すぐ消したくない場合は、行頭に # を付けるとコメントアウト(一時的に無効化)できます。

# 203.0.113.10    www.webernote.net

編集時の注意点・よくあるミス

  • IPアドレスとドメインの区切りは半角スペース(またはタブ)。全角スペースだと効きません。
  • Windowsで保存できないときは、エディタを「管理者として実行」できているかを確認。
  • セキュリティソフトがhostsの改変をブロックする場合があります。保存できないときは設定を一時的に見直しを。
  • 確認後の戻し忘れが最も多いミス。作業はバックアップとセットで。

まとめ

hostsファイルを使えば、DNSが浸透する前でも自分のパソコンだけを新サーバーに向けて、サーバー移転の動作確認ができます。手順は「管理者権限で開く → IPとドメインを一行追記 → 必要ならDNSキャッシュをクリア → pingとブラウザで確認 → 元に戻す」の流れです。場所はWindowsが C:\Windows\System32\drivers\etc\hosts、Macが /etc/hosts と覚えておけば迷いません。

移転トラブルの多くは、切り替え後に初めて問題に気づくことで起こります。hostsでの事前確認を習慣にしておけば、こうした事故の大半は未然に防げます。サーバー移転を予定しているなら、あわせてレンタルサーバー移転とホスティングの選び方や、WordPress専用サーバーへの移転検証も参考にしてみてください。事前準備をしっかりしておくほど、当日の作業は落ち着いて進められます。