Die Datei OS X 10.10.1 / etc / hosts & / private / etc / hosts wird ignoriert und nicht aufgelöst


40

Wie der Titel schon sagt, läuft os x 10.10.1. wenn ich einen eintrag in meiner hosts-datei habe und a mache digoder nslookupes immer noch eine andere IP anzeigt als in meiner hosts-datei, auch nachdem ich versucht habe, verschiedene caches zu leeren.

Ich habe folgendes ausprobiert ..

  1. mdns und udns Caches leeren mit:
    1. sudo discoveryutil mdnsflushcache;
    2. sudo discoveryutil udnsflushcaches;
  2. Cache leeren mit dscacheutil -flushcache
  3. Laden Sie die discoveryd.plistDatei neu
    1. sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.discoveryd.plist
    2. sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.discoveryd.plist

Meine Hosts-Datei sieht so aus.

% cat /private/etc/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
::1             localhost
fe80::1%lo0 localhost
166.78.60.102   admin.devsite1.com

3
Es scheint, dass Yosemite Hosts nicht auf die gleiche Weise wie zuvor verwendet. es funktioniert nicht bündig Caches auf die gleiche Weise entweder & mDNS hat einen Rücksitz genommen - Dies hat eine ganze Reihe von Geschwätz über das Thema - forums.macrumors.com/showthread.php?t=1741422 bearbeiten ahh ... Ich denke , Sie haben bereits so weit wie azchipka.thechipkahouse.com/…
Tetsujin

danke, ja ich habe das schon gelesen .. wenn das so ist wie os x sein wird .. es ist beschissen: \
gorelative

1
Ich bin froh, dass ich mich nicht auf Hosts auf dem Mac verlassen muss, tbh; Ich spiele in der Regel immer in Win, wenn ich das tun muss - obwohl das nicht das einzige ist, das mich derzeit von Yosemite fernhält :(
Tetsujin,

Ja, mein rmbp ist leider die primäre Entwicklungsmaschine, die ich für Webentwicklung / Sysadmin benutze, und ich muss das herausfinden, sonst werde ich zurück zu Außenseitern rollen.
gorelative

Andere möchten möglicherweise nur ipv6 auf ihren Workstations deaktivieren. Dies erklärt den Schlüssel: technipages.com/how-to-disable-ipv6-in-macos-sierra - Das Problem blieb jedoch auch nach dem Deaktivieren von ipv6 auf meinem Nic bestehen .
James T Snell

Antworten:


61

/ private / etc / hosts scheint in Yosemite (Version 10.10.1) normal zu funktionieren. Der Cache muss nicht geleert oder zurückgesetzt werden discoveryd(der DNS-Resolver in Yosemite). sudo fs_usage | grep private/etc/hostsZeigt das discoverydLesen der Datei unmittelbar nach dem Speichern der Änderungen an.

[Update: discoverydwurde nur in den OS X-Versionen 10.10.0 - 10.10.3 verwendet. mDNSResponderBietet in früheren und späteren Versionen dieselbe Funktion ... und bemerkt Änderungen in / etc / hosts sofort.]

Allerdings dig, nslookupund hostnicht Einträge darin sehen , weil sie Bypass des Resolver System und roh DNS - Lookups tun. Das haben sie schon immer gemacht, also ist das in Yosemite nicht neu. Die "offizielle" Methode zum Durchsuchen des System-Resolvers in OS X besteht darin, Folgendes zu verwenden dscacheutil:

dscacheutil -q host -a name www.example.com

... aber da das schmerzhaft wortreich ist, benutze ich eher pingstattdessen (und schaue dann in die erste Zeile, in der aufgelistet ist, welche IP es pingt). Ab 10.9 können Sie auch die Registerkarte Lookup des Netzwerkdienstprogramms verwenden (zuvor wurde digdie System-Lookup-Richtlinie umgangen).

Übrigens, beachten Sie bitte nicht den Makrothread, den Tetsujin verlinkt hat. Es ist voll von Leuten, die nicht genau wissen, was sie tun und die Ergebnisse ihrer eigenen Fehler missverstehen.


1
danke gordon, ja mir wurde klar, nachdem ich das gepostet dighatte nslookup, und hostverwende keine lokale dns auflösung. That being said /etc/hostsfunktioniert wie erwartet ..
gorelative

Wenn ich meine /etc/hostsDatei oder meine /private/etc/hostsDatei aktualisiere , wird dies mit dscacheutil -q host -a name www.example.comkeinem anderen Befehl wiedergegeben.
Trip

3
@Trip Vergewissern Sie sich, dass die von Ihnen hinzugefügten Einträge korrekt formatiert sind: IP-Adresse, gefolgt von einem Leerzeichen oder einem Tabulator, gefolgt vom Namen und einem Zeilenvorschub am Ende der Zeile. Versuchen Sie, die hosts-Datei mit cat -vet /etc/hostszu drucken , um normalerweise unsichtbare Zeichen sichtbar zu machen. Jede Zeile sollte wie folgt aussehen: "127.0.0.1 ^ Inetsecuritybureau.com $" (das "^ I" ist ein Tabulator und das "$" ist der Zeilenvorschub) oder "127.0.0.1 netsecuritybureau.com $". Wenn Sie ein "^ M" (Wagenrücklauf) direkt vor dem "$" sehen, haben Sie DOS / Windows-formatierten Text und müssen die Wagenrückläufe entfernen.
Gordon Davisson

Ah wow, vielen Dank für die Hilfe. Ich bin Ihrer Anleitung gefolgt, um sicherzustellen, dass es sich um einen Tabulator oder ein Leerzeichen handelt. Meine Zeile lautet genau:, habe M127.0.0.1^Iyoutube.com^M^Mich dann ausgeführt dscacheutil -flushcache; sudo killall -HUP mDNSResponderund beim Navigieren zu youtube.com wird immer noch youtube und nicht localhost angezeigt.
Trip

@Trip Es gibt eine Reihe von Möglichkeiten, unsichtbare Zeichen wie die in der Befehlszeile zu entfernen. Ich empfehle jedoch den GUI-Editor TextWrangler - verwenden Sie Menü Ansicht> Textanzeige > Unsichtbare Elemente anzeigen, um solche Elemente anzuzeigen (und zu bearbeiten) Wagenrücklauf. Es ist außerdem kostenlos und bietet Optionen zum Anzeigen / Öffnen unsichtbarer Dateien und Ordner (wie / etc) sowie zum Bearbeiten von Systemdateien mit Administratorrechten.
Gordon Davisson

17

Ich habe eine andere Falte mit diesem Problem entdeckt.

Um das Problem zu beheben, musste ich Host-Dateieinträge im IPv6-Stil HINZUFÜGEN.

Es scheint, dass Safari IPv4-Einträge übersieht, wenn Sie eine IPv6-Netzwerkkonfiguration eingerichtet haben.

Sie müssen doppelte Einträge hinzufügen, die in die IPv6-Adresse localhost in / etc / hosts aufgelöst werden.

IPv4-Eintrag 127.68.56.101 facebook.com

zB IPv6-Eintrag fe80::1%lo0 facebook.com

etc.


1
Beachten Sie, dass ich diesen mit den kürzesten IP-Adressen erfolgreich zum Laufen gebracht habe: 0.0.0.0 und :: 1
Ben Morrow,

Danke, hat auch für mich funktioniert. Ich habe mir den Kopf zerkratzt, nachdem ich meine vhosts / apache-Konfiguration nach dem Upgrade wiederhergestellt habe. geschätzt.
Gavin

Ja, das hat es auch für mich behoben.
Advert2013

1

Meine Hosts-Datei wurde weiterhin ignoriert, nachdem ich sie in der Textbearbeitung bearbeitet hatte. Ich habe verschiedene Möglichkeiten zur Behebung der Zeilenenden ausprobiert und IPv6-Einträge zu den vorhandenen IPv4-Einträgen hinzugefügt, ohne dass dies nach der obigen Antwort von JB Smiths erfolgreich war . Ich vermute, seine Antwort würde funktionieren, wenn meine Firma IPv6 unterstützt, was ich nach meinen Versuchen herausgefunden habe.

Die einzige Lösung, die für mich funktioniert hat, ist die Verwendung dieses kostenlosen GUI-Plugins zum Bearbeiten der Hosts-Datei.

https://github.com/specialunderwear/Hosts.prefpane/blob/master/README.mdown


1

Ich habe diesen Artikel gefunden, weil Yosemite 10.10.5 die Änderungen an der Hosts-Datei nicht übernommen hat und ich nichts tun konnte, um sie zu beheben. (Ich habe neu gestartet, versucht, die Caches zu leeren, und alle Ratschläge befolgt, die ich im Internet usw. usw. finden konnte.)

Die Antwort war so einfach, dass es eigentlich peinlich ist, aber ich dachte, ich würde teilen. Ich habe die hosts-Datei mit textedit bearbeitet, und es hat sich die Freiheit genommen, die Datei als hosts.txt zu speichern. Normalerweise würde ich so etwas bemerken, aber ich verwende eine Neuinstallation von Yosemite und habe "Alle Dateierweiterungen anzeigen" noch nicht aktiviert, sodass es nicht so aussah, als hätte sich der Dateiname auf meinem Desktop geändert.

Es liegt also auf der Hand, und die meisten Leute, die diesen Beitrag lesen, haben dies wahrscheinlich bereits getan . Stellen Sie jedoch sicher, dass Ihre hosts-Datei tatsächlich vorhanden ist und nicht durch hosts.txt ersetzt wurde .

Um die Anzeige von Dateinamenerweiterungen zu aktivieren, gehen Sie zu Finder> Einstellungen> Alle Dateinamenerweiterungen anzeigen

Um TextEdit vom Hinzufügen Erweiterung TXT , um Dateien zu stoppen, öffnen Sie eine Datei in Text bearbeiten , und wählen Sie Datei> Speichern unter (Wenn Sie nicht das finden Speichern unter Menüpunkt, halten Sie die Optionstaste , nachdem Sie auf Datei und Speichern unter sollte erscheint im Menü). Suchen Sie nach der Option Wenn keine Erweiterung angegeben ist, verwenden Sie ".txt" und deaktivieren Sie diese.


0

Ich glaube, Apple wird dies als Fehler erkennen (ich habe heute einen eingereicht). Ich habe bemerkt, dass neue Einträge in übernommen /etc/hostswerden, aber Änderungen an vorhandenen Einträgen werden ignoriert. Das Ändern des Hostnamens eines Eintrags (z. B. von web1 in web1a) war für mich eine Problemumgehung.

ALTER / etc / hosts-Eintrag: 54.173.164.18 web1

NEUER / etc / hosts Eintrag: 54.174.161.12 web1a


sudo dscacheutil -flushcache - leert den Verzeichnisdienst-Cache.
Kevin Buchs

0

In meinem Fall würde ich eine .ssh / config einrichten

#Host *.ourdemo.ca
  User jumpy
  ProxyCommand ssh ourjumpbox.ca -W %h:%p

Würde es Ihnen etwas ausmachen zu erklären, was die Konfigurationsdatei macht und wie dies mit der Frage zusammenhängt?
Klanomath

1
Die Frage war, warum ein Eintrag in einer lokalen Datei / etc / hosts ignoriert wurde. In meinem Fall wurde dies ignoriert, da ich angewiesen hatte, den gesamten Datenverkehr über eine Proxy-Box (ourjumpbox.ca) auf eine Reihe von Computern (* .ourdemo.ca) zu tunneln. SSH stellte die Verbindung gehorsam als Proxy zur Verfügung, sodass die Proxy-Datei / etc / hosts verwendet wurde, um die Adresse aufzulösen, und nicht meine lokale Datei / etc / hosts.
Martin Cleaver

0

Ich hatte ein sehr ähnliches Problem, bei dem ich per Post zwei Zeilen erhielt, die zu meinem hinzugefügt wurden /etc/hosts

Die Domain enthielt ein -ähnlichesmy-domain.com

Das Problem erwies sich die E - Mail - Client des Absenders zu sein - ganz gleich , zu sagen, MS Outlook - das ist die ascii konvertiert -in der langen -Zeichen , dass Microsoft so sehr liebt seine eingebettete automatische Korrektur zu verwenden , die ersetzen -mit ihren -.

Die Hosts-Datei sah perfekt aus und es war schwierig, dieses Problem zu finden. Als ich die Zeilen löschte und sie manuell zurückschrieb, begannen sie zu arbeiten.

Es war so schwer zu verstehen, dass ich tief in mich hineinging, warum der MacOS-Client die Hosts-Datei ignorieren und direkt zur Namensauflösung übergehen sollte.


0

Hatte gerade dieses Problem. Dies wurde durch Kopieren / Einfügen aus dem HipChat verursacht, anstatt die Adresse zu schreiben.

Der Kopiervorgang fügte einige fehlerhafte Zeichen anstelle von Leerzeichen hinzu und verursachte das Problem.

Das Umschreiben der Zeile löste das Problem.


0

Ich benutze die App SelfControl (eigentlich unter MacOS Mojave 10.14.4) schon eine Weile und habe mir überlegt, wie SelfControl die Einträge macht ... sie sehen so aus:

0.0.0.0 xyz.com
:: xyz.com
0.0.0.0 www.xyz.com
:: www.xyz.com

basierend darauf habe ich alles auf meinen localhost geändert, also

127.0.0.1
::1

funktioniert.


Ich bin mir nicht sicher, wie dies die Frage überhaupt beantwortet. Es scheint nur eine zufällige Beobachtung zu sein, die nichts mit der Frage zu tun hat.
Tetsujin

1
Können Sie einige Details dazu hinzufügen, wo genau Sie was geändert haben und wie es mit der Frage zusammenhängt?
Nohillside

Die Frage war, warum die hosts-Datei seit 10.10.1 ignoriert wird ... Ich befand mich in der gleichen Situation, in der manuelle Eingaben ignoriert wurden, aber Eingaben, die über die App SelfControl vorgenommen wurden, wie beabsichtigt funktionierten. Was bei meinen vorherigen Einträgen fehlte, war der zweite Teil, Domains mit "www.". Konnte nicht herausfinden, was an meinen Einträgen noch falsch war, da alles vor dem 10.10.1 gut funktionierte.
Needlol
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.