我的Ubuntu12
服务器虚拟机正在从 DHCP 服务器(实际上是我的名为 Fritz Box 的 WLAN 路由器)接收其 IP 地址。因此所有域名都解析为machinename.fritz.box
.原因似乎resolv.conf
是/etc
.
但是我如何将此搜索名称更改为任意名称,例如xyz.mydomain
?它清楚地说不编辑文件。机器本身设置ubuntu.xyz.mydomain
如下hostname
。我想要的是machine1
假设是machine1.xyz.mydomain
and 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
答案1
resolvconf
是一个管理resolv.conf
文件的程序,以便多个源可以添加和删除条目而不会互相绊倒。每个网络接口的管理器都会向其提供resolv.conf
该接口的文件,然后它将它们全部合并在一起。
resolvconf
旨在由网络脚本或 DHCP 客户端运行,但您也可以自己运行。您所做的条目必须与界面相关联; “ lo
”接口非常适合用于本地管理的条目,因为它始终处于运行状态,不是动态管理的,并且其条目优先于其他接口。所以:
echo 'search xyz.mydomain' | resolvconf -a lo
将添加xyz.mydomain
到搜索列表的开头。这将持续到您运行为止resolvconf -d lo
。 (如果您使用网络脚本来关闭接口,网络脚本也可能会运行此命令lo
。)
您可以通过让网络脚本为您处理它来使其更加持久。在 Ubuntu 或其他 Debian 系列发行版上,/etc/network/interfaces
按如下方式编辑文件:
iface lo inet loopback # This line already present
dns-search xyz.mydomain # Add this line beneath it
欲了解更多信息:
答案2
做到这一点的最佳方法是正确配置您的 WLAN 路由器,即为您的主机提供正确的完全限定域名 (FQDN)。
如果 WLAN 路由器为 myhome.org 域中的主机提供服务,则将其配置为 wlan-router.myhome.org。它可能使用自己的域名作为分发给客户的价值。
完整的 DHCP 具有为客户端系统设置此值的选项:
option domain-search "example.com", "sales.example.com", "eng.example.com";
尽管有可能,但您不太可能在 WLAN 路由器中设置这些 dhcp 选项。
如果你真的遇到困难,你可以编辑 resolv.conf,每次运行 dhcp 客户端时它都会被破坏。您可以编写一个脚本来每次更新它,但这并不理想,并且如果这是一个移动系统(例如笔记本电脑),可能会让您感到悲伤。
答案3
如果不知道如何在路由器中更改它,一种方法是在虚拟机中设置静态 IP。
修改/etc/network/interfaces
如下。
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet static
address 192.168.0.X
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
gateway 192.168.0.1
# dns-* options are implemented by the resolvconf package, if installed
dns-nameservers 192.168.0.1
dns-search xyz.mydomain
更改192.168.0.X
为要分配给 VM 的 IP 地址。它应该在 dhcp 范围之外。
和dns-nameservers
将dns-search
设置您的/etc/resolv.conf
.