Недавно я установил Debian 8 в сети с включенным IPv6 DHCP. /etc/resolv.conf перезаписывается IPv6 DHCP, и он постоянно выходит, несмотря на то, что весь DHCP IPv6 отключен, автоконфигурация IPv6 отключена и процесс dhclient не существует. Если я изменю DNS-серверы IPv6 DHCP на маршрутизаторе, они будут быстро обновлены в /etc/resolv.conf. Верно следующее:
net.ipv6.conf.all.autoconf=0
и net.ipv6.conf.all.accept_ra=0
И net.ipv6.conf.eth0.autoconf=0
потому что первых двух почему-то было недостаточно.dns-nameserver
записи в /etc/network/interfaces
полностью игнорируются как для ipv4, так и для v6Я бы предпочел ответ, который не был бы «полностью отключить IPv6», хотя я приближаюсь к этому моменту (и достаточно сказать, что если бы это была физическая машина, а не виртуальная, я бы уже выбросил ее в окно) .
РЕДАКТИРОВАТЬ: обратите внимание, что net.ipv6.conf.all.disable_ipv6 = 0 в sysctl устраняет эту проблему, но похоже, что теперь resolv.conf периодически полностью очищается, нарушая DNS.
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet static
address xx.xx.xx.xx
netmask 255.255.255.248
gateway xx.xx.xxx.xx
dns-nameservers 8.8.8.8
#auto 6to4
#iface 6to4 inet6 6to4
# local xx.xx.xxx.xx
# dns-nameservers 2001:4860:4860::8888
У тебя есть rdnssd
пакет установлен? Это запускает демон, который порождает сценарии оболочки, которые, безусловно, ведут себя так, как вы описали выше.
Обратите внимание, что dns-nameservers
атрибут интерфейса работает только с resolvconf
.
Лучший способ решить эту «проблему» - это установить resolvconf пакет.
sudo apt-get install resolvconf
После этого, /etc/resolv.conf заменяется символической ссылкой на /etc/resolvconf/run/resolv.conf который динамически генерируется resolvconf с информацией из файла / и т.д. / сеть / интерфейсы
Обратите внимание, что DNS-сервер записи в / и т.д. / сеть / интерфейсы игнорируются, если в вашей системе не установлен пакет resolvconf. Вы можете найти больше информации о resolvconf информация о пакете в вики-документации Debian или используя страницы руководства.
man resolvconf
Вы можете отслеживать вещи, чтобы увидеть, какой процесс изменяет файл
https://unix.stackexchange.com/questions/99074/find-which-process-is-modifying-a-file
При желании вы можете временно отредактировать resolv.conf, а затем
chattr + i /etc/resolv.conf
Чтобы ничего не изменило