hostsファイルの編集方法(Windows・Mac・Linux)

順番にステップを確認しながら、安全にhostsファイルを編集しましょう。

  1. hostsファイルの役割を理解する

    hostsファイルは、ドメイン名をIPアドレスに直接対応させるテキストファイルで、DNSサーバーに問い合わせる前にOSが最初に確認する場所です。ここに項目を追加すると、特定のドメインへのアクセス時にDNS照会を省略して指定したIPへ直接接続でき、ローカル開発環境の構築や特定サイトのブロックなどに活用できます。

  2. OSごとのhostsファイルの場所を確認する

    Windowsでは「C:\Windows\System32\drivers\etc\hosts」に、MacとLinuxでは「/etc/hosts」にあります。拡張子のない純粋なテキストファイルなので、メモ帳やターミナルのエディタで直接開いて編集できます。

  3. 管理者権限でエディタを開く

    hostsファイルはシステム保護ファイルのため、通常の権限では保存できません。Windowsではメモ帳を「管理者として実行」してから開く必要があり、Mac・Linuxではターミナルで「sudo nano /etc/hosts」のように管理者権限のコマンドで開かないと保存まで正常に完了しません。

  4. 書式に従って項目を追加する

    1行につき「IPアドレス [空白] ドメイン名」の形式で記述します。例えば「127.0.0.1 myproject.local」と入力すると、myproject.localへのアクセス時に自分のパソコン自身(127.0.0.1)に接続されます。行頭に「#」を付けるとその行はコメント扱いとなり適用されないので、元からある基本項目を誤って削除しないよう注意してください。

  5. 保存後に反映を確認する

    ファイルを保存したら、ブラウザで該当のドメインにアクセスし、指定したIPに接続されるか確認します。ブラウザやOSが以前のDNS結果をキャッシュしている場合があるため、すぐに反映されないときはブラウザを再起動するか、DNSキャッシュを削除してから再度試してみてください。

  6. 活用例1: ローカル開発用ドメインのマッピング

    開発中のウェブサイトを実際のドメイン名に近いアドレスでローカルにテストしたい場合、「127.0.0.1 myapp.test」のように登録しておくと、ブラウザのアドレスバーに実サービスに近い名前を入力してローカルサーバーへ接続できます。

  7. 活用例2: 特定サイトへのアクセスをブロックする

    ブロックしたいドメインを「0.0.0.0 ドメイン名」や「127.0.0.1 ドメイン名」として登録しておくと、そのサイトへの接続を失敗させることができます。広告配信ドメインを大量に登録して広告を減らす方法としても使われますが、項目が増えると管理が煩雑になるため、専用の広告ブロックツールと併用されることが多いです。

  8. 注意点:マルウェアによるhostsファイル改ざん

    一部のマルウェアは、銀行やポータルサイトのドメインを偽のIPに接続させるようhostsファイルをひそかに改ざんし、フィッシングに悪用します。特定のサイトだけ異常な挙動をしたり、セキュリティ警告が表示されたりする場合は、まずhostsファイルに見慣れない項目が追加されていないか確認してみるとよいでしょう。

  9. OSごとのDNSキャッシュの消し方

    Windowsではコマンドプロンプトで「ipconfig /flushdns」を実行します。macOSでは「sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder」がよく使われますが、バージョンによって異なる場合があります。Linuxでsystemd-resolvedを使っている場合は「resolvectl flush-caches」で消去でき、ローカルキャッシュのないディストリビューションでは操作自体が不要です。ブラウザも短時間のキャッシュを持つので、完全に閉じ直すのも確実な手段です。

  10. 確認には適切なツールを使う

    「ping myproject.local」を実行すると、OSの名前解決を経由するため、hostsファイルに書いたIPに解決されるかを確認できます。一方、「nslookup」や「dig」はDNSサーバーに直接問い合わせるため、既定ではhostsファイルを見ません。公開レコードが表示されるので「編集が効いていない」と誤解しがちです。どのツールがhostsを読むかを知っておけば、無駄な心配を避けられます。

  11. IPv4とIPv6の両方を書く場合

    対象サイトにIPv6アドレスもあると、IPv4の行だけを編集していても、IPv6経由で接続されることがあります。完全にブロックやリダイレクトしたい場合は、IPv6アドレスを使った行も追加します。たとえば自分のPCを指す場合は「::1 ドメイン名」のようにします。初期状態でlocalhostの行がIPv4とIPv6の両方で書かれているので、これは残しておきましょう。

  12. 1行に複数名を書く方法と、hostsにできないこと

    同じIPの後ろに、スペースで区切って複数のホスト名を並べられます。例:「127.0.0.1 app.test api.test」。ただし、hostsファイルは「*.example.com」のようなワイルドカードに対応しておらず、サブドメインごとに1行必要です。また、名前をIPアドレスにしか対応させず、ポート番号は指定できないため、ポート3000のローカルサイトは「http://app.test:3000」のようにアクセスします。ワイルドカードやポート別の振り分けが必要なら、ローカルDNSツールやリバースプロキシが向いています。

  13. バックアップとコメントを残す

    最初に編集する前に、元のファイルを「hosts.bak」などの名前でコピーしておきます。追加する行の上には「#」で始まるコメントを書き、用途と日付を残しましょう。何人もの人やツールが長年編集してきたファイルは、こうしたメモがないと整理が難しくなります。

hostsファイル編集でよくあるミス

最も多いのは、管理者権限でエディタを開かずに保存しようとして失敗するケースです。エディタによっては保存自体が静かに失敗したり、権限エラーが表示されたりするので、まずは管理者権限で起動できているか確認しましょう。もう一つよくあるミスは、既存の行に誤字や余分なドメインを混ぜてしまい、意図しないサイトが遮断・リダイレクトされてしまうことです。追加した行だけでなく、ファイル全体を見直すことをおすすめします。IPアドレスとドメイン名の順番を逆に書くと、その行は無視されます。

変更を元に戻す方法

追加した項目が予期せぬ問題を引き起こした場合は、その行だけを削除するか、多くのシステムで標準的なhostsファイルの内容(ループバックやlocalhostの数行)に戻して保存すれば元通りになります。最初に編集する前に元のファイルのバックアップを取っておくと、何か問題が起きたときにすぐ元に戻せて安心です。

hostsファイルが向かない場面

hostsファイルが効くのは編集したそのパソコンだけです。家庭内のすべての機器で同じ挙動にしたい場合は、ローカルDNSレコードを持つルーターや、ネットワーク全体のDNSフィルターのほうが適しています。項目が数十を超えると管理も難しくなります。一方、サーバー移転後の動作確認には便利で、本番ドメインを新サーバーのIPに自分のPCだけで向け、確認してから行を削除します。確認後は必ず削除しましょう。古い行が残っていると、将来停止するサーバーに知らないうちにつながり続けます。

セキュリティ上の注意

このファイルはDNSより優先されるため、編集できる人は通信の行き先をこっそり変えられます。標準の権限を維持し、出所不明のスクリプトを管理者権限で実行しないようにし、出所不明のサイトにある長い項目リストをそのまま貼り付ける手順にも注意しましょう。OSやセキュリティソフトによっては、ファイルの変更を知らせる機能があり、自分で変更していない場合の手がかりになります。

よくある質問

hostsファイルを編集しても反映されないのはなぜですか?

最も多い原因は、管理者権限(またはroot権限)でエディタを開かずに保存しようとして失敗しているケースです。また、ブラウザやOSが変更前のDNS結果をキャッシュしたままになっていないかも確認してください。ブラウザの再起動やDNSキャッシュのクリアで解決することが多いです。

hostsファイルで広告をブロックするのは安全ですか?

広く使われている一般的な手法ではありますが、広告ドメインの項目を手動で大量に管理するのは時間が経つにつれて面倒になり、同じドメインを共有する無関係なサービスまで動かなくなることもあります。本格的に広告をブロックしたい場合は、専用の広告ブロック拡張機能やDNSベースのブロッカーの方が管理しやすいでしょう。

hostsファイルを編集したらパソコンを再起動する必要がありますか?

通常は不要です。変更は次回の名前解決から読み込まれるので、ブラウザを閉じ直してDNSキャッシュを消せば十分なことがほとんどです。

スマートフォンでもhostsファイルは使えますか?

一般的な方法では使えません。スマートフォンではシステムファイルが既定で保護されており、編集にはルート化や脱獄が必要で、セキュリティ上の危険が伴います。DNSベースのブロックアプリやローカルのDNS設定のほうが安全です。

ブロックしたのにサイトが開いてしまうのはなぜですか?

DNSキャッシュ、同じサイトの別のIPv6アドレス、ブラウザ独自のセキュアDNS設定、ドメイン名の誤字を確認してください。ファイルを開き直して、保存できているかも確かめましょう。