我有一个在 AWS 上运行的 Linux 主机,我想将域添加到搜索中。默认情况下,resolv.conf 文件如下所示
[ec2-user@ip- ~]$ cat /etc/resolv.conf
; generated by /sbin/dhclient-script
search us-west-2.compute.internal
我尝试将以下行添加到/etc/dhcp/dhclient.conf
prepend domain-search "ux.corp.local";
生成的 resolv.conf 文件(重新启动网络后)如下所示。
[ec2-user@ip-172-31-30-39 ~]$ cat /etc/resolv.conf
; generated by /sbin/dhclient-script
search ux.corp.local.
显然它没有添加前缀(我也尝试了添加)。它也没有正确输入域名(参见末尾的句点)。
如何在 resolv.conf 中添加或添加要搜索的域名?
答案1
显然它没有添加到前面(我也尝试添加)
请注意二用于此的 DHCP 选项:(domain-name
包含一个域后缀,也用于略有不同的目的)和domain-search
(包含多个后缀)。
我怀疑你的当前的值“us-west-2.compute.internal”实际上来自选项domain-name
,并且domain-search
实际上是空的。因此,当您在其前面添加或附加内容时,dhclient 会发现两个选项都已设置,并会忽略它domain-name
(因为它比较旧且限制较多)。
因此,您需要手动列出两个域,或者更改 resolv.conf 生成步骤。例如,许多发行版使用resolvconf
(又名 openresolv)作为中间工具,该工具从多个来源生成 resolv.conf,并且它支持search_domains_append=
在 DHCP 数据之上添加自定义后缀的选项。
它也没有正确地输入域名(请参阅末尾的句点)。
不,这仍然是正确的。结尾的句点表示完全合格的域名(就像前导斜杠表示绝对路径一样)。当您尝试解析域名时没有有尾随句点,操作系统可能会尝试将所有搜索后缀附加到它。(是的,即使名称已经由多个部分组成!)
当然,在搜索列表中本身,结尾的点绝对不会改变任何东西。但由于搜索列表的理念是“如果您附加此列表,您将获得一个完全合格的域”,因此有些人认为将完全合格的后缀放在 中是合乎逻辑的search
。(或者他们可能只是在吹毛求疵。)