重新启动CentOS 5.5 EC2实例后,使用resolv.conf

在启动后,我的CentOS 5.5 EC2实例(包括i386和x86_64)无法正确填充resolv.conf。 无论我做什么,我最终都会使用默认的EC2 resolv.conf:

; generated by /sbin/dhclient-script search compute-1.internal nameserver 172.16.0.23 

我真正想要做的是设置我自己的search域,并预先两个名称服务器。 首先,我尝试添加/etc/dhclient.conf

 prepend domain-name "mydomain.ec2 " prepend domain-name-server 1.2.3.4 prepend domain-name-server 1.2.3.5 

这没有用。 所以我也尝试将dhclient.conf文件放在/ etc / dhcp // etc / dhcp3中 。 都没有工作。 所以我也尝试创build/ etc / dhclient-enter-hooks并覆盖_make_resolv_conf()_方法来防止dhclient脚本覆盖resolv.conf:

 make_resolv_conf() { ; } 

这也没有影响。

我提出的唯一解决scheme是添加一个额外的初始化脚本来重写resolv.conf。 这是有效的,但我真的很想做这个“正确”的方式。 我究竟做错了什么?

尝试添加:

 PEERDNS=no 

到/ etc / sysconfig / network-scripts / ifcfg-eth0(或等同的)

如果这不起作用,你可以使用chattr hack:

 chattr +i /etc/resolv.conf 

鉴于这个问题的年龄,我假设你find了答案; 但对于那些发现这个问题寻求帮助的人:如果这是在一个VPC内,你需要进入VPC控制台并访问dhcp-options-sets( https://console.aws.amazon.com/vpc/home# s = dhcp-options-sets )并创build一个新的dhcp选项集。 记下新选项集(dopt-XXXXXXXX)的亚马逊ID

接下来,转到“您的VPC”( https://console.aws.amazon.com/vpc/home#s=vpcs ),点击顶部附近的“更改DHCP选项集”,然后select新选项的亚马逊ID组。

这可能有所帮助: http : //docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_DHCP_Options.html

您还可以尝试在NIC相关networking脚本中添加以下DNS条目(例如, /etc/sysconfig/network-scripts/ifcfg-eth0 eth0

 DNS1=8.8.8.8 DNS2=8.8.4.4 

这是一个真正简单的修复。 将/ etc / sysconfig / network-scripts设置为:PEERDNS =“no”DNS1 = 8.8.8.8 DNS2 = 8.8.4.4

这将停止将EC2 dns插入到resolv.conf中。