私自身の経験とグーグルで出会ったものに基づいて、試してみるべきものをいくつか紹介します。
1.正しく動作することを確認しましたか?
ホストへの変更はすぐに有効になりますが、Windowsは名前解決データをキャッシュするため、しばらくの間は古いレコードが使用されます。コマンドラインを開き(Windows + R cmd
、Enter)、入力します:
ipconfig /flushdns
古いデータを削除します。動作するかどうかを確認するには、次のコマンドを使用します(www.example.comのホストにipv4エントリがあるか、ipv6.example.comのホストにipv6エントリがあると仮定します)。
ping www.example.com -n 1
ping -6 ipv6.example.com -n 1
そして、正しいIPを使用しているかどうかを確認します。はいの場合、hostsファイルは問題なく、問題は別の場所にあります。
また、次の方法でNetBiosキャッシュをリセットできます(管理者としてコンソールを開くと、失敗します)。
nbtstat -R
DNSキャッシュ内の現在のデータは次の方法で確認できます。
ipconfig /displaydns | more
2.基本
- ホストファイルの名前は正しいですか?などである必要が
hosts
ありますhost
。
- 拡張子は正しいですか?拡張子を持たない(
hosts
ないhosts.txt
)必要があります-既知の拡張子を非表示にするようにウィンドウを設定している場合は注意してください。プロパティを確認してください。
- 正しい構文に従っていましたか?
#
コメントを示すハッシュ()を誤って行の前に付けましたか?
- (すべてのバリアントの世話をしました
www.example.com
し、example.com
-ちょうど両方を追加する最も安全)?
3.空白
各行の形式は、、IP address
次に水平タブ(エスケープコード\t
、ASCII HT
、hex 0x09
)または単一スペース(hex 0x20
)、次にホスト名です。www.example.com
、最後にキャリッジリターンとそれに続くラインフィード(エスケープコード\r\n
、ASCII CRLF
、hex 0x0d 0x0a
)。
Unicode制御画像を使用して制御文字を示すサンプルエントリ。(これらをコピーしてhostsファイルに貼り付けないでください!)
192.0.2.1␉www.example.com␍␊
2001:db8:8:4::2␉ipv6.example.com␍␊
個々のバイトは、16進エディタープラグインを使用してNotepad ++で表示できます。Notepad ++は特殊文字も表示するため(表示->記号の表示)、空白文字の数と種類を簡単に調べることができます。
ホストエントリをどこかからコピーして貼り付けると、複数のスペースができてしまう可能性があります。理論的には、ホストは2つの列を区切る複数のスペースをサポートしますが、他に何も機能しない場合は試してみるのも別です。
安全のために、hostsファイル内のすべての行が、両方ではなくタブまたはスペースを使用していることを確認してください。
最後に、ファイルを空白行で終了します。
4.レジストリキー
ホストファイルの場所を指定するレジストリキーがあります。おそらく、Windowsは実際にはホストファイルを他の場所に置くことをサポートしていませんが、確認することをお勧めします。キーは次のとおりです。
\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\DataBasePath
エントリは次のとおりです。
%SystemRoot%\System32\drivers\etc
5.パーミッション
ファイルの許可、ファイル属性、および同様のものに問題がある場合があります。デフォルトの許可でファイルを再作成するには:
- デスクトップに新しいテキストファイルを作成します。
- 現在のホストファイルの内容をコピーして、メモ帳でこのファイルに貼り付けます。
- 新しいテキストファイルを保存し、名前をに変更し
hosts
ます。
- ファイルをディレクトリにコピー(移動しない)し
%SystemRoot%\System32\drivers\etc
、古いファイルを上書きします。
最後の点は重要です。コピーは動作しますが、移動は動作しません。
ローカルUsers
アカウントは、hostsファイルを読み取れる必要があります。確認するには(Windows 7の場合):
- 移動し
%SystemRoot%\System32\drivers\etc
、Windowsエクスプローラで。
hosts
ファイルが表示されない場合は、隠しファイルとシステムファイルが表示されることを確認してください。
hosts
ファイルを右クリックしてProperties
、コンテキストメニューから選択します。
- では
hosts Properties
、ウィンドウ、をクリックしてSecurity
タブ。
Group or user names:
ボックス内の名前のリストを調べます。存在する場合%COMPUTERNAME%\Users
は、クリックして権限を表示します。
Users
存在しない場合、または存在するがRead
許可がない場合は、をクリックしますEdit...
。
Users
存在しない場合は、をクリックしてAdd...
、を入力しUsers
、をクリックしてCheck Names
、OKをクリックするか、Enterを押します。
- を選択し、列でチェックされている
Users
ことRead & execute
を確認しAllow
ます。OKをクリックします。Windows Security
警告ボックスが表示されたら、Yes
続行することを選択します。
- [OK]をクリックして
hosts Properties
ウィンドウを閉じます。
- この回答のセクション1に進み、指示に従って現在動作しているかどうかを確認してください。
6.エンコード
hostsファイルは、BOMなしでANSIまたはUTF-8でエンコードする必要があります。これは、[ファイル]-> [名前を付けて保存]で実行できます。
7.プロキシ
プロキシを設定している場合、hostsファイルをバイパスする場合があります。解決策は、プロキシを使用しないか、これを行わないように構成することです。
確認するには、Internet Explorer->インターネットオプション->接続-> LAN設定に進みます。すべてが空白で、「設定を自動的に検出する」がチェックされている場合、プロキシを使用していません。
Webにアクセスするためにプロキシに依存しているため、それを無効にしたくない場合は、Internet Explorer->インターネットオプション->接続-> LAN設定->プロキシサーバー/詳細に移動して、例外を追加できます。次に、[例外]テキストボックスに例外を追加します。例えばlocalhost;127.0.0.1;*.dev
8. DNSアドレス
(これにより、プロキシの問題も解決される場合があります。)
ネットワーク接続のプロパティに移動し、次にTCP / IP設定に移動して、最初のDNSサーバーを127.0.0.1
(localhost)に変更します。2番目は、おそらく実際のDNSのIPであるはずです。
これはhostsファイルが機能するために必要ではありませんが、何かがおかしな設定になっている場合に役立つかもしれません。
9. .localアドレス
myhost.localの形式で.localドメインエントリを使用していて、無視される場合は、次を試してください。
x.x.x.x myhost.local www.myhost.local
www.myhost.localが存在しない場合でも。Windowsは、何らかの方法でワークグループまたはローカルドメインを追加しません。