我无法让我的 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
我真正想要做的是设置自己的搜索域并添加两个名称服务器。首先,我尝试添加/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。都没有用。所以我还尝试创建/etc/dhclient-输入-hooks并重写 _make_resolv_conf()_ 方法以防止 dhclient-script 覆盖 resolv.conf:
make_resolv_conf() {
;
}
这也没有影响。
我想到的唯一解决方案是添加一个额外的 init 脚本来重写 resolv.conf。这可行,但我真的想以“正确”的方式做到这一点。我做错了什么?
答案1
尝试添加:
PEERDNS=no
到您的 /etc/sysconfig/network-scripts/ifcfg-eth0 (或同等文件)
如果这不起作用,你可以使用 chattr hack:
chattr +i /etc/resolv.conf
答案2
考虑到这个问题的年限,我假设你找到了答案;但对于那些发现这个问题并寻求帮助的人来说:如果这是在 VPC 内部,你需要进入 VPC 控制台并访问 dhcp-options-sets(https://console.aws.amazon.com/vpc/home#s=dhcp-options-sets) 并创建一个新的 dhcp 选项集。记下新选项集的 amazon id (dopt-XXXXXXXX)
接下来,转到“您的 VPC”(https://console.aws.amazon.com/vpc/home#s=vpcs),点击顶部附近的“更改 DHCP 选项集”,然后选择新选项集的 amazon ID。
这可能会有帮助: http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_DHCP_Options.html
答案3
答案4
这是一个非常简单的修复方法。将 /etc/sysconfig/network-scripts 设置为:PEERDNS="no" DNS1=8.8.8.8 DNS2=8.8.4.4
这将阻止 EC2 dns 插入 resolv.conf。