Старые настройки DNS продолжают возвращаться

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 и настройте, как описано здесь (опять же я думаю, что это возможно без этого)

3
задан 21 December 2017 в 04:55

1 ответ

Файл /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 

После запуска вышеуказанной строки перезагрузите компьютер, чтобы новые изменения вступили в силу.

Надеюсь, это поможет!

2
ответ дан 21 December 2017 в 04:55

Другие вопросы по тегам:

Похожие вопросы: