本機環境:
系統:Centos 網絡:NAT
虛擬機之前一直都可以連外網,但最近不能連了,現狀如下:
[root@vhost03 ~]# ping baidu.com
ping: unknown host baidu.com
查看了下本機的網卡配置:
[root@vhost03 ~]# more /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE="eth0" BOOTPROTO="static" HWADDR="00:0C:29:D7:D2:49" IPV6INIT="yes" NM_CONTROLLED="yes" ONBOOT="yes" TYPE="Ethernet" UUID="f08dcf57-d670-46b3-8298-240cd0b76bc2" IPADDR=192.168.196.129 BROADCAST=192.168.196.255 NETMASK=255.255.255.0 GATEWAY=192.168.1.1
新裝的虛擬機默認都是dhcp方式獲取IP。為了保證IP固定,自己更新了網卡信息,使用了static模式。其中最后四行是按照dhcp模式時,使用ifconfig命令獲取的信息。
查看DNS信息:
[root@vhost03 ~]# more /etc/resolv.conf # Generated by NetworkManager # No nameservers found; try putting DNS servers into your # ifcfg files in /etc/sysconfig/network-scripts like so: # # DNS1=xxx.xxx.xxx.xxx # DNS2=xxx.xxx.xxx.xxx # DOMAIN=lab.foo.com bar.foo.com
上述結果表示並沒有配置DNS。
正確的解決方式:
[root@vhost03 ~]# cd /etc/sysconfig/network-scripts/ [root@vhost03 network-scripts]# cp ifcfg-eth0 ifcfg-eth0.bak [root@vhost03 network-scripts]# vi ifcfg-eth0 DEVICE="eth0" BOOTPROTO="dhcp" HWADDR="00:0C:29:D7:D2:49" IPV6INIT="yes" NM_CONTROLLED="yes" ONBOOT="yes" TYPE="Ethernet" [root@vhost03 Desktop]# service network restart [root@vhost03 Desktop]# ifconfig eth0 Link encap:Ethernet HWaddr 00:0C:29:D7:D2:49 inet addr:192.168.196.135 Bcast:192.168.196.255 Mask:255.255.255.0 inet6 addr: fe80::20c:29ff:fed7:d249/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:222887 errors:0 dropped:0 overruns:0 frame:0 TX packets:29460 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:147116593 (140.3 MiB) TX bytes:3667288 (3.4 MiB) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:18 errors:0 dropped:0 overruns:0 frame:0 TX packets:18 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:1064 (1.0 KiB) TX bytes:1064 (1.0 KiB) [root@vhost02 ~]# netstat -rn Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface 192.168.196.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0 0.0.0.0 192.168.196.2 0.0.0.0 UG 0 0 0 eth0 [root@vhost03 Desktop]# more /etc/resolv.conf # Generated by NetworkManager domain localdomain search localdomain nameserver 192.168.196.2
根據上面的信息重新配置ifcfg-eth0文件
[root@vhost03 ~]# cd /etc/sysconfig/network-scripts/ [root@vhost03 network-scripts]# vi ifcfg-eth0 DEVICE="eth0" BOOTPROTO="static" HWADDR="00:0C:29:D7:D2:49" IPV6INIT="yes" NM_CONTROLLED="yes" ONBOOT="yes" TYPE="Ethernet" UUID="f08dcf57-d670-46b3-8298-240cd0b76bc2" IPADDR=192.168.196.129 BROADCAST=192.168.196.255 NETMASK=255.255.255.0 GATEWAY=192.168.196.2 [root@vhost03 ~]# cd /etc/sysconfig/network-scripts/ [root@vhost03 network-scripts]# service network restart [root@vhost03 network-scripts]# vi /etc/resolv.conf # Generated by NetworkManager domain localdomain search localdomain nameserver 192.168.196.2 [root@vhost03 ~]# ping www.baidu.com PING www.a.shifen.com (115.239.210.27) 56(84) bytes of data. 64 bytes from 115.239.210.27: icmp_seq=1 ttl=128 time=6.46 ms 64 bytes from 115.239.210.27: icmp_seq=2 ttl=128 time=7.00 ms
ok,問題解決。分析下來,看來是之前獲取的歷史網卡信息變了,導致不能ping外網。
之前有在其它網絡環境下重啟過宿主機,應該和這個有關。解決問題的時候發現,只要重啟網卡就會出現/etc/resolv.conf 被重置的現象。這是因為
[root@vhost02 ~]# chkconfig --list |grep -i network
NetworkManager 0:off 1:off 2:on 3:on 4:on 5:on 6:off
network 0:off 1:off 2:on 3:on 4:on 5:on 6:off
[root@vhost02 ~]# service NetworkManager stop
NetworkManager進程會實時修改/etc/resolv.conf 中的信息