web-dev-qa-db-ja.com

hostsファイルは無視されました。トラブルシューティング方法は?

Windowsコンピュータ上のhostsファイルは、特定の名前文字列を特定のIPアドレスにバインドして、他の名前解決方法を上書きするために使用されます。

多くの場合、hostsファイルを変更することを決定し、変更が反映されないこと、またはその後hostsファイルの古いエントリでさえ無視されることを発見します。いくつかの「勘違い」の間違いがこれを引き起こす可能性があり、どれが原因かを理解するのはイライラすることがあります。

Windowsがhostsファイルを無視するという問題に直面したとき、従うことができる包括的なトラブルシューティングプロトコルは何ですか?


この質問には、SOで重複があります。たとえば、 HOSTSファイルが無視されます

しかし、これらは特定のケースに対処する傾向があり、OPが行った間違いが判明したら、議論は終わります。同じエラーを偶然起こさなかった場合、そのような議論はあまり役に立ちません。したがって、allケースをカバーするすべてのホスト関連の問題を解決するための一般的なプロトコルを用意するほうが役立つと思いました。

158
Superbest

私自身の経験とグーグルでの経験に基づいて、次のことを試してみてください。

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ファイルの名前は正しいですか? hostsではなくHostにする必要があります。
  • 拡張子は正しいですか?拡張子を付けないでください(hosts.txtではなくhosts)-既知の拡張子を隠すようにウィンドウを構成している場合は注意してください。プロパティを確認して確認してください:正しいホストファイルのタイプは「ファイル"。
  • 正しい構文 に従いましたか?コメントを示すハッシュ(#)を誤って行の前に付けましたか?
  • すべてのバリアントを処理しましたか(www.example.comおよびexample.com-両方を追加するのが最も安全)?

3.空白

各行の形式はIP address、次に水平タブ(エスケープコード\t、ASCII HT、hex 0x09)または単一のスペース(16進数0x20)、次にホスト名、つまりwww.example.com、最後にキャリッジリターンとそれに続くラインフィード(エスケープコード\r\n、ASCII CRLF、16進数0x0d 0x0a)。

Unicode制御画像を使用して制御文字を示すサンプルエントリ。 (これらをホストファイルにコピーアンドペーストしないでください!)

192.0.2.1␉www.example.com␍␊
2001:db8:8:4::2␉ipv6.example.com␍␊

個々のバイトは Notepad ++hex editor plugin で表示できます。 Notepad ++は特殊文字も表示するため([表示]-> [記号の表示])、空白文字の数と種類を簡単に検査できます。

どこかからhostsエントリをコピーして貼り付けた場合、複数のスペースが生じる可能性があります。理論的には、ホストは2つの列を区切る複数のスペースをサポートしますが、他に何も機能しない場合に試すこともできます。

安全のために、hostsファイルのすべての行でタブまたはスペースのいずれかを使用してください。両方を使用しないでください。

最後に、ファイルを空白行で終了します。

4.レジストリキー

Hostsファイルの場所を指定するレジストリキーがあります。おそらく、Windowsは実際には他の場所へのhostsファイルの配置をサポートしていませんが、確認したい場合があります。キーは次のとおりです。

\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\DataBasePath

エントリは次のようになります。

%SystemRoot%\System32\drivers\etc

5.アクセス許可

ときどき、ファイルのアクセス許可、ファイルの属性などに問題があります。デフォルトの権限でファイルを再作成するには:

  1. デスクトップに新しいテキストファイルを作成します。
  2. 現在のホストファイルの内容をコピーして、メモ帳でこのファイルに貼り付けます。
  3. 新しいテキストファイルを保存し、名前をhostsに変更します。
  4. ファイルを%SystemRoot%\System32\drivers\etcディレクトリにコピーして(移動しないでください)、古いファイルを上書きします。

最後のポイントは重要です。コピーは機能しますが、移動は機能しません。

ローカルUsersアカウントは、hostsファイルを読み取ることができる必要があります。確認するには(Windows 7の場合):

  1. Windowsエクスプローラで%SystemRoot%\System32\drivers\etcに移動します。
  2. hostsファイルが表示されない場合は、 隠しファイルとシステムファイルが表示されていることを確認してください
  3. hostsファイルを右クリックし、コンテキストメニューからPropertiesを選択します。
  4. hosts Propertiesウィンドウで、[Security]タブをクリックします。
  5. Group or user names:ボックス内の名前のリストを調べます。 %COMPUTERNAME%\Usersが存在する場合は、それをクリックして権限を表示します。
  6. Usersが存在しない場合、または存在するがRead権限がない場合は、Edit...をクリックします。
  7. Usersが存在しない場合は、Add...をクリックし、Usersと入力して、Check Namesをクリックし、[OK]をクリックするか、Enterキーを押します。
  8. Usersを選択し、Allow列でRead & executeがオンになっていることを確認します。 OKをクリックします。 Windows Securityアラートボックスが表示されたら、Yesを選択して続行します。
  9. [OK]をクリックしてhosts Propertiesウィンドウを閉じます。
  10. この回答のセクション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はどういうわけか、ワークグループやローカルドメインを追加しません。

229
Superbest

最初にipaddressを置き、次に「ドメイン」を次のように置いていることを確認します。

127.0.0.1   bo.dev
127.0.0.1   www.bo.dev
16
Gustaf

チェックファイルの権限を追加してください。コンピューター、つまりホストに対するローカル管理者権限を持っているにもかかわらず、私はそれを発見しました。ローカルユーザーをホストファイルのアクセス許可に読み取りと読み取りと実行、さらにipconfig/flushdnsで追加するまで、ホストはアクティブになりませんでした。

11
David Siviour

私の場合、私はWindows 7で作成したファイルC:\ Windows\System32\drivers\etc\hosts.icsを試しました。

hosts.ics:

# This file has been automatically generated for use by Microsoft Internet
# Connection Sharing. It contains the mappings of IP addresses to Host names
# for the home network. Please do not make changes to the HOSTS.ICS file.
# Any changes may result in a loss of connectivity between machines on the
# local network.

その結果、WindowsはC:\ Windows\System32\drivers\etc\hostsの設定を無視し、hosts.icsの設定を使用します。

7
Unick

同じ問題が発生し、hostsファイルのエントリが無視されました。私はこれと他の多くのスレッドですべてを運なしで試しました。他の誰かがこれに遭遇した場合に備えて、私がうまくいったことを投稿すると思いました。

  1. 管理者としてWindowsエクスプローラーを開く
  2. Hostsファイルを削除する
  3. 管理者としてメモ帳を開き、新しいhostsファイルを作成します
  4. ゼロから始めて、エントリを追加します。
  5. Hostsファイルに.txt拡張子がないことを確認します

注:単にhostsファイルを開いてコンテンツを削除し、それが0kbであることを確認して再度追加しても機能しませんでした。ファイルの権限の問題だと思います。

3
PSA4444

上記の説明で見逃された問題の1つは、hostsファイルの非修飾名(ピリオドを含まない名前)です。その時点でネットワーク設定が有効になり、非修飾ドメインの末尾に独自のドメインが自動的に追加される場合があります。その結果、名前が解決されないか、さらに悪いことに、完全に異なるマシンに解決される可能性があります。

1
user287479

IP NAMEではなく、NAME IPとして値を入力したことを確認してください。

これは、たとえばファイルにエントリが1つしかない場合や、コメントアウトテキストを無視した場合に発生する可能性があります。

1
knb

これに数時間、おそらく数日を費やしました。

IBM Trusteer Endpoint Rapportのセキュリティがこの問題を引き起こす可能性があります。

Mysite.comを信頼済みサイトのリストに追加しました。

セキュリティの一環として、マルウェアやウイルスが別のサイトに誘導されるのを防ぎます。

Mysiteを信頼済みサイトのリストから取得すると、hostsファイルの宛先変更のチェックと「修正」は行われなくなりました。

誰かが問題を解決するのに役立つことを願っています。

1

(Windows 7)ラップトップでネットワークに接続するまで、hostsファイルは無視されます。ネットワークに接続すると、すべてが正常に機能します。明らかに、ネットワークがないと、ホストなどにpingを実行できませんが、WindowsがホストファイルからIPアドレスを取得することを期待していました。そうではありません。切断後もアドレスは正常に検索されますが、コンピュータを再起動してから最初にネットワークに接続するまでの間、hostsファイルは無視されます。

(ちなみに、私の知る限り、タブ、スペース、改行は関係ありません)。

0
Denis Howe

私の場合、問題は、暗号化されたディレクトリからホストファイルをコピーし、それでetc/hostsを上書きしていたことでした。私はプロパティを見て、「ファイルを暗号化する」チェックボックスのチェックを外さなければなりませんでした。

0
Janos

Windowsでは、HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\DataBasePathがhostsファイルのディレクトリを指していることを確認します。

0
Geln Yang