Debian 8 resolv.conf在DHCP禁用时被IPv6自动configuration/ DHCP覆盖

我最近在IPv6 DHCP Enabled的networking上安装了Debian 8。 /etc/resolv.conf正在被IPv6 DHCP覆盖,尽pipe事实上所有IPv6 DHCP都被禁用,IPv6的自动configuration被禁用,并且不存在dhclient进程。 如果我修改路由器上的IPv6 DHCP DNS服务器,它们会在/etc/resolv.conf中短时间更新。 以下是事实:

  • resolvconf不在系统上
  • networkingpipe理员不在系统上
  • IPv6的自动configuration已被net.ipv6.conf.all.autoconf=0net.ipv6.conf.all.accept_ra=0net.ipv6.conf.eth0.autoconf=0强制禁用,因为由于某种原因前两个不足够。
  • 没有dhclient进程处于活动状态
  • Auditd返回一些在寻找resolv.conf编辑时立即死亡的shell的PID。 可能需要加强我的堆栈跟踪游戏。
  • /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