クライアントでの元祖名前解決hostsファイルを便利に使う

ヘッダ画像

hostsファイルの書き方

ドメインはDNS(ドメインネームサーバ)という仕組みでIPアドレスと紐づけられています。DNSはドメイン(ホスト名)とIPアドレスを相互に変換します。
hostsファイルがローカル環境にあった場合、DNSへの問い合わせの前に参照されるため、こちらの設定が優先されます。
仕組みとしては単純ですが、意外にうまく認識しないケースも多いようなので、hosts変更の手順と注意点についてまとめました。

hostsファイルとは

ブラウザなどでyahoo.co.jpというURLにアクセスするとDNSサーバに問い合わせて、118.151.235.191というようなIPアドレスを取得してそれに対して通信を行います。
hostsファイルが存在し、かつ、該当ドメインに対する記述があった場合、指定通りに名前解決を行うことができるわけです。
つまり、yahoo.co.jpという要求に対して任意のサーバへアクセスさせることできます。
hostsの役割りと意味はWindows PCであれMacであれ同じです。

どんな使い道があるの?

クライアントとしての立場ならサイトや広告のブロックなどの用途が考えられますが、有効に活用できるひとつの例はウェブサイト制作の現場でしょう。
hostsファイルを書き換えることでドメインとIPアドレスを仮想的に割り当てて、公開前のウェブサイトを実際にインターネット上で確認したり、移転作業などで本来のIPアドレスとは違う特定のサーバを参照したりすることができます。

DNSよりhostsが優先されるので、悪用すればマルウェアなどウィルスで改竄することにより、特定のスパムサイトに誘導したりできるわけです。

書き換え書式

書式はWindows系やUNIX系も基本的に同様でシンプルなものです。
最後の行に「IPアドレス+半角スペース+ドメイン名」という形で追記します。

118.151.235.191 example.com

Windowsのhosts変更

hostsファイルの場所

現役のWindowsOSではVista・Windows7・Windows8・Windows10で共通で下記の場所にあります。

C:\Windows\System32\drivers\etc\hosts

「プログラムとファイルの検索」やエクスプローラーのアドレスバーに以下をコピペしても表示できます。

%WinDir%\System32\Drivers\Etc

Windows8のhostsファイル

# Copyright (c) 1993-2006 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
#
# This file contains the mappings of IP addresses to host names. Each
# entry should be kept on an individual line. The IP address should
# be placed in the first column followed by the corresponding host name.
# The IP address and the host name should be separated by at least one
# space.
#
# Additionally, comments (such as these) may be inserted on individual
# lines or following the machine name denoted by a ‘#’ symbol.
#
# For example:
#
# 102.54.94.97 rhino.acme.com # source server
# 38.25.63.10 x.acme.com # x client host
# localhost name resolution is handle within DNS itself.
# 127.0.0.1 localhost
# ::1 localhost
118.151.235.191 example.com

上記では例としてyahooのIPアドレスにexample.comというドメインを紐づけています。
変更する場合の注意点は該当ファイルをそのままテキストエディタなどで開くと権限の問題で保存することができません。
アプリケーションを管理者権限で実行するか、デスクトップなどにコピーしてから編集後、書き換えてください。
コピーの際も権限を要求される場合がありますので、適時、実行ください。

※保存したファイルに.txtなどの拡張子が付いている場合はhostsファイルとして認識しませんので、削除ください。

参考:Windowsで拡張子を表示する

変更したhostsが効かない

指定したドメインで希望のサーバへのアクセスができない場合、まずは設定したドメインに対してPINGを実行してみましょう。

ping example.com

設定したドメインにPING送信

hostsが正常に認識できていれば、example.comへPINGを打つと118.151.235.191から応答が返ってきます。

hostsファイルは本来ブラウザでも即時適用されますが、PINGが正常に返ってきている場合はスーパーリロードを試してください。

正常にPINGが返ってこない場合、コマンドプロンプトでDNSのリフレッシュなどを試してもよいのですが、おそらく解決しないでしょう。

ipconfig /flushdns

多くの場合、Windowsでhostsが認識しない原因の多くは文字コードです。
テキストエディタで文字コードチェックして、Shift_JIS(改行コード:CR+LF)、もしくはUFT-8(改行コード:CR+LF)であればほとんどの場合は動作するはずです。

TeraPadでの文字コード表示

しかし、厳密には日本語環境の場合、Windowsのhostsファイルのデフォルト文字コードはShift_JISにマイクロソフトが独自に拡張を加えたANSI(CP932)かと思われます。
このため、純正ではないテキストエディタで編集して動作しない場合はメモ帳(NOTEPAD)で開き、文字コードをANSIで保存し直します。
これでほぼ間違いなく動作するでしょう。

メモ帳で文字コードにANSIを選択

Macintoshでのhosts変更

hostsファイルの場所

MacではHosterという定番アプリがよく使われるようですが、結局はオリジナルにオーバーライドする形になるので、ここでは通常のテキストエディタで直接編集してみます。
hostsファイルは/private/etc/に存在しますが、privateは不過視フォルダのため、デスクトッププルダウンメニュー「移動」→「フォルダに移動」にて/etc/とすることで、フォルダを開くことができます。

/private/etc/hosts

Machintoshのhostsファイル

#
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting. Do not change this entry.
##
127.0.0.1 localhost
255.255.255.255 broadcasthost
118.151.235.191 example.com

※最終行はWindowsの例と同じく、example.comというドメインを紐づけています。

テキストエディタでの編集

デフォルトのアプリは純正のテキストエディットとなっているはずですが、権限の問題で上書き保存ができません。
このため、あらかじめデスクトップなどにコピーしてから編集するか、別名保存します。

書き換えはWindowsと同じく、最終行に「IPアドレス+半角スペース+ドメイン名」で追記します。

※hostsファイルをetcフォルダに移動する際にはアカウントのパスワード入力を求められます。

ターミナルでの編集

ターミナルのvimコマンドで書き換えることも可能です。
root権限が必要なため、sudoで実行します。

sudo vim /etc/hosts

vimエディタを実行

パスワードを入力して、aキーでインサートします。

最終行に追記して保存

escで編集モードを抜けて「:wq」で保存します。

補足:プロキシーを経由していないか?

どのOSにおいてもプロキシーを使用している環境では実際にアクセスするのはクライアントではなく、プロキシーサーバになります。
このような場合はローカルのhostsファイルではなく、プロキシサーバのhostsファイルを変更する必要があります。
意外に勘違いしやすいため、注意ください。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です



関連記事

VPN経由でインターネットにアクセスする VPN接続中にブラウザなどを使いインターネットへ接続する際はクライアント側の設定でVPN接続先のサーバ経由か自分の接続環...

WindowsでVPNに接続できない この記事はWindowsクライアントでのVPN接続についてですが、まずはOSX Serverの話を少々。OSX Serv...

新しいWindowsPCが既存のNASに接続できない Windows7や10など新PCに入れ替えたところ「これまで使えていたNASに接続できなくなった」という症状を耳にします...

au キューブ経由でPCやプリンタに繋がらない スマホ契約者特典で無期限無料でレンタルできる「au HOME SPOT CUBE」基本的にネット接続には別のルータを使用...