在Ubuntu 12.04的/etc/resolv.conf和/ etc / network / interfaces中列出名称服务器有什么区别?

我正在使用vCenter 5.5从模板部署Ubuntu 12.04 VM。 当我尝试使用自定义规范添加名称服务器时,它们被添加到resolv.conf文件中。 虚拟机不会使用这些名称服务器,并且将无法parsing名称。 但是,我可以使用dig命令手动指定相同的名称服务器并成功parsing名称。 如果我手动添加名称服务器到/ etc / network / interfaces,虚拟机将使用它们,并能够parsing名称。 这种行为的原因是什么?

如果你的系统上已经安装了resolvconf ,它会为你pipe理/etc/resolv.conf 。 您手动放入resolv.conf任何内容都将被replace,这就是为什么需要在/etc/network/interfacesinterfaces.d目录中定义名称服务器的原因。

如果要手动控制resolv.conf ,请删除resolvconf软件包。

注意:通常最好根据分销商或供应商定义的最佳实践来configuration和pipe理您的系统。 如果你删除了resolvconf确保你没有破坏任何需要的东西。