Адреса сервера 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.