Dlaczego wynik nslookup zawsze pochodzi z serwera 127.0.0.1


11

Uważam, że jestem dość zdezorientowany, że nslookup zawsze otrzymuje wynik z serwera 127.0.0.1

Czy to dlatego, że Ubuntu używa lokalnej pamięci podręcznej DNS przez dnsmasq ? Ale zamknąłem go i opróżniłem pamięć podręczną dns, a następnie nslookup host, którego nigdy nie odwiedziłem, a wynik nadal wynosi 127.0.0.1.

To mnie bardzo zdezorientowane. Czy ktoś może mi to wyjaśnić? Nawiasem mówiąc, mój serwer DNS jest ustawiony na 8.8.8.8.

Odpowiedzi:


11

Domyślnie Ubuntu rzeczywiście buforuje wpisy DNS za pomocą Dnsmasq. Dnsmasq sprawdza, kiedy wpis DNS nie znajduje się w pamięci podręcznej, dlatego zawsze widzisz localhost( 127.0.0.1) adres IP podczas wyszukiwania DNS bez określania serwera nazw.

Na stronie podręcznika wyjaśniono to w następujący sposób:

Dnsmasq przyjmuje zapytania DNS i albo odpowiada na nie z małej lokalnej pamięci podręcznej, albo przesyła je do prawdziwego, rekurencyjnego serwera DNS. Ładuje zawartość / etc / hosts, dzięki czemu lokalne nazwy hostów, które nie pojawiają się w globalnym DNS, mogą zostać rozwiązane, a także odpowiada na zapytania DNS dla hostów skonfigurowanych przez DHCP.

To zachowanie można zastąpić, edytując /etc/NetworkManager/NetworkManager.confi zmieniając dns=dnsmasqna #dns=dnsmasq, po czym konieczne będzie ponowne uruchomienie usługi menedżera sieci ( sudo service network-manager restart).

Więcej informacji można znaleźć w dokumentacji społeczności i na stronie podręcznika .


1
Dziękuję za odpowiedź. Nie zdawałem sobie sprawy, że to Dnsmasq sprawdza, kiedy wpis DNS nie znajduje się w pamięci podręcznej. Wielkie dzięki!
47dev47null

co zrobić, jeśli nie ma już dns=dnsmasqlinii?
Douglas Gaskell

@DouglasGaskell: ta odpowiedź jest nieaktualna: Wierzę, że Ubuntu przeszedł na systemd-resolvedwersję 17.04. Patrz: askubuntu.com/questions/907246/…
Silke

2

sprawdź czy

cat /etc/NetworkManager/NetworkManager.conf

[Główny]

wtyczki = ifupdown, plik klucza

dns = dnsmasq

[ifupdown]

zarządzany = fałsz

hash (#) out dns = dnsmasq

zapisz plik i uruchom ponownie sieć.

Jeśli nie chcesz lokalnego resolvera, możesz go wyłączyć DNSMASQ, wykonując następującą procedurę

Musisz edytować plik /etc/NetworkManager/NetworkManager.conf

gksudo gedit /etc/NetworkManager/NetworkManager.conf

i skomentuj następujący wiersz z

dns=dnsmasq

do

#dns=dnsmasq

Zapisz i zamknij plik

Teraz musisz zarządzać siecią za pomocą następującego polecenia

sudo restart network-manager

Ref: http://www.stgraber.org/2012/02/24/dns-in-ubuntu-12-04/

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.