hostsとは?設定方法についても初心者向けにわかりやすく解説

WEBやIT業界に勤める中で、テストサイトなどの一般には公開していないサイトを見ようとした時に、他の人は見れてるのに自分は見れない、なんてことはありませんか?
そんな時に「hosts設定した?」と言われることがあります。なんか聞いたことはあるけど、実際に言われると何のことだか分からないと思う人も多いでしょう。
ちなみに私もそうでした…(笑)。
今回はそんな疑問をお持ちの方に向けて、**hostsとは何か?**を解説し、実際の設定方法まで分かりやすく紹介していきます。
1. hostsとは?
結論から言うと、hostsとはホスト名とIPアドレスの紐付けを行うためのファイルです。 「hosts設定」と略して言われることもありますが、要するにこのファイルを使って手動でホスト名とIPアドレスを紐付けることを指します。
ただ、これだけではピンとこない人も多いと思うので、詳しく解説していきます。
2. hostsの説明を聞く前に知っておくべき単語
まずは、hostsの説明をより理解しやすくするために、知っておくべき基本用語を紹介します。必要ない方は次のセクションに飛んでもらって大丈夫です。
IPアドレス
IPアドレスとは、インターネット上の住所のことです。 「111.11.111.1」のように、0〜255までの数字をピリオドで区切って表現されます。
私たち人間でいうところの、「東京都〇〇区〇〇町1-XX-X 〇〇マンション20X」のようなものです。 コンピューターはこの数字を使って、それぞれの情報がどこにあるのかを識別しています。
ドメイン名
ドメイン名は、人間がIPアドレスを理解しやすいようにするための名前です。 例えば「111.11.111.1」と言われても何のサイトか分かりづらいですよね?
そこで、「zitekibu.com」のように、わかりやすい名前をつけることで識別しやすくしています。
住所で例えると、「東京都〇〇区〇〇町1-XX-X」よりも「佐藤さんの家」や「〇〇カフェ」、「株式会社〇〇〇〇」といった名称の方が分かりやすいのと同じです。
このようにドメイン名は、人が認識しやすいようにIPアドレスにつけられた名前のようなものです。
DNS
DNSとは、「IPアドレスとドメイン名を変換する仕組み」のことです。
ドメイン名はあくまで人間向けのものなので、コンピューターは認識できません。また、人もIPアドレスが表示されてもなんのサイトか認識しづらいです。
そのため、このIPアドレスとドメイン名をコンピューターが読み込むとき、人に向けて表示する時など必要に応じて変換しなければなりません。この変換する仕組みをDNSと言います。
また語弊のないように詳しく言うと、事前にIPアドレスとドメイン名を紐付けておいて、必要に応じて変換します。
DNSサーバー
DNSを実際に処理するサーバーのことを指します。
ホスト名
厳密にはドメイン名とは異なりますが、ここでは簡単に「ホスト名=ドメイン名」と考えてもらって大丈夫です。
詳しい違いを知りたい方はこちらの記事をご覧ください。
記事
3. hostsファイルとは?
hostsファイルとは、DNSの役割を各PC内部で行うファイルです。
※厳密にはDNSと違いますが、ここでは同じようなものと考えてOKです。
このファイルに紐づけたいIPアドレスとホスト名を記述すると、PCはインターネット上のDNSを使わずに、その設定をもとにIPアドレスを認識し、対応するサイトやサーバーにアクセスできます。
例えば、以下のように設定したとします。
192.168.1.100 testsite.local
この状態でブラウザに「testsite.local」と入力すると、192.168.1.100のサーバーにアクセスできます。
ちなみに、hostsファイルは各PCに存在するため、この設定を行っても影響があるのは設定したPCだけです。そのため、 他の人に迷惑がかかることはないので安心してください(笑)。
4. hostsファイルの設定方法(Windows・Mac別)
Windowsの場合
スタートメニューで「メモ帳」を検索し、右クリックして「管理者として実行」
「ファイル」→「開く」
C:\Windows\System32\drivers\etc\hosts を開く
192.168.1.100 testsite.local
「Ctrl + S」で保存
コマンドプロンプトを開き、ipconfig /flushdns を実行
Macの場合
「アプリケーション」→「ユーティリティ」→「ターミナル」
「ファイル」→「開く」
sudo nano /etc/hosts
192.168.1.100 testsite.local
Ctrl + X → Y → Enter で保存
sudo dscacheutil -flushcache
5. hostsを活用する具体例
ここまでの説明で、「hostsファイルは特定のIPアドレスとホスト名(ドメイン名)を紐付けるためのもの」と理解できたかと思います。では、実際にどのような場面で活用できるのでしょうか? 具体的な使い方を3つ紹介します。
ローカル開発環境での使用
WEB制作の現場では、テスト環境やローカル環境(自分のPC内で動かす開発用の環境)を使うことがよくあります。例えば、開発中のサイトを「example.test」といった仮のドメインで開けるようにしたい場合、以下のようにhostsファイルを設定すると便利です。
127.0.0.1 example.test
この設定をすると、自分のPC内で「example.test」と入力するとローカル環境のサーバー(127.0.0.1=自分のPC)にアクセスできます。実際のインターネット上のDNSを使わずに、ローカルの開発環境に直接接続できるので、スムーズにテストができます。
特定サイトのアクセス制限
hostsファイルを使うと、特定のサイトへのアクセスを制限することも可能です。たとえば、YouTubeを開けないようにしたい場合、以下のように設定します。
127.0.0.1 youtube.com
この設定をすると、自分のPCでは「youtube.com」にアクセスしようとしても、ローカル環境(127.0.0.1)に接続されるため、YouTubeのページが開けなくなります。
この方法は、以下のような用途で使えます。
- 子供のPCで、特定のサイトを開けないようにする(ペアレンタルコントロール)
- 仕事中に特定のサイト(SNSなど)をブロックして作業に集中する
- 社内のPCで業務に不要なサイトをブロックする
ただし、この方法はPCごとの設定なので、他の人のPCには影響しません。ネットワーク全体でアクセス制限を行いたい場合は、ルーターやファイアウォールで制限する方法を検討しましょう。
ウイルス対策・フィッシング対策
インターネット上には、ウイルス感染を狙う悪意のあるサイト(フィッシングサイトやマルウェアサイト)があります。誤ってアクセスしないようにするため、hostsファイルを使ってそれらのサイトへの接続を無効化できます。
例えば、危険なサイトのURLが分かっている場合、以下のように設定します。
127.0.0.1 malicious-site.com
この設定をすると、「malicious-site.com」にアクセスしようとしても、ローカル環境(127.0.0.1)に接続されるため、実際の危険なサイトにはつながらなくなります。
また、企業や組織でも、社内のPCが特定の危険なサイトにアクセスしないよう、hostsファイルを活用することがあります。ただし、大規模なネットワークではDNSサーバーを使ってフィルタリングするのが一般的です。
6. まとめ
- hostsファイルは、DNSを介さずに特定のIPアドレスとホスト名を紐付ける仕組み
- テスト環境の設定や開発で役立つ
- WindowsやMacで簡単に設定可能
- セキュリティ対策にも活用できる
特にWeb制作やサーバー管理に携わる方にとっては、知っておくと便利な知識です。
ぜひ、今回の解説を活かして、実際に設定を試してみてください。