Zu Entwicklungszwecken möchte ich, dass alle DNS-Anfragen an die .dev-TLD an meinen eigenen PC weitergeleitet werden.
Die hosts-Datei reicht nicht aus. Ich verwende mehrere Domains und auch mehrere Subdomains. Ich müsste für jede Kombination eine Zeile hinzufügen.
Ich habe gelesen, dass ein DNS-Forwarder wie DNSmasq verwendet werden kann, um die Arbeit zu erledigen (zum Beispiel wie hier beschrieben ). Auch diese Software ist bereits auf Ubuntu 12.10 installiert.
Das Problem ist, dass ich nicht sehe, wie und wo ich DNSmasq konfigurieren soll, dh wo ich diese Zeile setzen soll:
address=/dev/127.0.0.1
.dev
wie Google es aufgenommen hat. Ich recherchiere immer noch, wofür sie es verwenden und ob sie vorhaben, dass normale Leute sich mit ihm verbinden oder nur Mitarbeiter, aber Sie möchten möglicherweise nicht den gesamten Zugriff umleiten, falls es der erstere ist, es sei denn, dies ist eine reine Testbox stellt keine Verbindung zu externen Hosts herAntworten:
In Ubuntu 12.04 und 12.10 ist nicht standardmäßig das vollständige eigenständige dnsmasq (DHCP- und DNS-Server) installiert, in Ubuntu Desktop 12.04 und 12.10 ist jedoch standardmäßig ein Paket namens dnsmasq-base installiert. Das dnsmasq-base-Paket enthält die dnsmasq-Binärdatei und wird von NetworkManager verwendet.
Um das zu tun, was Sie wollen, müssen Sie dnsmasq als DNS-Cache-Server verwenden. Du brauchst:
Erstellen Sie
/etc/dnsmasq.d/dev-tld
mit diesen Inhalten:Der erste Befehl besagt, dass
*.dev
Anfragen nicht an Ihren realen DNS-Server weitergeleitet werden können. Der zweite besagt,*.dev
zu127.0.0.5
welchem localhost entschieden wird.quelle
In Ubuntu 12.10 oder höher können Sie dies mit dnsmasq tun, wie es von NetworkManager ausgeführt wird.
Erstellen Sie das Verzeichnis,
mkdir /etc/NetworkManager/dnsmasq.d
falls es noch nicht existiert.Werfen Sie die folgende Zeile in
/etc/NetworkManager/dnsmasq.d/dev-tld
.(Ubuntu 12.10) Starten Sie NetworkManager neu.
(Ubuntu> 13.04) Starten Sie Dnsmasq neu.
Genießen Sie die Großartigkeit.
quelle
Folgendes hat in Ubuntu 16.04 für mich funktioniert:
Installieren
dnsmasq
dnsmasq.conf
Datei bearbeiten :Fügen Sie Ihren Befehl hinzu:
Für Platzhalter (*) können Sie dann Punkt (.) Und dann dnsmasq verwenden, um
WHATEWER_YOU_PUT_HERE.yourmachine.yourdomain
dieselbe IP aufzulösen . Z.B,address=/.localhost.dev/127.0.0.1
Starten Sie den dnsmasq-Dienst neu:
quelle
Habe gerade eine neue 19.04 installiert und die einzige Möglichkeit, wie ich sie zum Laufen gebracht
systemd-resolved
habe, war das Deaktivieren undNetworkManager
Verwendendnsmasq
stattdessen für DNS.NetworkManager
hat eingebaute Unterstützung fürdnsmasq
und dasdnsmasq-base
Paket ist standardmäßig installiert.Ich weise mehrere Domains zu verschiedenen VMs wie
*.customerX.test
zu192.168.33.10
und*.productY.test
zu192.168.33.20
und so weiter. Ich würde nicht*.dev
mehr verwenden, sondern eine der reservierten Top-Level-Domains .Lösung
Deaktivieren
systemd-resolved
Bearbeiten
/etc/NetworkManager/NetworkManager.conf
, umdnsmasq
für DNS zu verwenden.dnsmasq
Konfiguration eingeben/etc/NetworkManager/dnsmasq.d/test-tld.conf
und schließlich neu starten,
NetworkManager
wodurch eine neue generiert wird/etc/resolv.conf
quelle