Я иногда переключаю DNS-серверы, используя индикатор NetworkManager на панели задач; это работало нормально с предыдущими версиями, и на самом деле хорошо работает и с 12.04, за исключением одного: я использую Conky для отображения некоторой системной информации, включая адрес DNS, и заметил, что теперь она всегда отображает 127.0.0.1
. ]
Я посмотрел в resolv.conf
, где он получает этот адрес, и, конечно же, это то, что он всегда говорит. У меня есть одна строка с предупреждением не редактировать файл вручную:
nameserver 127.0.0.1
Единственный способ узнать адрес DNS-сервера, который я знаю сейчас, - это открыть графический интерфейс администратора сети для проверки информационной страницы. , Итак, где эта информация хранится сейчас?
Информацией управляет внутренне Администратор сети. Можно получить эту информацию о командной строке с помощью включенного nmcli
инструмент.
Можно получить информацию Администратора сети для конкретного сетевого интерфейса со следующей командой:
nmcli dev list iface eth0
(замена eth0
с интерфейсом Вы соединяетесь с). Вывод будет включать информацию об интерфейсе и в настоящее время активном соединении в том интерфейсе:
GENERAL.DEVICE: eth0
GENERAL.TYPE: 802-3-ethernet
...
IP4.DNS[1]: 192.168.0.1
...
Не должно быть слишком трудно извлечь информацию, которая Вы после от этого вывода.
Если Вам нужен программный метод доступа к этим данным, которые не полагаются на вывод nmcli
, эта информация должна также быть доступной от D-шинного-интерфейса Администратора сети.
Имейте в виду, что использование nmcli не всегда может дать вам полный ответ. например если вы используете openconnect (или, предположительно, vpnc) для запуска VPN, и если у вас установлен пакет resolvconf (чтобы позаботиться об автоматическом управлении /etc/resolv.conf), вы обнаружите, что он по-прежнему может автоматически вставлять VPN Настройки DNS в /etc/resolv.conf опережают 127.0.0.1. В этом случае простая проверка (например, «nmcli -f IP4 dev list») не даст вам истинный текущий список DNS. Не уверен, что этот сценарий повлияет на вас, но решил, что стоит упомянуть.
Разработчики Ubuntu должны документировать эти изменения в /etc/resolv.conf
, но не сделали этого.
Вот список быстрых команд, чтобы начать работу.
Показать текущие DNS-серверы
nm-tool | grep DNS
Определить статический 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