Die Änderung von / etc / hosts funktioniert nicht ordnungsgemäß. Was ist zu tun?

10

Ich habe diese Zeilen zur Hosts-Datei hinzugefügt:

127.0.0.1 localhost adobe.com
127.0.0.1 adobe.com

Es funktioniert perfekt unter Windows. Aber in Ubuntu 11.10 wird die Website geöffnet, wenn ich versuche, mit Firefox darauf zuzugreifen.

Google Chrome unterstützt zwar die Konfiguration von / etc / hosts. Google Chrome zeigt Folgendes an:

"Es funktioniert! Dies ist die Standardwebseite für diesen Server. Die Webserver-Software wird ausgeführt, es wurde jedoch noch kein Inhalt hinzugefügt."

Neugieriger Lehrling
quelle

Antworten:

10

Ich kann Ihr Problem bestätigen, dass es zwischen Chrome und Firefox anscheinend nur Firefox betrifft. Dies ist eine Antwort für Benutzer, die von demselben Problem betroffen sind und von beiden / allen Browsern betroffen sind. Befolgen Sie diese Schritte, damit dies ordnungsgemäß funktioniert. Angenommen, Sie haben die /etc/hostsDatei bereits bearbeitet , für die ich die folgenden zwei Möglichkeiten zum Bearbeiten der Datei empfehle:

  • Gedit - gksudo gedit /etc/hosts(Sie haben jetzt eine GUI-freundliche Möglichkeit, die Datei zu bearbeiten. Gksu, das gksudo bereitstellt, wird in den offiziellen Repositories ab 18.04 eingestellt.)
  • nano - sudo nano /etc/hosts(Sie haben jetzt eine terminalfreundliche Möglichkeit, die Datei zu bearbeiten.)

Und Sie haben zum Beispiel:

127.0.0.1 localhost adobe.com

oder

127.0.0.1 localhost
127.0.0.1 adobe.com

(Beide sind dasselbe.)

Sie testen dies zuerst, um festzustellen, ob es vom Terminal aus ordnungsgemäß funktioniert. Geben Sie ein ping adobe.comund es sollte von der ihm zugewiesenen IP-Adresse antworten. In diesem Fall sollte es mit 127.0.0.1 antworten. Das heißt, es ist in Ordnung.

Dann fahren wir mit den Browsertests fort. Sie haben Chrome getestet und es hat funktioniert. Sie haben /etc/hostszwischen dem Eintrag für adobe.com und dem Eintrag für adobe.com gewechselt und es hat jedes Mal funktioniert, wenn Sie ihn geändert haben. Aber dann haben Sie sich für Firefox entschieden, es hat vielleicht beim ersten Mal funktioniert, aber nach dem hostsHin- und Herwechseln der Datei funktioniert es irgendwie nicht mehr. Dies bedeutet, dass es sich um ein Cache-Problem oder ein Problem beim Auflösen des richtigen Namens handelt.

Im Fall von Firefox und beim Auflösen des Namens fügt Firefox der Adobe-Website das Präfix www hinzu , sodass es wie folgt aussieht: "www.adobe.com", aber in Chrome sieht es wie folgt aus: "adobe.com". Beide verweisen auf denselben Ort, und das WWW-Präfix gibt nur an, dass es sich bei dem von Ihnen besuchten Ort um einen Webdienst handelt. Im Falle Ihres Problems müssten Sie dies jedoch zur hostsDatei hinzufügen, damit es funktioniert, wenn Firefox das Präfix www hinzufügt. So würde es aussehen:

127.0.0.1 localhost
127.0.0.1 adobe.com www.adobe.com

ODER trotzdem

127.0.0.1 localhost adobe.com www.adobe.com

HINWEIS: Denken Sie daran, dass Sie drücken MÜSSEN F5, um die Registerkarte Site / Firefox zu aktualisieren, oder schließen Sie die Registerkarte und öffnen Sie sie zum Testen erneut. Irgendwie reicht Enteres nicht, wie verrückt zu drücken .

Dies sollte das Problem für einige Benutzer lösen, aber vorausgesetzt, Sie haben das Problem bisher noch nicht gelöst, können wir testen, was es sein könnte.

Wir haben hier ein paar Ebenen des Cache, um sie dann zu überprüfen. Sie haben Ihren Programm-Cache, in diesem Fall Firefox, dann haben Sie Ihren System-Cache, in diesem Fall Ubuntu, und dann haben Sie Ihren Hardware-Cache, in diesem Fall Ihren Router.

Soweit ich weiß, ist in der Ubuntu Desktop-Version standardmäßig kein DNS-Cache-Dienst installiert. Das bekannteste ist nscd und wenn Sie das installiert haben, reicht ein einfaches /etc/init.d/nscd restart. Aber für die meisten Leute wird dies nicht installiert sein, so dass wir den Fehler des Ubuntu-Systems außer Kraft setzen können.

Das lässt den Router und den Webbrowser. Im Falle des Routers müssten Sie ihn so konfigurieren, dass der DNS-Cache gestoppt wird, oder ihn neu konfigurieren, um dieses Problem zu beheben. Dies hängt vollständig vom Router-Modell, Hersteller usw. ab. Nicht alle Router verwenden DNS-Cache, aber einige tun dies, und Sie müssten in der Konfiguration sehen, ob diese Option vorhanden ist und ob die Option aktiviert ist. Nehmen wir jedoch an, Sie haben keinen DNS-Caching-fähigen Router.

Dies verlässt den Browser.

Um herauszufinden, ob Firefox mit dem DNS-Cache fehlerhaft ist, können Sie ein Add-On installieren, um den DNS-Cache in Firefox zu überprüfen. Ich empfehle den DNS-Cache .

Geben Sie hier die Bildbeschreibung ein

Nach dem Neustart von Firefox sollte unten ein Zahnrad angezeigt werden (ähnlich dem Ubuntu-Zahnrad in der oberen rechten Ecke). Sie können mit der linken Maustaste oder mit der rechten Maustaste auf das Zahnrad klicken, und Sie sollten Optionen wie DNS aktivieren / deaktivieren und es spülen sehen. Dies ist hilfreich, wenn das Problem der Firefox-DNS-Cache ist. Spiel damit.

Ich glaube, ich habe alle Möglichkeiten, wie Sie das lösen können. Wenn ich etwas verpasst habe, lass es mich wissen.

Luis Alvarado
quelle
Wenn Firefox die hostsDatei des lokalen Computers nicht berücksichtigt (dh wenn das Problem auch nach dem wwwHinzufügen der Domäne mit der Unterdomäne und nach dem Aktualisieren der Seite weiterhin auftritt ), empfehle ich, dies als Fehler zu melden. (Ich bin nicht sicher , was es wäre ein Fehler sein in , da Firefox vermutlich nutzt die DNS - Auflösung Einrichtungen des Betriebssystems, das zu tun , oder sollen, respektieren. Aber man könnte es gegen berichten firefoxin Ubuntu und dann weitere Informationen zur Fehlerbehebung könnte wahrscheinlich retarget es von dort.)
Eliah Kagan
@EliahKagan Es hängt auch davon ab, wo und wie sich das Hosting / die Domain befindet. Einige Websites bieten die Option, die Verwendung der WWW-Subdomain zu aktivieren, andere haben sie nicht vorkonfiguriert. Wenn Sie also versuchen, auf www.eliah.com zuzugreifen, funktioniert dies nicht, eliah.com jedoch.
Luis Alvarado
Ja, sicher. Ich sage nicht, dass www.foo.netdas funktionieren sollte, nur weil es foo.netfunktioniert. Wenn Vielmehr foo.netund www.foo.netdefiniert sowohl 127.0.0.1in /etc/hosts, Schreibarbeiten foo.netin der Adressleiste eines Webbrowsers und die Eingabetaste drücken soll im Browser führen versucht , eine Verbindung zu öffnen , um 127.0.0.1:80. Wenn nicht, gibt es irgendwo einen Fehler.
Eliah Kagan
@EliahKagan - Ah! ja Ja natürlich. In diesem Fall ist der Computer von einem Dämon besessen, wenn er nicht funktioniert. Wir brauchen entweder einen Exorzisten und viel Weihwasser oder eine bessere Diagnose des Problems.
Luis Alvarado
Exorzist + Weihwasser und bessere Diagnose scheinen der umsichtigste Weg zu sein. :)
Eliah Kagan
7

Ich weiß, dass dieser Thread ein Jahr alt ist, aber ich bin darauf gestoßen und habe nach Antworten auf das gleiche Problem gesucht. Ich habe endlich eine Lösung gefunden! Es stellt sich heraus, dass die /etc/hostsDatei von DNS vollständig umgangen wird. Um dies zu ändern, müssen Sie das bearbeiten /etc/nsswitch.confund filesunter einschließen hosts. Beispiel unten:

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

Dadurch wird sichergestellt, dass die /etc/hostsDatei in die Namensauflösungsprüfung einbezogen wird. Zuerst wird DNS und dann die hostsDatei überprüft . Ich bin sicher, dass OP diese Informationen nicht mehr benötigt, aber dies ist immer noch gut für alle, die Antworten auf dieses Problem suchen.

Sie müssen auch neu starten, damit dies wirksam wird

Sam Chonburi
quelle
Ich habe "Dateien mdns4_minimal [NOTFOUND = return] dns mdns4" unter Ubuntu 12.04, aber / etc / hosts funktioniert immer noch nicht ... es sieht so aus, als würde ich auf ein anderes Problem stoßen.
Shnatsel
Können Sie den vollständigen Code einfügen?
Sam Chonburi
Hier ist die vollständige Konfigurationsdatei: pastebin.com/hDBGrrwn Ich nehme an, dies ist die Standardeinstellung unter Ubuntu 12.04
Shnatsel
Alles sieht richtig aus. Was versuchst du zu tun?
Sam Chonburi
Ich habe nicht verstanden: Was muss ich in dieser Zeile hinzufügen? /etc/hosts? hosts? Oder was?
Hi-Angel
2

Ich glaube, dass etc/hostsim Netzwerk-Software-Stack viel mehr Liebhaber als im Browser selbst verwendet werden. Das heißt, Änderungen in dieser Datei sollten sich auf jeden Browser auswirken.

Was Sie sehen, kann ein Ergebnis des Zwischenspeicherns von DNS-Einträgen durch Firefox sein. Wenn Sie also die Website in Firefox geöffnet haben, merkt sich Firefox die IP-Adresse, die der Domain adobe.com entspricht. Sie haben /etc/hostsdie Seite geändert und neu geladen. Firefox gibt keine neue DNS-Abfrage aus und verwendet stattdessen die zwischengespeicherten Daten. Anschließend öffnen Sie Chrome, es erstellt eine neue DNS-Abfrage und verwendet die von Ihnen eingegebene /etc/hostsIP-Adresse für adobe.com

Ein Neustart von Firefox sollte das Problem beheben.

Sergey
quelle
2

Alle Antworten sind großartig, aber der kürzeste Weg, dies zu beheben, ist:

Laden Sie nach dem Ändern von / etc / hosts (und möglicherweise dem Neustart von Firefox) die problematische Registerkarte mit neu Ctrl+Shift+R. Es wird jede Art von Cache umgehen, die Firefox möglicherweise hat.

Luka Ramishvili
quelle
1

Mein Problem war, ich hatte mehrere Einträge für denselben Domainnamen. Das System sah nur das erste Auftreten.

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

Könnten Sie versuchen:

  1. Bearbeiten Sie die Datei / etc / hosts.
  2. Fügen Sie die nächsten Zeilen hinzu

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

In Ubuntu 14.04, als ich die Datei / etc / hosts so änderte, dass nur ein Host pro Zeile für mich funktionierte, hatte ich stundenlang Probleme mit der Arbeit mit einem IP-Host-Host-Host, als in jeder Zeile in IP-Host geändert wurde und es funktionierte>. <

Michael
quelle
0

Ich hatte das gleiche Problem auf verschiedenen Versionen von Ubuntu. Der letzte hat am 17.04 und 16.04 seinen hässlichen Kopf aufgerichtet. Ich stellte fest, dass ich die Hosts-Datei wie folgt formatieren musste:

127.0.0.1 localhost

127.0.0.1 www.facebook.com facebook.com

dh du musst in die url sowohl das www als auch dann wieder ohne eingeben. Ich habe keine Ahnung, warum das funktioniert. Speichern Sie einfach die Datei und pingen Sie die URL wie folgt an:

ping www.facebook.com

und es sollte in die Loopback-Adresse oder eine andere Adresse aufgelöst werden, die Sie möchten.

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

Hat für mich gearbeitet.

Jules
quelle