Używam Debian Jessie i próbuję skonfigurować dnsmasq jako buforujący serwer DNS. Użyłem przewodnika, aby wymyślić następujące rzeczy /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
Robienie sudo service dnsmasq restart
nie powiedzie się i nie zacznie się, mówiąc mi
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, trochę dziwne, że konfiguracja prosto z przewodnika nie powiodła się. Po prostu usunę no-poll
opcję, aby zobaczyć, czy to działa. Tym razem zaczyna się dobrze, ale rozdzielczość DNS wyraźnie nie działa. Odpowiednie pliki:
/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
Trzeci plik wydaje się być plikiem resolv.conf na żywo dnsmasq, ponieważ dodanie do niego wiersza serwera nazw, gdy dnsmasq jest już uruchomiony, powoduje natychmiastowe uruchomienie rozpoznawania DNS. Wygląda na to, że zignorowałem mój /etc/resolv.dnsmasq
. Próbowałem również dodanie odpowiedniego wiersza do mojego serwera nazw /etc/resolv.conf
i usuwania resolv-file
linię /etc/dnsmasq.conf
, ale robi overwritted natychmiast, co widać powyżej po robi sudo service dnsmasq restart
.
Co się dzieje z dnsmasq i czy mogę skonfigurować dnsmasq jako buforujący serwer DNS?
server=8.8.8.8
w konfiguracji dnsmasq?no-poll
zasadzie mówi się, aby zignorowaćresolv-file
. Przy uruchamianiu pobiera dowolny plik, który jest nowszy, więc tak będzie/etc/resolv.conf
w Twoim przypadku (ponieważ zostanie przepisany, gdy coś się zmieni).Odpowiedzi:
Wygląda na to, że w skrypcie startowym występuje błąd,
dnsmasq
który służyresolvconf
do zamykania lokalnego resolvera, jeśli lokalny interfejs sprzężenia zwrotnego nie jest jawnie zaznaczonyexcept
w/etc/defaults/dnsmasq
pliku.Krótka odpowiedź jest taka, że możesz dodać ...
aby
/etc/defaults/dnsmasq
rozwiązać ten problem.Aby uzyskać więcej informacji, zobacz to pytanie ...
/raspberrypi/37439/proper-way-to-prevent-dnsmasq-from-overwriting-dns-server-list-supplied-by-dhcp
źródło
bigjosh ma rację - z wyjątkiem aktualizacji dnsmasq, a teraz jest opcja, na końcu
/etc/default/dnsmasq
której możesz usunąć haszowanie:źródło
/etc/defaults/dnsmasq
miałIGNORE_RESOLVECONF=yes
instrukcje, jak usunąć komentarz, aby rozwiązać ten problem, czego nie zrobił.Nie używaj
Umieść serwer dns w pliku dnsmasq.conf, np
I dodaj do dnsmasq.conf
źródło
Jeśli chcesz po prostu serwer DNS buforowania tylko i nic poza tym, że wyobraźnia dnsmasq może zrobić, by być lepiej instalowania bądź
lwresd
albounbound
i za pomocą domyślnej konfiguracji czas, który daje serwera DNS tylko do buforowania. Następnie wystarczy ustawić/etc/resolv.conf
„nameserver 127.0.0.1” i gotowe.Zaletą jest to, że te dwa pakiety nie mieszają się z tym, co
/etc/resolv.conf
robi dnsmasq, a zatem jest czystszym rozwiązaniem IMHO. Zazwyczaj można również usunąćresolvconf
pakiet, aby nic nie zadzierało/etc/resolv.conf
.Do Twojej wiadomości, dnsmasq stało się dość skomplikowane, zbyt wiele dzwonków i gwizdków i powoduje już ból u większości ludzi. Narusza KISS w mojej książce.
źródło
dnsmasq-base
, jaknetwork-manager
ilibvirt-bin
(jeśli robisz KVM), więc nie zawsze można całkowicie się go pozbyć. W takim przypadku możesz usunąć/usr/sbin/dnsmaq
i ustawić go jako stały link, aby/bin/true
zawsze się udawał (oszukać skrypt init), a następniechattr +i /usr/sbin/dnsmasq
zablokować jego aktualizację. Musiałem to zrobić na kilku laptopach.