VMware虚拟机中Linux网络配置

来源:互联网 发布:美工强大的网游 编辑:程序博客网 时间:2024/04/29 12:56

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、 设置完毕,可以互通

原创粉丝点击