Как удалить локальный сервер имен из resolv.conf

10

В настоящее время мой /etc/resolv.confчитает:

nameserver 127.0.0.1  
nameserver 10.255.0.101  
nameserver 10.255.0.11  

и я хочу вместо этого прочитать:

search [my domain]  
nameserver 10.255.0.101  
nameserver 10.255.0.11  
nameserver 208.67.222.222  
nameserver 208.67.220.220  

Как оба /etc/resolv.confи /etc/resolv.conf.d/headне могут быть отредактированы вручную, как я могу сделать это изменение?

user217676
источник
См. Askubuntu.com/a/208027/15811 для объяснения того, как использовать это.
Rinzwind

Ответы:

7

Во-первых, /etc/resolvconf/resolv.conf.d/head можно редактировать вручную. Комментарий в файле, который говорит, DO NOT EDIT THIS FILE BY HANDотносится не к /etc/resolvconf/resolv.conf.d/headсамому себе, а к тому /etc/resolv.conf, к которому добавлен первый.

Сказав это, однако, при нормальных обстоятельствах вам не нужно редактировать /etc/resolvconf/resolv.conf.d/head.

Файлы /etc/resolvconf/resolv.conf.d/headи /etc/resolvconf/resolv.conf.d/tailпредоставляются как способ resolv.confнавязать сгенерированную голову и хвост, если это необходимо в исключительных обстоятельствах, но если вы используете resolvconf правильно и при нормальных обстоятельствах, вам не нужно этого делать.

Вы говорите, что содержимое файла

nameserver 127.0.0.1
nameserver 10.255.0.101
nameserver 10.255.0.11

Наличие строки nameserver 127.0.0.1говорит о том, что вы используете локальный сервер пересылки имен, такой как dnsmasq. Файл выше - это не то, что resolvconf обычно генерирует при этих обстоятельствах. Обычно он генерирует файл, подобный следующему.

# 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 127.0.0.1
search foo.com

Я предполагаю, что в вашей системе /etc/resolv.confэто не символическая ссылка на ../run/resolvconf/resolv.confфайл, а обычный файл, который может генерироваться или не генерироваться чем-то другим, чем resolvconf. Если файл полностью статичен, просто отредактируйте его так, чтобы он выглядел так, как вы хотите. Если файл сгенерирован каким-либо инструментом, отличным от resolvconf, выясните, какой инструмент генерирует файл, и настройте этот инструмент.

Или восстановите символическую ссылку /etc/resolv.conf -> ../run/resolvconf/resolv.confи правильно настройте resolvconf.

Как удалить локальный сервер имен из resolv.conf?

Следующие инструкции относятся только к случаю, когда вы используете для управления resolvconf /etc/resolv.conf, то /etc/resolv.confесть символическую ссылку на ../run/resolvconf/resolv.conf.

Если строка nameserver 127.0.0.1находится в одном из файлов, /etc/resolvconf/resolv.conf.d/удалите ее оттуда.

В противном случае эта строка исходит от локально работающего сервера имен. Либо удалите этот сервер имен, либо настройте этот сервер имен, чтобы он не регистрировал адрес 127.0.0.1 в resolvconf. В частности, если вы используете BIND 9 с локальным именем, либо удалите его, либо установите RESOLVCONF=noв /etc/default/bind9.

Ссылка: https://bugs.launchpad.net/debian/+source/bind9/+bug/933723

jdthood
источник
2

Пытаться

sudo vi /run/resolvconf/interface/NetworkManager

Удалите или замените сервер имен 127.0.0.1, затем используйте

sudo resolvconf -u.
Митра славчева
источник
1

Проверьте свою конфигурацию NetworkManager:

sudo NetworkManager --print-config

если есть

dns=systemd-resolved

затем отредактируйте настройки в

/run/resolvconf/interface/systemd-resolved

и обновить

sudo resolvconf -u

В моем случае было также

/run/resolvconf/interface/tun0.openvpn

файл (созданный OpenVPN), который можно безопасно удалить, чтобы избежать помех:

sudo rm /run/resolvconf/interface/tun0.openvpn
Валерий Марков
источник