我最近在IPv6 DHCP Enabled的networking上安装了Debian 8。 /etc/resolv.conf正在被IPv6 DHCP覆盖,尽pipe事实上所有IPv6 DHCP都被禁用,IPv6的自动configuration被禁用,并且不存在dhclient进程。 如果我修改路由器上的IPv6 DHCP DNS服务器,它们会在/etc/resolv.conf中短时间更新。 以下是事实:
net.ipv6.conf.all.autoconf=0和net.ipv6.conf.all.accept_ra=0和net.ipv6.conf.eth0.autoconf=0强制禁用,因为由于某种原因前两个不足够。 /etc/network/interfaces中的dns-nameserver条目在ipv4和v6中完全被忽略 我宁愿一个答案是不“完全禁用IPv6”,虽然我已经接近这一点(并且足以说这是一个物理机器,而不是一个虚拟的,我已经把它扔出了窗口) 。
编辑:请注意,在sysctl net.ipv6.conf.all.disable_ipv6 = 0修复此问题,但它会出现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软件包? 它运行一个守护进程,这个守护进程会产生shell脚本,这些脚本的行为当然会像上面描述的那样。
请注意,接口上的dns-nameservers属性仅适用于resolvconf 。
您可以监视事情,看看哪个进程正在修改文件
https://unix.stackexchange.com/questions/99074/find-which-process-is-modifying-a-file
如果需要,暂时你可以编辑resolv.conf然后
chattr +我/etc/resolv.conf
防止任何修改
我发现解决这个“问题”的最好方法是安装resolvconf软件包。
sudo apt-get install resolvconf
之后,将/etc/resolv.confreplace为/etc/resolvconf/run/resolv.conf的符号链接,该链接由resolvconf通过文件/ etc / network / interfaces中的信息dynamic生成
请注意,如果您的系统中没有安装resolvconf软件包,则/ etc / network / interfaces中的dns-nameserver条目将被忽略 。 您可以在Debian wiki文档或使用手册页find更多有关resolvconf软件包信息的信息 。
man resolvconf