问题:
[root@test01 ~]# ping www.baidu.com
ping: unknown host ww.baidu.com #ping百度找不到主机名
解决方案:
ps: 红字字体为重要部分, 仔细看
1、 首先确保该机器有独立IP地址.
[root@Centos1 ~]# ifconfig
eth0 Link encap:Ethernet HWaddr 00:0C:29:5B:40:E0
inet addr:192.168.15.11 Bcast:192.168.15.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe5b:40e0/64 Scope:Lin
…………………………/省略
2、 检查路由条目(无路由条目则添加)
[root@test01 ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.X.0 0.0.0.0 255.255.255.0 U 1 0 0 eth0
3、添加路由条目 PS: 删除路由条目"将add改为del"
[root@test01 ~]#route add -net 目标网段 netmask 目标子网掩码 gw 下一跳地址
4、检查是否能与网关设备通信
[root@test01 ~]# ping 网关IP地址
PING X.X.X.X (X.X.X.X) 56(84) bytes of data.
64 bytes from X.X.X.X: icmp_seq=1 ttl=128 time=1.63 ms
5、查看是否开启IP、域名解析
[root@test01 ~]# grep host /etc/nsswitch.conf
#hosts: db files nisplus nis dns
hosts: files dns
6、修改域名解析文件,新增DNS地址
[root@test01 ~]# vim /etc/resolv.conf
nameserver 114.114.114.114
7、再次ping百度域名
[root@test01 ~]# ping www.baidu.com #ping百度
PING www.a.shifen.com (111.13.100.91) 56(84) bytes of data
64 bytes from X.X.X.X: icmp_seq=1 ttl=128 time=1.63 ms
8、不让/etc/resolv.conf文件内的DNS继承ifcfg-eth0内的DNS
[root@Centos1 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0 #查看eth0网卡配置参数
DEVICE=eth0
HWADDR=00:0C:29:5B:40:E0
TYPE=Ethernet
UUID=9315dbdf-ae02-4814-af4c-00e29504e82d
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=192.168.15.11
NETMASK=255.255.255.0
GATEWAY=192.168.15.2
PEERDNS=no # 新增此参数,意思为要求程序不要去打扰resolv.conf文件
DNS1=114.114.114.114
DNS2=8.8.8.8
[root@Centos1 ~]# cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 114.114.114.114
nameserver 8.8.8.8
[root@Centos1 ~]# ps -ef | grep dhclient #查看dhclient进程的PID号
[root@Centos1 ~]# kill -9 添加dhclient的PID号 #杀掉dhclient进程
[root@Centos1 ~]# ps -ef | grep NetworkManager #查看NetworkManager进程PID号
root 22371 20984 0 01:38 Mar 02? 00:00:00 NetworkManager --pid-file=/var/run/NetworkManager/NetworkManager.pid
[root@Centos1 ~]# kill -9 22371 #杀掉NetworkManager进程
[root@Centos1 ~]# echo "" > /etc/resolv.conf #清空resolv.conf文件内容
[root@Centos1 ~]# service network restart #重启network服务
[root@Centos1 ~]# cat /etc/resolv.conf #当把dhclient、NetworkManager两个进程杀敌后, resolv.conf的内容为空
总结: 当杀掉dhclient进程后, 重启network服务后/etc/resolv.conf文件内仍然会有内容. 查看/etc/resolv.conf时发现有NetworkManager字样, 然后杀掉NetworkManager进程后, 重启network服务在次查看/etc/resolv.conf内容时,已为空.