Vmware的三种联网方式:
1、use bridged networking:这种方式使得虚拟机系统拥有1个和真机系统(是指与虚拟机系统同在一台计算机上的真实环境中的系统)不一样的IP地址,从而与网络上的任何计算机互相通信,默认使用虚拟网卡VMnet0
2、 use network address translation(NAT):这种方式使得虚拟机系统拥有1个和真机系统一样的IP地址,实现虚拟机系统和真机系统互相通信.虚拟机系统可以访问网络上的其他计算机,而网络上的其他计算机不能访问虚拟机系统,默认使用虚拟网卡VMnet8
3、 use host-only networking:这种方式只实现虚拟机系统和真机系统互相通信,不能与网络上的其他计算机通信,默认使用虚拟网卡VMnet1
解决步骤:
在虚拟机的Redhat Linux中:
1、Ifconfig 查看我的网络地址,发现网卡工作正常。(如不能使用ifconfig则在shell中输入 export PATH=$PATH:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/bin:/usr/i686-pc-linux-gnu/gcc-bin/4.1.2:/usr/kde/3.5/sbin:/usr/kde/3.5/bin:/usr/qt/3/bin)
2、查看eth0的配置文件:输入 Cat /etc/sysconfig/network-scripts/ifcfg-eth0 竟然没有设置子网掩码和默认网关!
增加如下一句: Netmask:255.255.255.0 咦?默认网关是多少呢?要知道,Vmware使用的是虚拟网卡,相关的一些参数是Vmware设置的啊!
尝试得知按如下步骤即可找到:
通过以上步骤,即可找到默认网关为:192.168.40.2 所以在/etc/sysconfig/network-scripts/ifcfg-eth0中增加一条: GATEway:192.168.40.2
(例如我设置好后的全部内容为:
# Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE]
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=none //这里原本为dhcp
HWADDR=00:0c:29:f1:a3:6e
IPADDR=192.168.42.196
NETMASK=255.255.255.0
GATEWAY=192.168.42.129
NETWORK=192.168.42.0
TYPE=Ethernet
)
设置好之后,重启网络,service network restart(使用su root使用的是原来用户的环境变量,而su -root才是使用的root的环境变量); Ping一下外面吧!啊?还是ping不同啊!坑爹!
最后 在/etc/resolv.conf中增加一条: Nameserver 192.168.40.2 再次重启网络,ping一下吧!谢天谢地,终于可以ping通百度了!但是ping不通我的本机ip,可以连上互联网,却连不到我的本机,这个寄宿生连宿主都联系不到了,诡异啊!
随后我在外面的windows的cmd下ping一下我的虚拟机的IP,唉,还是无法ping通,看来还得要修改本地的IP地址等等••• 修改如下:
最后,终于能ping到虚拟机里面了。这时候,虚拟机的网络问题完全完美解决!
总结:
1、 为什么ping不通?能ping通的基础是什么?
2、 网关是干嘛的呢?
3、 为什么会出现能连上互联网,而无法连接本机?
个人解答:
网络能ping通的基础是在IP处于同一IP类(又称为网段)中,同一网段的子网掩码相同,IP地址的网段一共分为ABCDE五个网段,同一网段可以互通互联(可以没有下文提到的网关)
IP段一致了,那么不同网段的IP如何互通呢?那就是网关发挥作用了,网关能够将负责本网段和其他网段的通信(暂且可以这样理解吧!) 那为什么,最开始我在设置好了虚拟机的子网掩码和网关之后,还是ping不通呢?而修改了resolv.Conf之后就能ping通了呢?我也不知道怎么回事。
在我的映像中:resolv.Conf是DNS所用的,而DNS工作流程大概是这样的:
1。访问网络上的一个域名。
2。系统发现是域名,查看resolv.conf文件的域名服务器地址,发一个DNS数据包给这个域名服务器。
3。域名服务器解析这个域名,回复域名所对应的IP地址。
4。系统再向域名所对应的地址发送请求包。
另外:如果没有resolv.conf文件,表示本机的域名服务是由/etc/host提供的 如果有resolv.conf文件且为空,表示本机是DNS域名服务器。 如果有resolv.conf文件且不为空,表示访问其它域名服务器。
难道说,192.168.40.2也充当着DNS服务器的作用?我也不知道怎么回事•••
而后来虚拟机可以ping互联网,而本机为什么无法ping到虚拟机? 因为本机ping的时候是用到本地连接,而虚拟机通过虚拟网卡vmnet8之后,直接走向了宽带连接。
以上是我的对此次联网出现的问题的个人理解,可能会有错误吧!希望大家多多指正!
再总结一下本次Vmware无法联网修复步骤:
1、找到默认网关,具体步骤上文已经说明,我的是:192.168.40.2
2、在/etc/sysconfig/network-scripts/ifcfg-eth0增加如下类似两条: Netmask:255.255.255.0 GATEway:192.168.40.2
3、 在/etc/resolv.conf中增加类似一条: Nameserver: 192.168.40.2(默认网关的值)
4、 重启虚拟机网络
5、 设置宿主机的本地连接,使得寄生机和宿主机处于同一网段上
6、 设置完毕,可以互通