Почему результат nslookup всегда приходит с сервера 127.0.0.1


11

Я нахожу довольно смущенным, что nslookup всегда получает результат от сервера 127.0.0.1

Это связано с тем, что Ubuntu использует локальный кэш DNS от dnsmasq ? Но я закрыл его и очистил мой DNS-кеш, затем nslookup хост, который я никогда не посещал, затем вывод по-прежнему 127.0.0.1.

Это меня смущает. Кто-нибудь может объяснить это для меня? Кстати, мой DNS-сервер настроен на 8.8.8.8.

Ответы:


11

По умолчанию Ubuntu действительно кэширует записи DNS с помощью Dnsmasq. Dnsmasq выполняет поиск, когда запись DNS не находится в своем кэше, поэтому вы всегда будете видеть IP-адрес localhost( 127.0.0.1) при выполнении поиска DNS без указания сервера имен.

На странице руководства это объясняется следующим образом:

Dnsmasq принимает DNS-запросы и отвечает на них из небольшого локального кэша или перенаправляет их на реальный рекурсивный DNS-сервер. Он загружает содержимое / etc / hosts так, что локальные имена хостов, которые не отображаются в глобальном DNS, могут быть разрешены, а также отвечает на запросы DNS для хостов, настроенных по протоколу DHCP.

Это поведение можно /etc/NetworkManager/NetworkManager.confизменить , отредактировав и изменив dns=dnsmasqна #dns=dnsmasq, после чего вам необходимо перезапустить службу сетевого менеджера ( sudo service network-manager restart).

Дополнительную информацию можно найти в документации сообщества и на странице руководства .


1
Спасибо за ответ. Я не понял, что это Dnsmasq выполняет поиск, когда запись DNS не находится в кэше. Большое спасибо!
— 47dev47null

что делать если уже нет dns=dnsmasqлинии?
— Дуглас Гаскелл

@DouglasGaskell: этот ответ устарел: я считаю, что Ubuntu перешла на systemd-resolvedверсию 17.04. См .: askubuntu.com/questions/907246/…
— Silke

2

проверить, если

cat /etc/NetworkManager/NetworkManager.conf

[основной]

плагинов = ifupdown, файл_ключа

= Dnsmasq DNS

[Ifupdown]

удалось = ложь

hash (#) out dns = dnsmasq

сохраните файл и перезапустите сеть.

Если вам не нужен локальный преобразователь, вы можете отключить его DNSMASQ, используя следующую процедуру

Вам нужно отредактировать файл /etc/NetworkManager/NetworkManager.conf

gksudo gedit /etc/NetworkManager/NetworkManager.conf

и закомментируйте следующую строку из

dns=dnsmasq

в

#dns=dnsmasq

Сохраните и выйдите из файла

Теперь вам нужен сетевой менеджер, используя следующую команду

sudo restart network-manager

Ссылка: http://www.stgraber.org/2012/02/24/dns-in-ubuntu-12-04/

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.