Windowsで「hosts」ファイルを編集する方法

「hosts」ファイルを使えば、DNSの設定をせずとも(DNSサーバーを用意しなくても)家庭内ネットワークのサーバーにホスト名でアクセスしたり、一時的にあるドメイン名とIPアドレスの関連付けを書き換えたり出来るので、各種テスト等では便利です。このページでは、Windowsで「hosts」ファイルを編集する方法を解説します。
  • 「hosts」ファイル編集でできるようになること
  • 下準備
  • いざ編集

「hosts」ファイル編集でできるようになること

Windowsでは、「hosts」ファイルの設定情報がDNSの情報を無視して適用されます。また、「hosts」ファイルでIPアドレスとホスト名(ドメイン名)の対応を設定すれば、ローカルネットワークでもDNSサーバーなしにホスト名による(IPアドレスを直打ちしない)自分以外のホストとの接続が可能になります。

これにより、以下の様なことが可能になります。

  • ローカルネットワークに立てたサーバーにホスト名(ドメイン名)で接続する
  • 上と関連して、ローカルネットワークで名前ベースバーチャルホストのテストを行う
  • 外部に公開しているWEBサイトのサーバーを移転する時、DNSの設定切り替えを行う前に新サーバーでWEBサイトが正常に表示されることを確認する
インターネットで稼働中のDNSの設定を弄らずに様々なことが出来るので、使い所は限られるかもしれませんが便利ではあります。

下準備

「hosts」ファイルは悪意ある第三者に悪用されるとろくでもないこと(例:サイト偽装)が起きるので、セキュリティソフトが書き換えを封じていることがあります。


これは私が使っている「Avira Free Antivirus」の画面ですが、きちんと「hosts」ファイルをガードしています。このような場合は、一時的に「hosts」ファイルの書き換え禁止を解除してください。編集が完了したら保護を再有効化するのがいいでしょう。

また、「hosts」ファイルを書き換える場合はテキストエディタを管理者権限で起動する必要があります。管理者権限があるユーザーでログインしている場合も、Windows Vista以降はUACがあるため、普通にテキストエディタを起動する場合は管理者権限を持たない場合が多いです。そのため、以下のような方法で任意のテキストエディタを管理者権限で起動してください。

右クリック→「管理者として実行」


管理者権限によるテキストエディタ起動をあまり行わない場合は、テキストエディタの本体を右クリック→「管理者権限で実行」を選択して起動するのが手軽です。

常に管理者権限で起動するショートカットを作成する


管理者権限によるテキストエディタ起動を頻繁に行う場合は、ショートカットを作成するのも一つの手です。まずは任意のテキストエディタのショートカットを作成してください。


ショートカットを作成したら、ショートカットを右クリックして「プロパティ」を選択します。


「互換性」タブで「管理者としてこのプログラムを実行する」のチェックボックスをオンにし、設定を保存してください。そうすれば、以後はこのショートカット一発で管理者権限があるテキストエディタが起動されます。

いざ編集

それでは「hosts」ファイルを編集しましょう。基本的に、「hosts」ファイルは以下の場所にあります。

各自任意のテキストエディタを管理者権限で起動し、上記のパスを参考にして「hosts」ファイルを開いてください。


無事に「hosts」ファイルを開くことが出来ました。書き方についてはこちらで解説していますが、一応ここでも解説します。

この例のように、1行につき1つのIPアドレス(IPv4/IPv6)を記述し、その後ろに1つ以上のホスト名を記述します。IPアドレスやホスト名は半角スペースで区切ってください。「#」で始まる行はコメントであり、設定には反映されません。ちなみに、WindowsXP以降はドメイン名(ホスト名を)1行につき8個までしか書けず、9個以上設定する場合は複数行で記述する必要があるので一応気をつけましょう。


私はこのように記述しました。テスト用に使用できるドメイン名についてはこちらで解説していますが、とりあえずトップレベルドメインを「.test」にしておけば、その後ろは好きな文字列を使えます。IPアドレスは接続先に割り当てられているものを使ってください。

設定を書き終わったら保存し、セキュリティソフトによる「hosts」ファイルのガードを解除していた場合は再有効化しましょう。

参考リンク

このブログを応援する・寄付する

当ブログでは暗号通貨による寄付を募っております。

Bitcoin:

Monacoin:

Litecoin: