web-dev-qa-db-ja.com

/ etc / hostsの変更が正しく機能しません。何をすべきか?

Hostsファイルに次の行を追加しました。

127.0.0.1 localhost Adobe.com
127.0.0.1 Adobe.com

Windowsで完全に動作します。しかし、Ubuntu 11.10では、Firefoxを使用してアクセスしようとすると、Webサイトが開きます。

Google chromeは/ etc/hosts構成をサポートしていますが。 Google chromeが表示されています:

「動作します!これはこのサーバーのデフォルトWebページです。Webサーバーソフトウェアは実行されていますが、コンテンツはまだ追加されていません。」

9

ChromeとFirefoxの両方、Firefoxのみに影響するように見える問題を確認できます。これは、同じ問題の影響を受けているユーザー、および両方/すべてのブラウザーの影響を受けているユーザーに対する回答です。これを正常に機能させるには、この手順に従ってください。 /etc/hostsファイルを既に編集していると仮定して、次の2つの方法でファイルを編集することをお勧めします。

Gedit Way-gksudo gedit /etc/hosts(これでファイルを編集するGUIフレンドリーな方法ができました)
Nano Way-Sudo nano /etc/hosts(これで、ターミナルを編集してファイルを編集できるようになりました)

そして、あなたは例えば:

127.0.0.1 localhost Adobe.com

OR

127.0.0.1 localhost
127.0.0.1 Adobe.com

(両方とも同じものです)

最初にこれをテストして、ターミナルから正常に機能しているかどうかを確認します。 ping Adobe.comと入力すると、割り当てられたIPから応答するはずです。この場合、127.0.0.1で応答するはずです。それはそれがOKであることを意味します。

その後、ブラウザのテストを続けます。 Chromeをテストし、機能しました。 Adobe.comのエントリの有無で/etc/hostsを変更し、変更するたびに機能しました。しかし、その後、Firefoxを使用した場合、初めて動作したかもしれませんが、hostsファイルを変更した後、何らかの理由で動作を停止します。これは、キャッシュの問題または正しい名前を解決する問題であることを意味します。

Firefoxの場合および名前を解決すると、FirefoxはAdobe Webサイトに接頭辞wwwを追加するため、「www.Adobe.com」のようになります。 Chromeでは、この「Adobe.com」のように見えます。どちらも同じ場所を指し、wwwプレフィックスは、訪問している場所がWebサービスであることを示すためにあります。ただし、問題が発生した場合は、hostsファイルに追加する必要があるため、Firefoxが接頭辞wwwを追加するときに機能します。したがって、次のようになります。

127.0.0.1 localhost
127.0.0.1 Adobe.com www.Adobe.com

またはちょうど同じ

127.0.0.1 localhost Adobe.com www.Adobe.com

注:F5を押してサイト/ firefoxタブを更新するか、タブを閉じてからもう一度開いてテストする必要があることに注意してください。どういうわけか、クレイジーのようにEnterキーを押しても実行されません。

これで一部のユーザーの問題は解決するはずですが、今までまだ問題を解決していないと仮定して、それが何であるかをテストできます。

ここで、チェックするキャッシュのレベルをいくつか取得しました。プログラムキャッシュ(この場合はFirefox)を取得し、システムキャッシュ(この場合はUbuntu)を取得し、ハードウェアキャッシュ(この場合はルーター)を取得します。

私の知る限り、UbuntuデスクトップバージョンにはデフォルトでDNSキャッシュサービスがインストールされていません。最もよく知られているのはnscdであり、それがインストールされていれば、簡単な/etc/init.d/nscd restartが実行されます。しかし、ほとんどの人はこれをインストールしません。したがって、Ubuntuシステムの障害を無効にすることができます。

これにより、ルーターとブラウザーは終了します。ルーターの場合、DNSキャッシュを停止するように構成するか、この問題を解決するために再構成する必要があります。これは、ルーターのモデル、製造元などに完全に依存します。すべてのルーターがDNSキャッシュを実行するわけではありませんが、一部のルーターはDNSキャッシュを実行します。ただし、DNSキャッシュを有効にしたルーターがないと仮定します。

これにより、ブラウザが終了します。

FirefoxがDNSキャッシュに問題があるかどうかを調べるには、アドオンをインストールしてFirefoxのDNSキャッシュをチェックします。私がお勧めするのは DNSキャッシュ です。

enter image description here

Firefoxを再起動すると、下部にコグが表示されます(右上隅のUbuntuコグに似ています)。 Cogを左クリックまたは右クリックすると、DNSの有効化/無効化やフラッシュなどのオプションが表示されます。これは、問題がFirefox DNSキャッシュである場合に役立ちます。それで遊びます。

私はあなたがそれを解決できるすべての方法を手に入れたと思います。何か見逃した場合はお知らせください。

9
Luis Alvarado

私はこのスレッドが1年前のものであることを知っていますが、まったく同じ問題への答えを探してそれを見つけました。私はついに解決策を見つけました! /etc/hostsファイルがDNSによって完全にバイパスされていることがわかりました。これを変更するには、/etc/nsswitch.confを編集し、filesの下にhostsを含める必要があります。以下の例:

passwd:         compat
group:          compat
shadow:         compat

hosts:          dns files myhostname <-- this line here.
networks:       files

protocols:      db files
services:       db files
ethers:         db files
rpc:            db files

netgroup:       nis

これにより、/etc/hostsファイルが名前解決チェックに含まれるようになります。最初にDNSをチェックし、次にhostsファイルをチェックします。 OPはもはやこの情報を必要としませんが、これはこの問題に対する答えを探している人にとってはまだ良いことです。

これを有効にするには、再起動する必要もあります

7
Sam Chonburi

etc/hostsは、ブラウザ自体よりもネットワーキングソフトウェアスタックの恋人レベルで使用されていると思います。つまりそのファイルの変更は、すべてのブラウザに影響するはずです。

表示されているのは、FirefoxがDNSエントリをキャッシュした結果かもしれません。つまり、FirefoxでWebサイトを開き、FirefoxはAdobe.comドメインに対応するIPアドレスを記憶し、/etc/hosts新しいDNSクエリを発行し、代わりにキャッシュされたデータを使用します。次に、Chromeを開くと、新しいDNSクエリが作成され、/etc/hostsに入力したものがAdobe.comのIPアドレスとして使用されます

Firefoxを再起動すると問題が解決するはずです。

2
Sergey

すべての答えは素晴らしいですが、それを修正する最も簡単な方法は次のとおりです。

/ etc/hostsを変更した後(場合によってはFirefoxを再起動した後)、問題のタブをCtrl+Shift+Rで再読み込みします。 Firefoxが持つ可能性のあるあらゆるタイプのキャッシュをバイパスします。

2
Luka Ramishvili

私の問題は、同じドメイン名に対して複数のエントリがあったことです。システムは最初の発生のみを見ました。

127.0.0.1 domain1.com domain2.com domain3.com # <-- WENT UNNOTICED
# .
# .
192.168.1.21 domain1.com # <-- DOESN'T WORK
1
Kaushik Sv

ubuntu 14.04で/ etc/hostsファイルを変更して、1行につき1つのホストのみが機能するようにしました。IPホストホストホストで作業するのに数時間苦労しました。

0
Michael

試してみてください:

  1. / etc/hostsファイルを編集します。
  2. 次の行を追加

     # /etc/hosts
     127.0.0.1  localhost
     127.0.1.1  myhost01
     127.0.1.2  myhost02
    
0
OleksDovz

Ubuntuのさまざまなバージョンで同じ問題が発生しました。最新のものは、17.04と16.04にitsい頭を育てました。私は次のようにhostsファイルをフォーマットする必要があることがわかりました:

127.0.0.1 localhost

127.0.0.1 www.facebook.com facebook.com

つまり、URLをwwwに入れてから再度入れないでください。これがなぜ機能するのかわかりません。ファイルを保存してから、次のようにURLをpingするだけです。

ping www.facebook.com

ループバックアドレスまたは必要な他のアドレスに解決する必要があります。例:

80.82.xxx.xxx www.example.com example.com

私のために働いた。

0
Jules