如何在Centos 6.5上自动生成resolv.conf

如何在Centos 6.5上自动生成resolv.conf

我刚刚安装了CentOS 6.5并配置了以下文件:

/etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0
HWADDR=aa:bb:dd:dd:ee:ff
TYPE=Ethernet
UUID=adfddfaf-9sda-adse-dfs4-asdfsdfdfg97
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=dhcp

/etc/sysconfig/network

NETWORKING=yes
HOSTNAME=localhost.IM
NTPSERVERARGS=iburst

当我重新启动计算机时,ifconfig eth0显示 IP 地址,但resolv.conf文件为空。里面说的都是search IMnameservers文件中没有列出。

但是,启动后,如果我dhclient -r释放 IP 地址,然后键入dhclient eth0以获取 IP 地址,resolv.conf则会使用我的 DNS 名称服务器正确填充。

为什么我的配置文件不会自动发生这种情况?我认为dhcp在我的文件中启用ifcfg-eth0应该可以解决这个问题。

CentOS 文档说设置NETWORKING=yes在启动时启动网络:http://www.centos.org/docs/5/html/Deployment_Guide-en-US/s1-dhcp-configuring-client.html

任何帮助表示赞赏。

答案1

设置NM_CONTROLLED=no并停止网络管理器守护程序并防止其在启动期间重新启动:

/sbin/service   NetworkManager stop
/sbin/chkconfig NetworkManager off

现在/etc/resolv.conf根据您的需要填充您的文件。

否则,设置NM_CONTROLLED=yes并保持 NetworkManager 守护程序运行。在这种情况下,请在文件中添加最多两个 DNS 条目ifcfg-eth*,例如:

DNS1=10.11.12.13
DNS2=10.11.12.14
DOMAIN=mydomain.net

这将为/etc/resolv.conf您填充文件。

答案2

NM-SETTINGS-IFCFG-RH ()手册页:

PEERDNS - 初始化脚本将 PEERDNS=no 解释为“永远不要触摸 resolv.conf”。 NetworkManager 将其解释为“切勿将自动(DHCP、PPP、VPN 等)名称服务器添加到 resolv.conf”。

向特定 /etc/sysconfig/network-scripts/ifcfg- 文件提供 PEERDNS=yes 行以自动更新 /etc/resolv.conf 文件。

    PEERDNS=yes

此外,如果您要使用 NetworkManager 控制接口,请添加以下行:

    NM_CONTROLLED=no

但是,无论接口是否由 NetworkManager 控制,第一行都应该足够了。

相关内容