最近捣鼓虚拟机bridge方式联网费了不少时间,原因有两个:一是刚接触到linux,各种操作不熟悉,基本还没有入门;而是学校的上网方式比较特殊(校园网路+BRAS:宽带远程接入服务设备)。并且网络上的资料都是在比较通用的宽带连接的环境下,没有具体相关细节。在苦苦寻求的时候,大胆的设置了一下IP,没想到通啦!。。。。。生活就是这样,无意间充满惊喜。废话少说,下面进入正题。
环境简介:
主机OS:Win7
网络:有线
虚拟机:VMware 8.0.2
OS:Ubuntu 12.0.4
注:
Ubuntu貌似默认上网方式是NAT,如果你最初设置网卡的时候选择了NAT方式(对应虚拟交换机:VMnet8),则不用任何操作即可上网(当然前提是主机要能上网)。
步骤: 假设虚拟机和Ubuntu OS已成功安装
(1)虚拟机Network Adapter设置Bridge方式----对应虚拟交换机:VMnet0
工作原理:
Bridge方式,即桥接。把虚拟机看成和主机在同一个网段的另一台物理主机。从这句话我们可以得出以下信息:
I、虚拟机 IP地址与主机在同一网段
II、虚拟机 子网掩码、网关以及DNS服务器地址与主机相同
为了更清晰的明白这一点,可看其网络拓扑:
开始设置:
打开虚拟机,点击“Network Adapter”选项,在“Network connection”下面选择“Bridged...”
点击虚拟机上部的“Edit”选项,选择“Virutal Network Editor...",然后再打开的Virutal Network Editor中选中"VMnet Information"下面的Bridged,并设置Bridged to 主机的网卡(不能设置为“Automatic”)。
(2)设置虚拟机 IP地址
登陆到Ubuntu,修改interfaces文件
cd /etc/network
vim interfaces
设置如下:
auto eth0
iface etho inet static
address 10.3.7.201 (主机IP地址:10.3.7.200 )
netmask 255.255.252.0 (与主机相同)
network 10.3.4.0 (与主机相同)
broadcast 10.3.7.255 (与主机相同)
gateway 10.3.4.1 (与主机相同)
(3)设置虚拟机 DNS服务器地址
注:
这里有个细节,一般认为,设置dns服务器地址,需在resolv.conf文件中,但是稍后您会发现,每次重启Ubuntu,resolv.conf修改的内容全部被清除,即被置空。
解决办法:找到resolv.conf的源头
cd /etc/resolvconf/resolv.conf.d
在此目录下有四个文件:base, head, original, tail.
在tail(如果没有此文件,则创建一个)中加入DNS服务器其地址。
vim tail
设置如下:
nameserver 58.192.112.11 (与主机相同)
nameserver 202.119.24.12 (与主机相同)
注:您还可以发现,此目录下的head文件中内容与resolv.conf一样。重启后,resolv.conf内容将为head内容 + tail内容。
(4)重启网络并测试连通性
/etc/init.d/networking restart
此时可以测试下主机与虚拟机之间的连通性:
在虚拟机下:ping 10.3.7.200 ,也可以尝试ping 10.3.4.1 (网关)
通!!!
在主机下: ping 10.3.7.201
通!!!
--------------------------------------------------------------------------------------------------------------------------------------------
此时还可以测试一下虚拟机与校园网的连通性 :ping www.seu.edu.cn (学校主页域名)
通!!!
---------------------------------------------------------------------------------------------------------------------------------------------
注:
此时仅仅是局域网主机与虚拟机的内部互通了,虽然主机能连通Internet,但虚拟机还无法连通Internet。
要使虚拟机也能上网,需要在主机上设置“因特网连接共享(ICS)”,即把宽带连接设置为“共享”,使虚拟机共享主机的Internet连接。详细内容可以参考http://blog.csdn.net/heyabo/article/details/7726522
(5)设置主机的Internet连接(即宽带连接,由于情况特殊,本人的为BRAS连接,但功能都是相同的)为共享方式
首先,按照常规的因特网连接共享设置共享
然后,设置客户机(此处指虚拟机)的TCP/IP连接时,需要根据具体情况来设置,可设置为动态获取,也可以设置为与主机同一网段的静态IP地址。
此处,选择后者。由于此时在“宽带连接”设置为共享后,主机的“本地连接”的IP地址被设置成192.168.137.1.按照常规思想的话,接下来,需要将前面的虚拟机的IP地址重新设置为与192.168.137.1在同一网段,并设置虚拟机网关为1982.168.137.1.
但是:考虑到自身的具体情况:上网方式为校园网+BRAS(需配置准确静态IP以及网关、DNS等才可联网)。如此时将主机的“本地连接”的IP地址被设置成192.168.137.1,则主机将无法联网,从而到时虚拟机也无法联网,也即没有了后续......故主机必须要上网,而主机要上网,就必须设置为学校给定的IP网段,网关、DNS等
解决办法:
考虑到 ICS 的思想:同一网段内的多台计算机共享Internet连接,即保持主机和虚拟机同一网段是关键。
产生一个想法:在主机的“本地连接”被修改后,保持“宽带连接”(此处为Bras连接)的“共享”方式,但强制将“本地连接”恢复到为原来的设置------先将主机上网,然后考虑虚拟机的连通性。
主机可以联网!
(5)重启网络
/etc/init.d/networking restart
此时发现,虚拟机能和以前一样,仍能与内部主机互通,并能连接内部校园网。
即主机连通外部网络且设置ICS + 虚拟机连通内部网络---->主机、虚拟机共享Internet,二者均可上网。
(6)测试
在“共享”后
测试与主机连通性: ping 10.3.7.200 通!
测试与校园网的连通性: ping www.seu.edu.cn 通!
测试与Internet连通性: ping www.google.com 通!
结论:选择Bridge方式上网,关键在于使主机与虚拟机在同一网段,而关于具体的IP地址并不是重点。