Jaki jest mój serwer DNS?


22

Mój plik /etc/resolv.conf wygląda następująco:

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 127.0.1.1

# OpenDNS Fallback (configured by Linux Mint in /etc/resolvconf/resolv.conf.d/tail).
nameserver 208.67.222.222
nameserver 208.67.220.220   

Kiedy używam nslookup, wydaje mi się, że używam 127.0.1.1:

moose@pc08 ~ $ nslookup www.google.com
Server:     127.0.1.1
Address:    127.0.1.1#53

Non-authoritative answer:
Name:   www.google.com
Address: 173.194.44.17
Name:   www.google.com
Address: 173.194.44.16
Name:   www.google.com
Address: 173.194.44.19
Name:   www.google.com
Address: 173.194.44.18
Name:   www.google.com
Address: 173.194.44.20

Ale kiedy klikam prawym przyciskiem myszy menedżera sieci i klikam „informacje o połączeniu”, otrzymuję:

informacje o połączeniu

whois 217.0.43.129 ujawnia, że ​​należy do Deutsche Telekom AG, mojego dostawcy usług internetowych.

Dlaczego menedżer sieci wyświetla te informacje? Z jakiego serwera DNS obecnie korzystam?

dnsmasq

Tak, wydaje mi się, że uruchamiam dnsmasq:

moose@pc08 ~ $ ps aux | grep dnsmasq
nobody    1479  0.0  0.0   5468  1404 ?        S    14:16   0:00 /usr/sbin/dnsmasq --no-resolv --keep-in-foreground --no-hosts --bind-interfaces --pid-file=/var/run/sendsigs.omit.d/network-manager.dnsmasq.pid --listen-address=127.0.1.1 --conf-file=/var/run/nm-dns-dnsmasq.conf --cache-size=0 --proxy-dnssec --enable-dbus=org.freedesktop.NetworkManager.dnsmasq --conf-dir=/etc/NetworkManager/dnsmasq.d

Odpowiedzi:


17

Używasz dnsmasq, lekkiego serwera DNS do przekazywania dalej, który działa lokalnie pod kontrolą NetworkManager. Dnsmasq przekazuje zapytania DNS do serwerów DNS, których adresy zostały dostarczone przez serwer DHCP. Możliwe jest również ustawienie tych adresów serwerów DNS statycznie za pomocą Edytora połączeń.

Plik dnsmasqwykonywalny jest dostarczany przez pakiet dnsmasq-base, od którego zależy pakiet menedżera sieci. Istnieje również pakiet o nazwie po prostu „dnsmasq”, który również zależy od dnsmasq-base, ale ten pakiet „dnsmasq” powinien zostać zainstalowany tylko wtedy, gdy chcesz uruchomić dnsmasqniezależnie od NetworkManagera, aby skorzystać z funkcji innych niż zwykłe przekazywanie DNS.


@ jdthood - twoje zmiany są dość obszerne i można je interpretować jako wykraczające poza intencje PO. Utwórz własną odpowiedź, jeśli jest to wymagane, aby poprzeć swoje przemyślenia. Dzięki.
fossfreedom

@jdthood: Doceniam twój wysiłek, aby zapewnić poprawną odpowiedź. Rozumiem jednak, że domyślnym zachowaniem dnsmasqa, zintegrowanego z NetworkManager, jest buforowanie 150 wpisów zgodnie z ich odpowiednimi ustawieniami TTL.
Roy

Domyślnie pamięć podręczna NM-dnsmasq jest wyłączona. Zrób ps -ef|grep dnsmasqi poszukaj opcji --cache-size=0.
jdthood

1
To nie jest przypadek na moim polu 12.04, ale wyszukiwarka Google pokazuje, że masz rację, to jest domyślna wartość zarówno w 12.04, jak i 12.10. Tak więc buforujący serwer DNS z wyłączonym buforowaniem :)
Roy

Wygląda na to, że dnsmasq używa najbliższego serwera dns (tj. tego, do którego może najszybciej dotrzeć), jeśli określisz dwa lub więcej w ustawieniach. Ma to sens z punktu widzenia (zapewniającego szybsze) wrażenia użytkownika. Poza tym w pliku resolv.conf wspomniano o drugim, OpenDNS jako rezerwowym, a nie podstawowym, prawda?
Sergiy Kolodyazhnyy

17

Jako rozszerzenie odpowiedzi happyskeptic nie musisz określać interfejsu. To dla mnie to robi:

> nmcli dev show | grep DNS
IP4.DNS[1]:                             172.22.216.251
IP6.DNS[1]:                             2a01:4f0:400c:1::1

Do Ubuntu 14.04 i starszych wersji nmcli dev list | grep DNS

> nmcli dev list | grep DNS
IP4.DNS[1]:                             172.22.216.251
IP6.DNS[1]:                             2a01:4f0:400c:1::1

1
Mój system Ubuntu 16 chcenmcli dev show
północ

To dlatego, że nmcliwersja została zmieniona od Ubuntu 15.04 z powodu przejścia na inny system init, więc tak, w nowszych wersjach polecenie jest nieco inne
Sergiy Kolodyazhnyy

Kiedy jestem zalogowany do mojej sieci służbowej za pomocą NetworkManager i VPNC, nie widzę serwera DNS mojej pracy na tym wyjściu, nawet jeśli wyraźnie to rozwiązuje. Nie wiem (jeszcze) jak zobaczyć serwera DNS VPN.
Peter V. Mørch

1
Aby dnsmasq pokazywał DNS, którego używa, można wysłać mu sygnał USR1, a następnie zrzuci statystyki i tym podobne do syslog. Tak więc: tail -F /var/log/syslog | grep dnsmasq.\*Server & sudo pkill -USR1 dnsmasq
Alexander Skwar

7

Odkryłem, że w Kubuntu 14.04 aplet NetworkManager (lub Plazma, jakkolwiek to się nazywa) w KDE nie wyświetla informacji o serwerze DNS pod szczegółami połączenia.

W takim przypadku sposobem na znalezienie go jest uruchomienie następującego wiersza poleceń i poszukiwanie wierszy „IP4.DNS”:

nmcli dev list iface wlan0

(zamień wlan0 na interfejs używany do łączenia się z siecią)


Świetny! Pomoże mi, gdy DNS zniknie ...
karatedog

1
nmcli device show wlan0w moim przypadku
Searene

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.