我刚刚安装了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 IM
。nameservers
文件中没有列出。
但是,启动后,如果我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 控制,第一行都应该足够了。