我看到的所有配置示例 ( /etc/network/interfaces) 都表明您配置了一个接口,然后在下面给出了如下dns-*几行:
auto eth0
iface eth0 inet static
...
dns-nameservers 127.0.0.2
dns-search example.com my.example.com
Run Code Online (Sandbox Code Playgroud)
现在我知道 DNS 协议独立于传输机制。因此,dns-nameservers在线上添加 IPv6 地址本身不应该是错误的。
但是,因为无论如何我也在为 IPv6 配置接口,所以在dns-nameservers那里添加行是有意义的:
iface eth0 inet6 static
...
dns-nameservers ::2
dns-search example.com my.example.com
Run Code Online (Sandbox Code Playgroud)
……还是做到了?因为在resolvconf创建时/etc/resolv.conf它会忽略所有 IPv6 DNS 服务器。它似乎也忽略了dns-search和dns-domain。它似乎尊重的唯一一行是dns-nameservers来自 IPv4 配置的行eth0。
配置DNS服务器的正确方法是什么?
关于为什么它应该成为每个相应iface节的一部分的进一步间接证据。引自man 8 resolvconf:
该
ifup(8)程序可用于根据 中的设置配置网络接口/etc/network/interfaces(5)。为了ifup推动域名服务器信息resolvconf时,它配置的接口,添加dns-行相关iface …
我的Ubuntu12服务器 VM 正在从 DHCP 服务器(实际上是我的 WLAN 路由器,称为 Fritz Box)接收其 IP 地址。因此,所有域名都解析为machinename.fritz.box. 原因似乎是resolv.conf下文件/etc。
但是如何将此搜索名称更改为任意名称,例如xyz.mydomain? 它明确表示不要编辑文件。机器本身被设置为ubuntu.xyz.mydomain在hostname。我想要的machine1是假设为machine1.xyz.mydomainand NOT(!) machine1.fritz.box。
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 192.168.0.1
search fritz.box # shall be xyz.mydomain
Run Code Online (Sandbox Code Playgroud)