Адреса сервера DNS більше не зберігається у резоль.conf; де це зараз?


14

Я іноді перемикаю DNS-сервери, використовуючи індикатор NetworkManager на панелі завдань; це спрацювало чудово з попередніми версіями, і насправді працює чудово з 12.04, крім однієї речі: я використовую Conky для відображення деякої системної інформації, включаючи адресу DNS, і я помітив, що вона завжди відображається 127.0.0.1.

Я зазирнув resolv.conf, куди він отримує цю адресу, і впевнений, що це завжди говорить. У мене є один рядок, із застереженням не редагувати файл вручну:

nameserver 127.0.0.1

Єдиний спосіб, коли я знаю перевірити адресу сервера DNS, це відкрити інтерфейс інтерфейсу менеджера мережі, щоб перевірити сторінку інформації. Отже, де зараз зберігається ця інформація?

Відповіді:


17

Інформацією керує внутрішньо Менеджер мережі. Ви можете отримати цю інформацію в командному рядку, використовуючи доданий nmcliінструмент.

Ви можете отримати інформацію менеджера мережі для певного мережного інтерфейсу за допомогою наступної команди:

nmcli dev list iface eth0

(замініть eth0інтерфейс, з яким ви підключаєтесь). Вихідні дані включатимуть інформацію про інтерфейс та про активне підключення до цього інтерфейсу:

GENERAL.DEVICE:                         eth0
GENERAL.TYPE:                           802-3-ethernet
...
IP4.DNS[1]:                             192.168.0.1
...

Витягувати інформацію, яку ви шукаєте, з цього результату не повинно бути надто складно.

Якщо вам потрібен програмний метод доступу до цих даних, який не покладається на вихід nmcli, ця інформація також має бути доступна через інтерфейс D-Bus Network Manager.


Велике спасибі, це чудова інформація. Створити простий скрипт оболонки за допомогою цієї nmcliкоманди слід досить просто, щоб перелічити різні цікаві параметри. Можливо, я можу згорнути щось корисне і десь поділитися. Я не дуже вважав, що Менеджер мережі потрібен, і я думаю, що для когось це можуть бути альтернативні способи, але це працює для мене.
Марті Фрід

Ну, ви можете бачити, що прослуховування сервера 127.0.0.1- це екземпляр, dnsmasqзапущений Менеджером мережі (див. Висновок sudo netstat -tlnp). Але найкраще подумати про це як детальну інформацію про реалізацію та попросити Менеджера мережі отримати потрібну інформацію, оскільки саме тут приймається рішення.
Джеймс Генстридж

Дякуємо, що надали таку хорошу інформацію. І, дякую також за те, що ви відредагували моє запитання - я намагатимусь у майбутньому більше часу. :) Моє виправдання в тому, що я щойно модернізував до 12.04 і гасив невеликі пожежі на декількох фронтах. :)
Марті Фрід

4
nmcli dev list ifaceне працює для мене, але nmcli dev showробить [ubuntu 15.04]
Бені Чернявський-Паскін

10

Розробники Ubuntu повинні документувати ці зміни /etc/resolv.conf, але не мають.

Ось перелік швидких команд, щоб ви рухалися.

  1. Показати поточні DNS-сервери

    nm-tool | grep DNS
    
  2. Визначте статичний DNS-сервер у /etc/dhcp/dhclient.conf. Додайте наступний рядок та перезапустіть локальну роздільну здатність:

    supersede domain-search "sub.mydomain.com", "domain.com";
    prepend domain-name-servers 192.168.0.1;
    

    З командного рядка:

    invoke-rc.d network-manager restart
    

Ще деяка документація: resolutionvconf (8), /usr/share/doc/resolvconf/README.gz.
jdthood

4

Майте на увазі, що використання nmcli не завжди може дати вам повну відповідь. наприклад, якщо ви використовуєте openconnect (або vpnc, імовірно) для запуску VPN, і якщо у вас встановлений пакунок Resolvconf (щоб подбати про автоматичне управління /etc/resolv.conf), ви побачите, що він все ще може автоматично вставити Налаштування DNS VPN в /etc/resolv.conf до 127.0.0.1. У цьому випадку просто перевірка (наприклад) "nmcli -f IP4 dev list" не дасть вам справжнього поточного списку DNS. Не впевнений, чи впливає на вас цей сценарій, але подумав, що варто згадати.


Дякуємо за додаткову інформацію; завжди добре дізнатися більше. У моєму випадку використання мені не доведеться турбуватися про це, оскільки я в основному просто хочу знати, яка з двох можливих DNS-адрес активна.
Марті Фрід

Якщо ви використовуєте networkmanager для підключення до VPN, яка команда повинна дати вам dns? ДНС працює, але я не можу їх знайти.
Хорхе Суарес де Ліс
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.