
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 は拡張子がないので、メモ帳で開く際には「すべてのファイル」を選んでおく必要もあります。


