Einfache Antwort

Einfache Antwort

Ich habe DNSMASQ installiert, aber es startete nicht, da Port 53 belegt war.

Ich habe herausgefunden, dass Ubuntu bereits über ein DNSMASQ-Paket verfügt und dass es funktioniert.

Jetzt ist das Problem...ich möchte nur in der Lage sein, meine Hosts in /etc/hosts dadurch aufzulösen

zB: nslookup somehostonlan localhost zur Auflösung in eine bestimmte IP aus der Datei /etc/hosts.

Aber das passiert nicht.

Warum? Übrigens, als Cache-DNS-Server funktioniert es einwandfrei. Ich möchte nur, dass es Hosts aus der Datei /etc/hosts auflöst, das ist alles

Antwort1

Um das Internet zu beschleunigen, wurde in Ubuntu 12.04 ein Plugin zu NetworkManager hinzugefügt, um dnsmasq zu starten, einen lokalen DNS-Server, der DNS-Einträge zwischenspeichert. Das Problem ist, dass das Plugin die Zeichenfolge --no-hosts fest codiert hat.

Eine Lösung besteht darin, die Zeile, die das Plugin lädt, in der NetworkManager-Konfigurationsdatei auszukommentieren und NetworkManager neu zu starten:

sudo mv /etc/NetworkManager/NetworkManager.conf /etc/NetworkManager/NetworkManager.conf.bak
sudo bash -c 'cat /etc/NetworkManager/NetworkManager.conf.bak | sed -e "s/^\(dns=dnsmasq\)$/#\1/" > /etc/NetworkManager/NetworkManager.conf'
sudo restart network-manager

Eine andere Lösung besteht darin, dnsmasq zu umschließen, um die unerwünschten Argumente herauszufiltern:

sudo mv /usr/sbin/dnsmasq /usr/sbin/dnsmasq.bin
sudo bash -c 'cat > /usr/sbin/dnsmasq' << EOF
#!/bin/sh
dnsmasq=/usr/sbin/dnsmasq.bin

exec $dnsmasq `echo $@ | sed -e s/--no-hosts//`
EOF

sudo chmod 755 /usr/sbin/dnsmasq

Bitte markieren Sieder Fehlerals Sie zu betreffen.

Eine andere Lösung ohne Patchen von Systemdateien

cat /etc/NetworkManager/dnsmasq.d/hosts.conf 

addn-hosts=/etc/hosts

Antwort2

Dieser Fehler betrifft mich auch heute noch (Ubuntu 14.04).

Schließlich habe ich eine Lösung gefunden, bei der einfach die Zeile „addn-hosts=/etc/hosts“ zur dnsmasq-Konfigurationsdatei des Newworkmanager-Pakets hinzugefügt wird.

echo 'addn-hosts=/etc/hosts' > /etc/NetworkManager/dnsmasq.d/etc-hosts
service network-manager restart

Die Idee ist, dass wir /etc/hosts als zusätzliche Hostdatei hinzufügen.

Selbst wenn ich eine Lösung finden könnte, enttäuscht mich die fest codierte Option „--no-hosts“ in der Binärdatei /usr/sbin/NetworkManager.

Antwort3

Stand August 2015 sind die anderen Antworten veraltet.

Einfache Antwort

  1. Erstellen /etc/NetworkManager/dnsmasq.d/hosts.conf.
  2. Fügen Sie Zeilen wie address=/whatever/1.2.3.4diese ein. Siehedie Dokumente (suchen Sie nach --address). Platzhalter sind möglich: address/.whatever./1.2.3.4.
  3. Töten dnsmasq(Insekt).
  4. Starten Sie es neu: $ service network-manager restart.

Antwort4

dnsmasq sollte die Datei automatisch verwenden . Dies kann durch die Befehlszeilenoption oder die Konfigurationsoption /etc/hostsdeaktiviert werden . Ich würde nicht erwarten, dass eine der beiden Optionen in der Standardkonfiguration festgelegt ist.-hno-hosts

Versuchen Sie, dnsmasq zu zwingen, seine Hosts-Datei neu zu laden. (Änderungen an der Konfigurationsdatei erfordern einen Neustart). Jeder dieser Befehle sollte funktionieren.

service dnsmasq reload

kill -HUP $(pidof dnsmasq)

Wenn Sie mit einem System arbeiten, das no-hostsangegeben hat, sollten Sie die Option verwenden können, addn-hostsum es zu überschreiben. Normalerweise wird dies verwendet, um eine zusätzliche Datei im /etc/hostsFormat zu lesen. Dies kann verwendet werden, um zusätzliche Hostdaten anzugeben, die DNS bereitstellen soll, die Sie aber nicht in Ihrer /etc/hostsDatei haben möchten. Dies kann verwendet werden, um dem Paketmanager und zugehörigen Tools die Verwaltung zu ermöglichen, /etc/hostswährend zusätzliche Hostdaten in einer alternativen Datei bereitgestellt werden.

verwandte Informationen