Ich verwende dnsmasq auf einem 2016 MBP mit Mac OS Sierra (10.12.1), aber ich kann keine .dev-Adressen anpingen, obwohl ich die meiner Meinung nach richtige Konfiguration habe. Das Ausführen von dig gibt eine vernünftige Ausgabe zurück.
/usr/local/etc/dnsmasq.conf
resolv-file=/usr/local/etc/resolv-dnsmasq.conf
address=/.dev/127.0.0.1
/etc/resolver/dev
nameserver 127.0.0.1
/usr/local/etc/resolv-dnsmasq.conf
nameserver 8.8.8.8
nameserver 8.8.4.4
Meine DNS-Serverliste in den Systemeinstellungen hat nur einen Eintrag, der auf 127.0.0.1 zeigt.
Wenn ich dig auf einer .dev-Adresse ausführe, erhalte ich die folgende Ausgabe:
; <<>> DiG 9.11.0-P1 <<>> test.dev
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 36126
;; flags: qr aa rd ra ad; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;test.dev. IN A
;; ANSWER SECTION:
test.dev. 0 IN A 127.0.0.1
;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Mon Dec 19 23:13:20 PST 2016
;; MSG SIZE rcvd: 42
Ich kann externe Websites wie google.com perfekt laden, aber wenn ich versuche, auf einen lokalen Webserver zuzugreifen oder sogar eine .dev-Adresse zu pingen, schlägt dies fehl.
Hilfe wäre willkommen!
Ihr dnsmasq-Daemon ist nicht richtig konfiguriert.
Ihr externer Resolver funktioniert: Alle Anfragen an Hosts /Domains, die keine Entwickler sind, werden mit der Zeile an DNS-Server von Drittanbietern weitergeleitet resolv-file=/usr/local/etc/resolv-dnsmasq.conf
- in Ihrem Fall enthält die konfigurierte Datei zwei öffentliche Google-DNS-Server.
Ihr interner Resolver löst jedoch keine internen Namen auf.
Die Zeile address=/.dev/127.0.0.1
oder besser address=/dev/127.0.0.1
leitet jede *.dev-Anfrage an den Host 127.0.0.1 um. Ein interner Resolver wird dann nicht benötigt und der in /etc/resolver/dev definierte interne Nameserver ist nutzlos.
Vergleichen Sie dies mit dem Beispiel in der Datei dnsmasq.conf:
# Add domains which you want to force to an IP address here.
# The example below send any host in double-click.net to a local
# web-server.
#address=/double-click.net/127.0.0.1
Jede Abfrage für *.double-click.net wird an 127.0.0.1 und an eine beliebige Website umgeleitet, die auf localhost bereitgestellt wird.
Ich empfehle dringend, eine hosts.config-Datei zu definieren und dort alle notwendigen Hosts einzutragen/zu definieren:
Fügen Sie eine Zeile addn-hosts=/usr/local/etc/hosts/hosts.conf
in dnsmasq.conf hinzu. Fügen Sie dann einen Ordner mit hinzu sudo mkdir /usr/local/etc/hosts
und erstellen Sie eine Datei hosts.conf
sudo nano /usr/local/etc/hosts/hosts.conf
mit folgendem Inhalt:
127.0.0.1 localhost
127.0.0.1 test.dev
127.0.0.1 test2.dev
...
Laden Sie nach dem Speichern der Datei Ihren dnsmasq-Daemon neu.
Wenn Sie unterschiedliche IPs für Ihre Hostnamen verwenden möchten, z. B.:
127.0.0.1 localhost
127.0.0.2 test.dev
127.0.0.3 test2.dev
...
Sie müssten zusätzliche IPs hinzufügen mit:
sudo ifconfig lo0 alias 127.0.0.2 up
sudo ifconfig lo0 alias 127.0.0.3 up
...
sudo nano ...
oder mit einer GUI wie Gas Mask erfolgen .Die .dev-TLD kann von Entwicklern nicht mehr als private TLD verwendet werden. Ich bin darauf gestoßen und musste die Dinge ändern, um stattdessen ".priv" oder etwas anderes zu verwenden. Die TLD ".dev" ist keine private Sache mehr, da sie jetzt Google gehört und von Chrome und anderen Browsern auf besondere Weise behandelt wird.
Es folgt ein Clip aus dem folgenden Artikel: https://www.tomshardware.com/news/google-enforces-https-tld-hsts,35564.html
„Google hat angekündigt, dass 45 der kürzlich gekauften Top-Level-Domains (TLDs), darunter .dev, .app, .eat usw., die HTTPS-Sicherheit durchsetzen und garantieren, dass alle Verbindungen zu Websites, die diese TLDs verwenden, überverschlüsselt werden Kanäle."
.test
tld ist großartig für lokale und tatsächlich für genau diesen Fall konzipiert!
Steve
klanomath
Steve
klanomath
Steve
klanomath
orthonomie
dscacheutil
hat nicht funktioniert. Scheint, dass macOS X die Resolver nur nach einem Hard-Reset aktualisiert.Chris Carson