Чому результат 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 відсутній у кеші, тому ви завжди бачите localhost( 127.0.0.1) IP-адресу під час пошуку 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, keyfile

dns = dnsmasq

[ifupdown]

керований = хибний

хеш (#) з 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.