Ich habe den DNS-Server (lokale Instanz von Dnsmasq) installiert und konfiguriert, der sich wie gewünscht in localhost auflöst. Alles in Ordnung.
Wenn ich offline gehe, funktioniert es nicht mehr, da OS X den Inhalt von resolv.conf leer lässt und versucht, Änderungen in dieser Datei zu ignorieren.
Irgendeine Idee, wie man DNS auch offline konfiguriert?
Ähnliches Problem (ungelöst): http://blog.steamshift.com/geek/leopard-lookupd-and-local-web-development-sites
Hauptmotivation ist die einfache Entwicklung einer RoR-Anwendung, die Subdomains als Kontoschlüssel verwendet. Und Sie können 127.0.0.1 * .yourapp.local nicht in / etc / hosts verwenden. Ein Typ hat die Domain smackaho.st und srt DNS dafür wie .smackaho.st bei 127.0.0.1 registriert, aber Sie können sie trotzdem nicht verwenden, wenn Sie offline arbeiten.
BEARBEITEN: versucht scutil Befehl, aber es scheint, dass Sie DNS ändern können, wenn Sie offline sind
HINWEIS: Wenn alle Schnittstellen ausgefallen sind, können Sie in Pref keine DNS-Server festlegen. panel.
quelle
Antworten:
SIEHE UPDATE UNTEN!
Ich benutze Dnsmasq auch gerne auf meinem lokalen Computer und hatte auch dieses Problem. Hier ist die Lösung:
Von
man 5 resolver
:/etc/resolver/
ist standardmäßig nicht vorhanden; Sie müssen es selbst erstellen.Auch von der Manpage:
Wenn Sie also alle DNS-Abfragen für die Top-Level-Domain von
dev
an den lokalen Nameserver weiterleiten möchten, würden Sie:configd
Ändert keine Dateien in/etc/resolver/
, daher bleibt diese Einstellung bei Netzwerkänderungen und Neustarts erhalten.UPDATE 17. Juli 2012
Leider
scutil --dns
verschwindet ab OS X Lion der Top-Resolver (wie von gezeigt ), wenn keine Schnittstellen aktiv sind:Beachten Sie, dass der Resolver 1 leer ist, der von / etc / resolver abgeleitete Nameserver-Eintrag jedoch erhalten bleibt.
Da Sie die Resolver-Domäne direkt in der Datei / etc / resolver / angeben können, wird durch die Angabe der speziellen Internet-Stammdomäne
.
ein globaler Resolver-Eintrag erstellt, der wie folgt aussieht:Jetzt werden alle DNS-Abfragen auch offline an localhost weitergeleitet.
Natürlich müssen Sie die von Ihnen ausgewählten Domains immer noch als 127.0.0.1 auflösen, indem Sie die Option --address von dnsmasq verwenden:
In Summe:
vgl. http://opensource.apple.com/source/configd/configd-395.11/dnsinfo/dnsinfo_flatfile.c
quelle
scutil --dns
No DNS configuration available
Warum nicht stattdessen die Einträge in / etc / hosts machen? Es fällt mir schwer, mir eine Situation vorzustellen, in der Sie tatsächlich einen vollwertigen DNS-Server ausführen müssen. Ich verwende ständig Einträge in Hostdateien, um auf meinen Macs solche Aufgaben auszuführen.
Der Resolver unter OS X funktioniert anders als unter Linux oder anderen Unixen. Dies ist wahrscheinlich ein Teil dessen, was dir Kummer bereitet. Wie zum Beispiel hat es Voreinstellungen für die zuerst zu verwendende Auflösungsmethode und speichert die Ergebnisse aller Abfragen für einen bestimmten Zeitraum im Cache.
Haben Sie den DNS-Server zur Benutzeroberfläche im Bereich "Netzwerkeinstellungen" hinzugefügt? Dies sollte sicherstellen, dass der Resolver diesen Server für seine Abfragen verwendet, falls er nach einem DNS-Eintrag sucht.
quelle
(Beantwortung b / c kann ich noch nicht kommentieren ...)
Wie gehst du offline?
(Beste Antwort, die ich gerade habe)
Sie sollten also in der Lage sein, etwas in die Benutzeroberfläche einzugeben, und es sollte bleiben. Ich hatte dies ein paar Mal getan, als ich den DNS-Server nicht mochte, den mein lokaler DHCP-Server bereitstellt.
quelle
Verfügt OSX über die Konfigurationsdatei /etc/dhcp3/dhclient.conf, die normale Linux / UNIX-DHCP-Client-Konfigurationen haben?
In diesem Fall sollte eine Zeile vorhanden sein, für die Sie ein Kommentar abgeben können
Damit der DHCP-Client diese Zeile immer zu Ihrer resolv.conf hinzufügt
quelle
Versuchen Sie, einen zweiten Ethernet-Dienst hinzuzufügen, der mit einer statischen Adresse und 127.0.0.1 als DNS-Server konfiguriert ist. Oder fügen Sie einen Netzwerkspeicherort hinzu, der Ihren DNS-Server auf 127.0.0.1 setzt. Diese beiden Änderungen werden in den "Systemeinstellungen" unter "Netzwerk" vorgenommen.
quelle
Es könnte helfen, einfach zu setzen
in / etc / hosts, daher muss es nicht aufgelöst werden, um localhost zu finden.
quelle