サーバーを移転するとき、必ず発生するのがネームサーバー(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をコピーしてバックアップを取っておくと、戻すときに安心です。
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専用サーバーへの移転検証も参考にしてみてください。事前準備をしっかりしておくほど、当日の作業は落ち着いて進められます。