Ubuntu 16.04
После переезда в офис я установил настройки DNS через сетевой графический интерфейс (см. здесь ) для моих новых значений. Интернет-соединение есть, но разрешение имен кажется очень медленным. Моя интерпретация заключается в том, что он пытается разрешить имена со старыми настройками, время ожидания которых истекает примерно через 5 секунд, а затем пытается и успешно (быстро) с новыми настройками.
Но что бы я ни делал, старые ценности всегда как-то «в системе».
После перезагрузки:
/etc/resolvconf/resolv.conf.d/head
содержит старые адреса DNS /etc/resolvconf/resolv.conf.d/base
содержит новые адреса DNS /etc/resolv.conf
(run/resolvconf/resolv.conf
) содержит старые адреса DNS (из head
), за которыми следуют значения в /run/resolvconf/interface/NetworkManager
(который содержит параметры localhost
и search
) /etc/network/interfaces
не содержит много:
auto lo
iface lo inet loopback
Я добавил новые настройки DNS в /etc/dhcp/dhclient.conf
без эффекта.
Пока единственное средство - вручную редактировать /etc/resolv.conf
после каждой загрузки.
Итак, вопрос: как я могу заставить Ubuntu забыть старые настройки (те, что в /etc/resolvconf/resolv.conf.d/head
, которые генерируются автоматически). nscd
не установлено. Этот может показаться одним из способов сделать это, но я думаю, что должен быть лучший.
Не опробованный вариант: установите dnsmasq и настройте, как описано здесь (опять же я думаю, что это возможно без этого)
Файл /etc/resolv.conf
генерируется из файлов, хранящихся в каталоге /etc/resolvconf/resolv.conf.d
, когда выполняется sudo resolvconf -u
.
Если вы внесете какие-либо изменения в эти файлы:
terrance@terrance-ubuntu:/etc/resolvconf/resolv.conf.d$ ls -l
total 8
-rw-r--r-- 1 root root 0 Jun 3 2015 base
-rw-r--r-- 1 root root 151 Feb 25 2017 head
-rw-r--r-- 1 root root 33 Jun 5 2016 original
-rw-r--r-- 1 root root 0 Jun 5 2016 tail
Изменения будут отражены при запуске команды resolvconf -u
для обновления. Я на самом деле помещаю информацию о DNS в файл original
и оставляю все остальные файлы в покое:
terrance@terrance-ubuntu:/etc/resolvconf/resolv.conf.d$ cat original
search local
nameserver 10.0.0.1
Затем, после выполнения команды sudo resolvconf -u
, мы можем увидеть мои изменения в моем файле /etc/resolv.conf
:
$ cat /etc/resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 10.0.0.1
search local
РЕДАКТИРОВАТЬ: Еще одна вещь, которую вам, возможно, придется проверить и изменить, это строка dns=dnsmasq
, найденная в файле /etc/NetworkManager/NetworkManager.conf
. Вы можете скопировать и вставить следующую строку, чтобы отключить ее, используя dnsmasq
из NetworkManager.
sudo sed -i 's/dns=dnsmasq/#dns=dnsmasq/' /etc/NetworkManager/NetworkManager.conf
После запуска вышеуказанной строки перезагрузите компьютер, чтобы новые изменения вступили в силу.
Надеюсь, это поможет!