首页 > 代码库 > WMware 下linux系统连接网络
WMware 下linux系统连接网络
近日因学习需要尝试安装Linux开源操作系统,当然是在虚拟机环境下安装,选择的Distribution是CentOS(Community Enterprise Operating System)。用惯了Windows,初步用起来还是步履维艰,遇到的第一个问题就是安装好Linux操作系统之后连不上Internet。下面就这一问题的解决过程总结一下,由于博主对网络技术领域的知识知之甚少,下面关于原理方面的介绍属于个人理解,重点在于解决遇到的实际问题。
图1 VMware网络适配器的三种连接方式
图2 桥接(Bridge)模式(引自SophiaWang)
图3 网络地址转换(NAT)模式(引自SophiaWang)
图4 主机(Host Only)模式(引自SophiaWang)
VM的虚拟网卡可以被设置成上述的三种网络连接模式,默认情况下,VMnet0被设置成为Bridge模式,VMnet1被设置为Host Only模式,而VMnet8的默认连接方式为NAT模式。VMnet2-VMnet7和VMnet9这七块虚拟网卡用户可以自定义,但是在所有的虚拟网卡中仅有一块能被设置为NAT模式,默认情况就是VMnet8。用户可以在VMware workstation->Edit->Virtual Network Editor中查看这些信息。
图5 VMware中虚拟网卡和对应的连接模式
了解了虚拟网卡连接网络的方式之后,需要实际地来连接网络了。选择较为简单的Internet连接方式,即NAT模式,首先在“Virtual Machine Settings”中设置“Network Connection”方式为NAT模式(见图1)。打开Win7的“网络和共享中心”,选择“更改适配器设置”,如果VMware workstation安装正确的话,这里应该可以看到VMnet1和VMnet8这两块虚拟网卡。查看连接有宽带的“本地连接”的属性,顺便在“网络”选项卡下面的“此连接使用下列项目”中将VMware Bridge Protocol勾选上,以便以后选用Bridge模式的时候使用此协议。在“共享”选项卡下面“Internet连接共享”中勾选“允许其他网络用户通过此计算机的Internet连接来连接(N)”,并同时在“家庭网络连接(H)”中选择VMnet8。这样设置之后就已经将宿主计算机的网络访问权限与VMnet8共享。
图6 网络连接中可见VMnet1和VMnet8
图7 设置网络共享
下面需要配置VMnet8的IP地址和掩码等。首先查看一下VMnet8的网络属性,同样顺便在“网络”选项卡下面将“此连接使用下列项目”中将VMware Bridge Protocol勾选,以便日后Bridge模式使用。查看TCP/IPv4的属性,可以看到IP地址已经自动变为固定的192.168.137.1,子网掩码已经是255.255.255.0,这些就让其这样设置,暂且不管。
图8 VMnet8中TCP/IPv4属性
接下来需要在VM中配置VMnet8的IP属性了。如图5,打开VMware workstation->Edit->VMware Network Editor,选择VMnet8,勾选Connect a host virtual network adapter to this network和Use local DHCP service to distribute IP address to VMs。Subset IP需要与宿主VMnet8的IP在同一地址段,可填写192.168.137.0,Subset Mask应与VMnet8的子网掩码相同,即填写255.255.255.0。打开DHCP Settings,里面的Start IP address填写192.168.137.0,End IP address填写192.168.137.255,即可在这一IP段内自动分配给虚拟计算机IP地址。在NAT Settings里面将Getway IP设置为宿主计算机中VMnet8的IP,即192.168.137.1。
上述设置总结起来,就是将宿主计算机的物理网卡与VMnet8共享,VMnet8充当路由器,而VM中的虚拟计算机通过DHCP自动获得在某一个IP段内的IP地址,这些虚拟机都通过路由器(VMnet8)连接的IP与物理网卡上的Internet连接。
设置好这些之后,在VMware中启动CentOS,如果正常的话应该可以ping通网络了,打开Xwindow里面的浏览器也应该可以开始冲浪了。如果还连接不上Internet,那可以用root用户(其他用户没有权限修改配置文件)登录CentOS,检查一下文件系统->etc->sysconfig->network-scripts->ifcfg-eth0中的bootproto是不是dhcp,如果不是则修改为dhcp,然后用命令service network restart重启网络连接,就可以连上网络了。