※本ページにはプロモーション(広告)が含まれています
今はネット上の名前解決はDNS(Domain Name System)が一般的ですが、インターネット公開前のwebサービス開発環境を構築する場合など、hostsを書き換えたほうが楽な場合もあります。
本記事ではWindows環境でhostsファイルに変更を加える方法をご紹介していきます。hostsファイルの書き換えを行い、快適な開発環境を手に入れましょう。
hostsファイルで行うネットワークの名前解決とは
インターネットではコンピュータをIPアドレス(Internet Protocol address)で管理しています。インターネットにつながっているコンピュータは、すべてIPアドレスを持っています。
IPアドレス(v4)は0~255の数字4組(8bit×4=32bit)を「.」でつないで表します。例えば216.58.221.163などです。でも、人間がこのIPアドレスを見ても、何の事だかわかりません。
ですから、普段はドメインに名前を付けて人間にも理解しやすいようにしています。例えば「www.google.co.jp」とかなら、jpで国は日本で、coで営利企業だとわかって、googleという名前の団体の、wwwという名前のサーバーだと読み解けます。
そして、この「www.google.co.jp」というサーバーのIPアドレスを調べると、今pingを通した環境では216.58.221.163だと判明するのです。
IPアドレスを持っているのはサーバーだけではありません。例えばwebブラウザでhttp://www.google.co.jp/を指定すると、指定した機器のwebブラウザにページが表示されます。これは指定した機器のIPアドレスに向けてwebページのデータが送り返されてきているから、隣のパソコンに表示されずにちゃんと指定した機器に戻ってきているのです。
つまり、ネットワークにつながっているすべての機器がIPアドレスを持っているのです。
IPアドレスとそれぞれの機器との名前を結び付けている仕組みが、ネットワークの名前解決と呼ばれて、DNSが一般的なのです。DNSは各レベルで多くのサーバーが協力して成り立っています。先ほどの例では、google.co.jpがひと固まりのドメインで、ある範囲のIPアドレスをまとめて割り当てられています。google.co.jpの中でも、各々の機器とIPアドレスを結び付けているDNSサーバーが存在しています。
DNSより先に参照されるので注意
hostsの編集をすることで、特定のドメインに対して指定したIPアドレスのサーバーを参照してくれるように設定することができます。
これは、特定サービスをミラーリングなどで保全しており、管理画面の操作を片方のサーバーのみに限定したい場合、アクセスを予定しているユーザーが遷移するサーバーを指定できるなどのメリットがあります。
ただし、hostsファイルの編集をしたことを忘れてしまうと、サーバー移転をした時などにエラーが表示され続けてしまい、組織内で思わぬ混乱を引き起こしてしまう場合があります。
そのため、hostsファイルを編集する際には、付属してサーバー移管時の作業手順マニュアルなどに、hostsファイルの更新も加えるなどして、混乱を予防できるようにしておくことが大切です。
エンジニアが移籍しても対応できる準備が大切
hostsファイルの仕組みはエンジニアでない限り理解している人は多くなく、その存在も知らない人が大半です。
そのため、担当するシステム管理者やエンジニアが移籍した場合でも、残された人がシステムに関する理解がなくても、対応できるようにマニュアルを整備しておくことが非常に重要です。
「hosts」ファイルを書き換える目的
一般の名前解決はDNSに任せておけばいいのですが、公開前のWebサービスなどは、インターネットに接続したくありません。かといって、完全にネットワークから切り離しての作業も現実的ではありません。
そこで、限定された範囲で、機器名とIPアドレスを一時的に書き換える場合があります。特に、限定された機器で一時的に名前解決を変更する場合に利用できるのが「hosts」なのです。「hosts」であれば、1台のコンピュータでも名前解決を変更することができます。
ただし、「hosts」を書き換えたままだと、機器名を指定してもhostsに書かれているIPアドレスに変換されてコンピュータから出ていきますので、上位のDNSが変更されているとアクセスできない事態に陥りますので、注意が必要です。
hostsファイルの書き換えを忘れないようにしよう
hostsファイルの書き換えは開発者にとって非常に便利ですが、書き換えたことを忘れてしまうとサーバー移転をしてIPアドレスが変更になった時に、該当端末からアクセスできない状態などが発生します。
そのため、hostsファイルを書き換えした後は重要なメモとして残しておき、不要になったら上書きした情報を削除するなど定期的なメンテナンスをすることをお勧めします。
「hosts」ファイルを書き換える手順
※hostsはシステムで使用される大切なファイルですので、管理者権限でないと扱えません。管理者権限で慎重に作業する必要があります。
「メモ帳」を管理者として実行します。管理者として実行するには、アプリの一覧から「メモ帳」を右クリックして、表示されるメニューから「管理者として実行」を選択します。
ユーザーアカウント制御が表示されたら「はい」を選択します。
メモ帳が表示されたら、「ファイル」タブの「開く」をクリックします。
「開く」ウィンドウが開きますので、アドレス窓(下図1)に以下を記入してENTERデーを押します(コピーアンドペースト可)。
%WinDir%\System32\Drivers\Etc
右下(下図2)の「テキスト文書(*.txt)」をクリックして「すべてのファイル(*.*)」を選択します。
表示された「hosts」を選択します。
空白行に「IPアドレス+スペースまたはタブ+ホスト名」でホスト名を追加します。
追加が終われば「上書き保存」で書き換えます。
「hosts」を変更しての作業が済んだら元に戻しておくことをお勧めします。
「hosts」では手軽に名前解決ができますが、あくまでも一時的な例外と考えて、基本的にはDNSに任せることが大切です。そして書き換える場合は危険性を十分に理解して、慎重に作業することをお勧めします。
MacOSやLinuxでのhostsファイル編集方法
Windowsだけでなく、他のOSでもhostsファイルを編集することが可能です。ここでは、MacOSおよびLinuxでの編集手順を紹介します。これにより、異なる環境でも開発におけるホスト名の制御を実施できます。
MacOSでのhostsファイル編集方法
- ターミナルを開く:Finderで「アプリケーション」→「ユーティリティ」→「ターミナル」を選択し、ターミナルを起動します。
- hostsファイルを開く:次のコマンドを入力して、hostsファイルを開きます。
bash
sudo nano /etc/hosts
- パスワードを入力:コマンド実行後、管理者権限を確認するためにパスワードを入力します。
- ファイルを編集する:表示されたhostsファイルに、IPアドレスとホスト名を追加します。書式はWindowsと同じく「IPアドレス ホスト名」です。
- 変更を保存する:編集が終わったら「Control + X」で終了し、保存を求められたら「Y」を入力して保存します。
- 変更を反映させる:hostsファイルの変更を反映させるために、次のコマンドを実行してDNSキャッシュをクリアします。
bash
sudo dscacheutil -flushcache
Linuxでのhostsファイル編集方法
- ターミナルを開く:Linuxでもターミナルを開いて、hostsファイルの編集を行います。
- hostsファイルを開く:以下のコマンドでhostsファイルを編集します。
bash
sudo nano /etc/hosts
- ファイルを編集する:同様に、IPアドレスとホスト名を記入し、必要な変更を加えます。
- 保存して終了する:編集が終わったら「Control + X」で終了し、保存を行います。
- DNSキャッシュのクリア:変更が反映されない場合は、DNSキャッシュのクリアを行うために以下のコマンドを実行します。
bash
sudo systemctl restart network-manager
よくある質問とその回答
Q1. hostsファイルを編集するのは安全ですか?
A1. hostsファイルの編集自体は、適切に行えば安全ですが、間違った内容を記載するとアクセスしたいサイトに接続できなくなることがあります。また、hostsファイルはシステムの基本部分に関わるため、管理者権限で慎重に行う必要があります。編集後は元に戻すことを忘れないようにしましょう。
Q2. hostsファイルを編集しても効果が反映されない場合はどうすればいいですか?
A2. hostsファイルを編集してもすぐに効果が現れない場合、ブラウザのキャッシュをクリアするか、PCを再起動することで解決できることが多いです。また、IPアドレスとホスト名の記載に誤りがないか再確認してください。
Q3. hostsファイルの編集で開発環境にどのようなメリットがありますか?
A3. hostsファイルを利用することで、インターネット上に公開されていないテスト環境や開発中のWebサービスに対して、特定のIPアドレスを指定してアクセスできます。これにより、開発環境での動作確認や特定のサーバーにアクセスする際の管理が効率化されます。
Q4. 編集したhostsファイルはいつ元に戻すべきですか?
A4. hostsファイルの編集が不要になった時点で、速やかに元の状態に戻すことが推奨されます。特に、サーバー移行やドメイン変更が発生する際は、編集した内容が原因でアクセスできなくなる可能性があるため、注意が必要です。
Q5. DNSとの違いは何ですか?
A5. DNSはインターネット全体での名前解決システムで、多くのサーバーが協力して機能しています。一方、hostsファイルはローカルPCでの名前解決を行う設定ファイルで、優先的に参照されます。限定的な用途や開発環境では、hostsファイルが便利に使えますが、通常のインターネット接続はDNSに任せるのが一般的です。