当 DHCP 禁用时,Debian 8 resolv.conf 会被 IPv6 自动配置/DHCP 覆盖

当 DHCP 禁用时,Debian 8 resolv.conf 会被 IPv6 自动配置/DHCP 覆盖

我最近在启用了 IPv6 DHCP 的网络上安装了 Debian 8。尽管已禁用所有 IPv6 DHCP、禁用 IPv6 自动配置且不存在 dhclient 进程,但 /etc/resolv.conf 仍不断被 IPv6 DHCP 条目覆盖。如果我修改路由器上的 IPv6 DHCP DNS 服务器,它们会在 /etc/resolv.conf 中快速更新。以下情况属实:

  • 系统上没有 resolvconf
  • 系统上没有 networkmanager
  • 由于某种原因,前两个功能不够用,因此IPv6 的自动配置已被net.ipv6.conf.all.autoconf=0net.ipv6.conf.all.accept_ra=0AND强制禁用。net.ipv6.conf.eth0.autoconf=0
  • 没有 dhclient 进程处于活动状态
  • Auditd 返回了某个 shell 的 PID,该 shell 在查找 resolv.conf 的编辑时会立即终止。可能需要加强我的堆栈跟踪游戏。
  • dns-nameserver/etc/network/interfaces对于 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

答案1

您是否rdnssd安装了该软件包?它运行一个守护进程,该守护进程会生成 shell 脚本,而这些脚本的行为肯定与上述描述一致。

请注意,dns-nameservers接口上的属性仅适用于resolvconf

答案2

你可以监视一些东西来查看哪些进程正在修改文件

https://unix.stackexchange.com/questions/99074/find-which-process-is-modifying-a-file

如果需要,您可以暂时编辑 resolv.conf,然后

chattr +i /etc/resolv.conf

以防止任何东西修改它

答案3

我发现解决这个“问题”的最好方法是安装解析配置包裹。

sudo apt-get install resolvconf

在那之后,/etc/resolv.conf被替换为指向/etc/resolvconf/运行/resolv.conf由以下程序动态生成解析配置使用文件中的信息/etc/网络/接口

注意dns 名称服务器条目/etc/网络/接口如果你的系统中没有安装 resolvconf 包,则会被忽略。您可以找到有关解析配置Debian wiki 文档中的软件包信息或使用手册页。

man resolvconf

相关内容