在启动后,我的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中。