Ich verwende Debian Jessie und versuche, dnsmasq als Caching-DNS-Server zu konfigurieren. Ich habe einen Leitfaden verwendet , um Folgendes zu finden /etc/dnsmasq.conf
:
listen-address=127.0.0.1
bind-interfaces
domain-needed
bogus-priv
no-hosts
dns-forward-max=150
cache-size=1000
neg-ttl=3600
resolv-file=/etc/resolv.dnsmasq
no-poll
Das Tun sudo service dnsmasq restart
schlägt fehl und es beginnt nicht, sagt es mir
Mar 26 17:13:01 user dnsmasq[26743]: dnsmasq: syntax check OK.
Mar 26 17:13:01 user dnsmasq[26746]: dnsmasq: only one resolv.conf file allowed in no-poll mode.
Ok, irgendwie seltsam, dass eine Konfiguration direkt aus einer Anleitung fehlgeschlagen ist. Ich werde nur die no-poll
Option entfernen, um zu sehen, ob es funktioniert. Diesmal fängt es gut an, aber die DNS-Auflösung schlägt eindeutig fehl. Relevante Dateien:
/etc/resolv.conf
::
nameserver 127.0.0.1
/etc/resolv.dnsmasq
::
nameserver 8.8.8.8
/var/run/dnsmasq/resolv.conf
::
nameserver 127.0.0.1
Die dritte Datei scheint die Live-Datei resolv.conf von dnsmasq zu sein, da das Hinzufügen einer Nameserver-Zeile, während dnsmasq bereits ausgeführt wird, dazu führt, dass die DNS-Auflösung sofort funktioniert. Es sieht also so aus, als hätte es meine ignoriert /etc/resolv.dnsmasq
. Ich habe auch versucht, eine Nameserver-Zeile zu meiner hinzuzufügen /etc/resolv.conf
und die resolv-file
Zeile darin zu entfernen /etc/dnsmasq.conf
, aber sie wird sofort auf das überschrieben, was Sie oben sehen sudo service dnsmasq restart
.
Was ist mit dnsmasq los und konfiguriere ich dnsmasq als Caching-DNS-Server?
server=8.8.8.8
Ihre dnsmasq-Konfiguration ein?no-poll
sagt im Grunde, das zu ignorierenresolv-file
. Beim Start wird die jeweils neuere Datei benötigt, sodass dies/etc/resolv.conf
in Ihrem Fall der Fall ist (da sie neu geschrieben wird, wenn sich etwas ändert).Antworten:
Es scheint ein Fehler in dem Start-up - Skript zu sein ,
dnsmasq
dass Anwendungenresolvconf
die lokalen Resolver verprügeln , wenn die lokale Loopback - Schnittstelle nicht explizitexcept
in der -ed -/etc/defaults/dnsmasq
Datei.Die kurze Antwort ist, dass Sie hinzufügen können ...
auf ,
/etc/defaults/dnsmasq
um das Problem zu lösen.Weitere Informationen finden Sie in dieser Frage ...
/raspberrypi/37439/proper-way-to-prevent-dnsmasq-from-overwriting-dns-server-list-supplied-by-dhcp
quelle
bigjosh hat recht - außer dass es ein Update für dnsmasq gab und es jetzt eine Option gibt, an deren Ende
/etc/default/dnsmasq
Sie den Hash entfernen können:quelle
/etc/defaults/dnsmasq
hatteIGNORE_RESOLVECONF=yes
mit Anweisungen Kommentar- es , dieses Problem zu lösen, die es nicht taten.Nicht benutzen
Fügen Sie den DNS-Server in die Datei dnsmasq.conf ein
Und in dnsmasq.conf hinzufügen
quelle
Wenn Sie nur einen Nur-Caching-DNS-Server möchten und nichts anderes, was dnsmasq kann, sollten Sie entweder
lwresd
oderunbound
die Standardkonfiguration installieren, die Ihnen einen Nur-Caching-DNS-Server bietet. Dann setzen Sie einfach/etc/resolv.conf
"Nameserver 127.0.0.1" und fertig.Das
/etc/resolv.conf
Schöne ist, dass diese beiden Pakete nicht mit dem herumspielen, was dnsmasq tut, und daher meiner Meinung nach eine sauberere Lösung sind. Normalerweise können Sie dasresolvconf
Paket auch entfernen , damit nichts herumspielt/etc/resolv.conf
.Zu Ihrer Information, dnsmasq ist ziemlich kompliziert geworden, zu viele Schnickschnack und verursacht den meisten Menschen nur noch Schmerzen. Verstößt gegen KISS in meinem Buch.
quelle
dnsmasq-base
, wienetwork-manager
undlibvirt-bin
(wenn Sie KVM ausführen) ab, so dass es nicht immer möglich ist, es vollständig zu entfernen. In diesem Fall können Sie es löschen/usr/sbin/dnsmaq
und zu einem festen Link machen,/bin/true
damit es immer erfolgreich ist (um das Init-Skript zu täuschen). Dann könnenchattr +i /usr/sbin/dnsmasq
Sie verhindern, dass es aktualisiert wird. Ich musste dies auf mehreren Laptops tun.