使用 IPv4,我可以毫无问题地添加两个 DNS 名称服务器,如下所示:
"dns-nameservers 8.8.4.4 8.8.8.8"
然后在我的 resolv.conf 上我得到:
nameserver 8.8.4.4
nameserver 8.8.8.8
但是,它不适用于 IPv6,只有第一个 IPv6 DNS 服务器出现在我的 resolv.conf 中,看:
"dns-nameservers 2001:4860:4860::8844 2001:4860:4860::8888"
但是,我的 resolv.conf 只保留第一个:
nameserver 2001:4860:4860::8844
显然,Ubuntu(resolvconf / ifupdown)忽略了第二个 DNS 名称服务器,那么,如何修复它?!
这是我的/etc/network/interfaces
文件:
auto lo
iface lo inet loopback
iface lo inet6 loopback
auto eth0
iface eth0 inet6 static
address 2800:210:0:4::2
netmask 64
gateway 2800:210:0:4::1
dns-nameservers 2001:4860:4860::8844 2001:4860:4860::8888
答案1
resolv.conf 中只能有三个名称服务器。如果您删除其中一个 IPv4 名称服务器,则会添加第二个 IPv6 名称服务器。
答案2
我最初以为这是一个错误,但我假设@Sander 的答案在这里是正确的。不过,我不确定 resolvconf 是否使用 resolv.h 或其他东西来获取最大名称服务器值。
一般来说,不要使用 resolv.conf,而是尝试以下几种方法:
您可以尝试按照建议编辑 dhclient.confGoogle 开发文档:
prepend domain-name-servers 2001:4860:4860::8888, 2001:4860:4860::8844;
对于 Ubuntu 上的这种方法,我相信当前路径是/etc/dhcp/dhclient.conf
。
同一文档还提供了使用 NetworkManager 的说明。如果您使用它,您可以右键单击网络图标,找到您的连接,然后选择“编辑”,然后转到 IPv6 选项卡。您可以在那里设置“其他 DNS 服务器”。
答案3
将其手动添加到 /etc/resolv.conf
nameserver 2001:4860:4860::8844
nameserver 2001:4860:4860::8888
答案4
尽管设置了 MAXNS,resolvconf 仍可以使用 /etc/resolvconf/resolv.conf.d 添加任意数量的 NS
在那里你会发现“head”,它包含在 /etc/resolv.conf 顶部的警告消息和一个名为“base”的文件(可能为空)。
您可以随意编辑这些文件以在 resolv.conf 中添加额外的行(例如“nameserver xx.xx.xx.xx”)。
添加 >MAXNS 行是否真的起作用是另一回事,但这就是如何将自定义内容强制放入 resolv.conf 本身。