Windows, Mac, Linux どれのOSであっても、hosts
というファイルを持っています(このファイル名に拡張子はありません)。
役割
DNS というシステム
あるコンピュータ上で foo.example.com
というサーバーにアクセスしたとしましょう。
具体的には、
- ウェブブラウザで、URLに
http://foo.example.com
と指定してアクセスする。 - FTPクライアントソフトウェアの設定で、ホスト欄に
foo.example.com
をセットして利用する。
などいろいろな場合があります。
コンピュータが foo.example.com
にアクセスする際には、まず foo.example.com
というコンピュータに割り当てられている「IPアドレス」を取得しようとします。コンピュータが別のコンピュータにアクセスする場合、実際は「サーバー名(ホスト名)」ではなく「IPアドレス」でしかアクセスできないのです。
そこで、DNS というシステムが利用されます。これは、「サーバー名」に対応する「IPアドレス」を取得することができるシステムで、インターネットの基盤技術の1つです。DNS 自身もインターネット上で24時間動いており、いつでも利用することができます。
例えば、相手のコンピュータが foo.example.com
という名前である場合、だいたい以下のようにして対応するIPアドレスを取得することになります。
- 最上位のドメインである
com
のネームサーバーに、example.com
のネームサーバー(のIPアドレス)を尋ねる。- この際、
com
のネームサーバーのIPアドレスを知っている必要がありますが、これは固定されており、どこかに別途問い合わせる必要がありません。
- この際、
- 1 で得たIPアドレス(
example.com
のネームサーバー)に、foo.example.com
というサーバーのIPアドレスを尋ねる。 - 以上
このような処理を毎回コンピュータが勝手にやってくれています。
ちなみに、独自ドメインを取得した場合には、そのドメインで利用するサーバーのIPアドレスを登録するネームサーバーを自分で管理する必要があります。このあたりについては、以下のページも参考にしてみて下さい。
hostsファイル
やっと hostsファイル
の説明に進めます。
hostsファイル
に「IPアドレス」と「サーバー名(ホスト名)」の対応を書いておくと、先ほど説明した DNS を使わず、hostsファイル
の内容を優先して利用してくれます。
例えば hostsファイル
に、
183.181.97.xxx foo.example.com
と書いておけば、foo.example.com
というサーバーにアクセスする際には、問答無用で 183.181.97.xxx
というIPアドレスのサーバーにアクセスするようになります。
実験的に、「特定のサーバー名を指定したら特定のIPアドレスにアクセスさせたい」という動作をコンピュータにさせたい場合によく使われます。
hostsファイルの配置場所
どこにあるのかというと、以下の場所にあります。
Windows 10 / 8 / 7 / Vista / XP | C:\WINDOWS\system32\drivers\etc\hosts |
---|---|
Mac OS X / Linux | /etc/hosts/ |
※ 編集には管理者権限が必要です。Windows の場合は、メモ帳を管理者権限で開く必要があります。また、hosts
は拡張子がないので、メモ帳で開く際には「すべてのファイル」を選んでおく必要もあります。

