Що таке мій DNS-сервер?


22

Мій /etc/resolv.conf виглядає так:

# 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   

Коли я використовую nslookup, я, здається, використовую 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

Але коли я клацаю правою кнопкою миші на мережевому менеджері та натискаю "Інформація про з'єднання", я отримую:

інформація про з'єднання

whois 217.0.43.129 виявляє, що це належить Deutsche Telekom AG, моєму провайдеру.

Чому менеджер мережі показує цю інформацію? Який DNS-сервер я зараз використовую?

dnsmasq

Так, я, здається, запускаю 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

Відповіді:


17

Ви використовуєте dnsmasqлегкий DNS-сервер для переадресації, який працює локально під управлінням NetworkManager. Dnsmasq пересилає запити DNS до серверів DNS, адреси яких надано сервером DHCP. Також можна встановити ці адреси DNS-серверів статично за допомогою Редактора з'єднань.

Виконавчий dnsmasqфайл надається базовим пакетом dnsmasq, від якого залежить пакет мережевого менеджера. Існує також пакет, який називається просто "dnsmasq", який також залежить від dnsmasq-base, але цей "dnsmasq" пакет повинен встановлюватися лише в тому випадку, якщо ви хочете запустити dnsmasqнезалежно від NetworkManager, щоб скористатися можливостями, відмінними від простої пересилання DNS.


@jdthood - ваші зміни досить масштабні і можуть бути витлумачені так, щоб вийти за межі оперативної програми. Будь ласка, створіть власну відповідь, якщо це потрібно для підтримки ваших думок. Спасибі.
fossfreedom

@jdthood: Я ціную ваші зусилля, щоб забезпечити правильну відповідь. Однак я розумію, що поведінка dnsmasq за замовчуванням, інтегрована з NetworkManager, полягає в кешуванні 150 записів відповідно до їх відповідних налаштувань TTL.
Рой

За замовчуванням кеш NM-dnsmasq вимкнено. Зробіть ps -ef|grep dnsmasqі шукайте варіант --cache-size=0.
jdthood

1
Це не так у вікні 12.04, але пошук у Google показує, що ви праві, що є типовим для 12.04 та 12.10. Отже, кешуючий DNS-сервер із відключеним кешуванням тоді :)
Roy

Схоже, dnsmasq використовує найближчий dns-сервер (тобто той, до якого він може дістатися найшвидше), якщо ви вказали два чи більше у своїх налаштуваннях. Що має сенс з (забезпечення швидшого) з точки зору досвіду користувачів. Плюс до цього, файл resv.conf згадував інший, OpenDNS як резервний, а не первинний, правда?
Сергій Колодяжний

17

У міру розширення відповіді happyyskeptic не потрібно вказувати інтерфейс. Це для мене це:

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

Для Ubuntu 14.04 та старіших версій 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
Моя система Ubuntu 16 хочеnmcli dev show
нормально

Це тому, що nmcliверсія була змінена з Ubuntu 15.04 через перехід на іншу систему init, так, так, в нових версіях команда дещо інша
Сергій Колодяжний

Коли я входжу в свою робочу мережу за допомогою NetworkManager і VPNC, я не бачу DNS-сервера своєї роботи в цьому виході, навіть якщо це чітко вирішено. Я ще не знаю, як бачити VPN-сервер VPN.
Петро В. Морч

1
Для того, щоб dnsmasq показав DNS, який він використовує, можна надіслати йому сигнал USR1, і він потім скидає статистику та інше в syslog. Отже, робіть: tail -F /var/log/syslog | grep dnsmasq.\*Server & sudo pkill -USR1 dnsmasq
Олександр Сквавар

7

Я виявив, що на Kubuntu 14.04 аплет NetworkManager (або в плазмі, як би це не називалося) у KDE не відображає інформацію про сервер DNS під деталями з'єднання.

У цьому випадку спосіб знайти це запустити наступне в командному рядку та шукати рядки 'IP4.DNS':

nmcli dev list iface wlan0

(замініть wlan0 інтерфейсом, який ви використовуєте для підключення до мережі)


Чудово! Він допоможе мені, коли DNS зникне ...
karatedog

1
nmcli device show wlan0у моєму випадку
Searene

1

Ви використовуєте 217.0.43.129. якщо ваш основний та вторинний DNS не знайдені, він перейде до вашого маршрутизатора та використає сервер DNS, налаштований у маршрутизаторі. Якщо цей DNS також не вдасться, він, ймовірно, спробує підключитися до сервера openDNS. як налаштовано в /etc/resolv.conf.

https://lists.isc.org/pipermail/bind-users/2006-O жовтня/064570.html

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.