2010-02-19 10:35:31 +0000 2010-02-19 10:35:31 +0000
35
35

如何在CentOS的dhclient创建的resolv.conf中添加其他搜索域?

当我的CentOS虚拟机启动时,它使用DHCP来获取IP地址。它还会用 DHCP 服务器提供的 DNS 设置覆盖 resolv.conf。DHCP服务器没有提供任何搜索域,所以我想让dhclient在写入时放入搜索域列表。我如何配置dhclient来做这件事?

答案 (10)

32
32
32
2012-08-27 13:16:49 +0000

这些都没有用,但最后一个是最接近的。对于Red Hat 6,使用DOMAIN而不是上面例子中的SEARCH,文件位置也不一样。

我修改了文件/etc/sysconfig/network-scripts/ifcfg-eth0

,把

DOMAIN=domain.com

改成

DOMAIN="domain.com sub.domain.com"

,都能用。

11
11
11
2011-03-29 14:44:49 +0000

你也可以在/etc/dhcp3/dhclient.conf中添加这样的字符串

prepend domain-search "domain1.com", "domain2.com";

注意,这个方法在Debian Lenny和Squeeze中也适用。

7
7
7
2010-02-19 16:46:58 +0000

最后我设法解决了这个问题。我在/etc/dhclient-eth0.conf

append domain-name "example.com";
```中添加了如下一行。
4
4
4
2014-09-17 18:03:56 +0000

这主要是RHEL7的注意事项,以减少试错。 Dean的回答 的使用DOMAIN="domain1.exmaple.com domain2.example.com"中的/etc/sysconfig/network-scripts/ifcfg-device.conf工作。一个有趣的说明是,连接从DHCP获得的主机域总是被预置到搜索路径中,即使你不在DOMAIN=中使用它,或者把它放在DOMAIN=的列表中稍后。看来/sbin/dhclient-script有一堆逻辑与此有关。

在我的测试中,我发现【Philip的建议】(https://superuser.com/a/374558/500826)的使用`/etc/dhcp/dhclient-device.conf`也可以,虽然有一些奇怪的行为,很可能是由于`/sbin/dhclient-script`中那个试图移动东西的逻辑。例如,supercede和prepend都没有像预期的那样工作,主机的域名将是第一位的。关于这个方法的补充说明,`/var/lib/NetworkManager/dhclient-device.conf`是生成的NetworkManager文件,由客户端使用。如果你有一个`/etc/dhcp/`中的文件被读入,你会看到它被粘贴在文件的顶部,下面还增加了一些额外的选项。

2
2
2
2012-01-04 15:11:33 +0000

在CentOS 6上,我使用以下文件来添加我喜欢的DNS搜索域。

# cat /etc/dhcp/dhclient-eth0.conf 
interface "eth0" {
    supersede domain-search "dns1.example.com";
}
# getenforce 
Enforcing
# ls -lZ /etc/dhcp/dhclient-eth0.conf 
-rw-r--r--. root root system_u:object_r:bin_t:s0 /etc/dhcp/dhclient-eth0.conf
#

这个文件是/etc/sysconfig/network-scripts/ifup-eth中第一个被检查到的文件。

if [-s /etc/dhcp/dhclient-${DEVICE}.conf]; then
   DHCLIENTCONF="-cf /etc/dhcp/dhclient-${DEVICE}.conf";

参见: redhat - 在RHEL 6上配置DHCP - 服务器故障

2
2
2
2011-06-02 15:45:35 +0000

上面的/etc/dhclient-eth0.conf答案对我来说没有用。我没有/etc/dhcp3目录,所以我认为这也不可能成功。

在检查了/sbin/dhclient-script文件后(在我的Centos 5.6系统上创建了/etc/resolv.conf),我在/etc/sysconfig/networking/devices/ifcfg-eth0:

DEVICE=eth0 
BOOTPROTO=dhcp
HWADDR=08:00:24:61:17:AC 
ONBOOT=yes
TYPE=Ethernet
SEARCH="example.com sub1.example.com sub2.example.com"

然后添加了下面的search行。

# ifdown eth0
# ifup eth0
# cat /etc/resolv.conf
; generated by /sbin/dhclient-script
search example.com sub1.example.com sub2.example.com
nameserver 10.1.0.11
2
2
2
2013-09-20 20:16:29 +0000

对于任何人都会去看Fedora / Red Hat那堆相当不透明的脚本,至少在亚马逊最新的AMI上,答案是/etc/dhclient-eth0.conf(而不是在/etc/dhcp/的诱饵空文件夹)。该文件并不存在,需要创建。

1
1
1
2013-11-22 08:29:07 +0000

在Fedora 19中,将下一行添加到/etc/dhcp/dhclient.conf

# /etc/dhcp/dhclient.conf

interface "p2p1"
{
    supersede domain-name-servers 8.8.8.8, 8.8.4.4;
    append domain-name " mydomain.net example.com";
}

与NetworkManager一起工作就可以了。详情请看。# man dhclient.conf

0
0
0
2012-08-27 15:32:39 +0000

添加到dchp服务器conf(isc dhcpd):

option domain-name "domain1.com domain2.net domain3.org";

其中domain1.com等是你想添加到每个客户端的resolv.conf文件中的域名后缀。

0
0
0
2015-05-26 02:13:19 +0000

由于我没有看到这个答案,而且它对我有效(而其他人没有),这里是:编辑/etc/resolvconf/resolv.conf.d/base的方法和你编辑/etc/resolv.conf的方法一样。你需要安装resolvconf