我有一台在运行 KVM/QEMU 的 Ubuntu 14.04 主机上运行 ubuntu 14.04 的客户机。
一切正常,除了一件事。鉴于我的客户机的主机名是virtual-machine-1
,我希望能够从主机上找到它。
特别是,如果我host virtual-machine-1
在主机上使用,我希望它返回客户机的 IP 地址。
文档KVM/网络状态:
如果在主机上,您将 192.168.122.1(libvirt 中主机的默认 IP)添加为 /etc/resolv.conf 中的第一个名称服务器 [...] blabla 它应该可以工作]
这确实有效。但resolv.conf
文件经常被覆盖,额外添加的行会丢失。
这就引出了我的问题:反映这一变化的适当方式是什么?
以下是我尝试过但无济于事的方法:
- 将其添加到
/etc/resolvconf/resolv.conf.d/base
- 将 dns-nameserver 添加到我的
/etc/network/interfaces
文件中
似乎名称服务器 192.168.122.1 需要位于任何其他名称服务器(包括 127.0.1.1)之前。文档指出这是正常的,dnsmasq 会正确处理它。我只是不知道如何以持久的方式配置它。
答案1
resolvconf
/etc/resolv.conf
使用来自的文件生成/etc/resolvconf/resolvconf.d/
,通常包含一个head
、一个base
,也可能是一个tail
。从手册页:
The dynamically generated resolver configuration file always starts
with the contents of /etc/resolvconf/resolv.conf.d/head and ends with
the contents of /etc/resolvconf/resolv.conf.d/tail. Between head and
tail the libc script inserts dynamic nameserver information compiled
from, first, information provided for configured interfaces; second,
static information from /etc/resolvconf/resolv.conf.d/base.
您可能已经注意到,生成的文件/etc/resolv.conf
有一个标题警告,内容是生成的,不应手动编辑文件。此标题存储在中/etc/resolvconf/resolvconf.d/head
,因此不要对中的警告感到困惑head
。中的文件/etc/resolvconf/resolvconf.d
不是生成的,如果需要,可以手动编辑。因此,如果任何条目必须出现在的顶部resolv.conf
,请将它们添加到中head
。如果条目必须出现在末尾(例如,search
始终使用最后一个条目),请将它们添加到中tail
。