virtualbox网络连接方式有四种 nat 网络地址转换(network address translation),birdged network 桥接 ,internal network 内部网络(可以是虚拟机与虚拟机之间) ,host-only。默认新建一个虚拟机,网络连接方式是nat,可以什么也不设置,虚拟机直os接上网;后来改为bridged方式,这样虚拟机os可以设置局域网的ip便于测试;最后改为host-only方式,这样即使主机网线没有接,虚拟机os照样可以互通,虚拟机os和主机也可以互通。
virtualbox代理vmware很久了,一直在公司使用。因为虚拟机os要和局域网中的机器联合测试,所以必须具备独立的局域网ip,所以virtualbox中网络设置为bridged方式,这样虚拟机os完全可以当做一台独立的真实机器来设置,设置一个局域网ip,可以正常上网,可以和局域网任何机器通信,当然两台机器之间也是可以互相通信。这种方式完全满足要求。
但是,我必须说但是。但是一次培训的时候,却发生了意外。其实不能叫做意外,只是我感觉意外而已。培训环境中,主机没有接网线的情况下,两个虚拟机os之间、虚拟机os和主机之间都无法通信。我立马意识到是网线的问题,插上网线之后,又将主机、虚拟机os的ip地址改成这个培训环境的网络ip,才得以正常使用。虽然没有出太大问题,但是耽误了一些时间。
所以回来之后,专门上网查了相关资料,最终选择host-only方式。host-only方式,默认virtualbox启动后,主机上多一个网络设备vboxnet0,ip地址为192.168.56.1。虚拟机os如果dhcp方式,会获得192.168.56.网段的ip地址,这样主机和虚拟机os、虚拟机os之间是可以通信的。另外虚拟机os可以手工设置ip地址为192.168.56.网段的,这样固定ip方便测试。采用这种方式的虚拟机os不依赖主机的网线是否插上,对于培训环境非常有用。当然虚拟机os就无法和局域网通信了,不过虚拟机可以加多个网卡啊!另一块网卡采用birdged network方式。这样接网线不接网线,主机、虚拟机os和局域网都可以互通。
参考http://cuixiaodong214.blog.163.com/blog/static/95163982009628104255225/
1: 用nat方案
ip:10.0.2.15
网关:10.0.2.2
dns:10.0.2.3
因为virtualbox的帮助中,有以下一段说明(英译汉):
一台虚拟机的多个网卡可以被设定使用 nat,第一个网卡连接了到专用网 10.0.2.0,第二个网卡连接到专用网络 10.0.3.0,等等。默认得到的客户端ip(ip address)是10.0.2.15,网关(gateway)是10.0.2.2,域名服务器(dns)是10.0.2.3,可以手动参考这个进行修改。
nat方案优缺点:
主机已插网线时: 虚拟机可以访问主机,虚拟机可以访问互联网,在做了端口映射后,主机可以访问虚拟机上的服务(如数据库)。
主机 没插网线时: 主机的“本地连接”有红叉的,虚拟机可以访问主机,虚拟机不可以访问互联网,在做了端口映射后,主机可以访问虚拟机上的服务(如数据库)。
|
2:用birdged network 方案
ip:固定ip,与主机的ip 是同一网段的,虚拟机就能与主机互相通信,能与局域网通信,虚拟机os之间可以通信。
主机 已插网线时: 虚拟机os 与 主机 可以互通,虚拟机 能与局域网通信,虚拟机 可以上互联网。
主机 没插网线时:主机与虚拟机不能通信。因为网关肯定是不通的,网络是受影响的。
|
3: 用host-only 方案
ip: virtualbox的dhcp服务器会为它分配ip ,一般得到的是192.168.56.101,因为是从101起分的,也可手工指定192.168.56.*。
主机 已插网线时:虚拟机可以与主机通信,两个虚拟机os互通。
主机 没插网线时:虚拟机可以与主机通信 ,两个虚拟机os互通。
这种方案不受主机本地连接(网卡)是否有红叉的影响。
|
------------- 转 nat 设置端口映射 -----------
你可以设置一个虚拟机的服务(比如 web 服务),通过使用命令行工具 vboxmanage 代理。你需要知道虚拟机的服务使用哪个端口,然后决定在主机上使用哪个端口(通常但不总是想要使虚拟机和主机使用同一个端口)。在主机上提供一个服务需要使用一个端口,你能使用在主机上没有准备用来提供服务的任何端口。一个怎样设置新的 nat 例子,在虚拟机上连接到一个 ssh 服务器,需要下面的三个命令:
vboxmanage setextradata "asianux3" "vboxinternal/devices/pcnet/0/lun#0/config/guestssh/protocol" tcp
vboxmanage setextradata " asianux3 " "vboxinternal/devices/pcnet/0/lun#0/config/guestssh/guestport" 22
vboxmanage setextradata " asianux3 " "vboxinternal/devices/pcnet/0/lun#0/config/guestssh/hostport" 2222
说明:vboxmanage 是一个命令行程序,请查询你的 virtualbox 安装目录," asianux3 " 是虚拟主机名。guestssh 是一个自定义的名称,你可以任意设置,通过上面的三个命令,把虚拟机的 22 端口 转发到主机的 2222 端口。
注意:要使设置生效,请关掉 virtualbox 再运行虚拟机。
|
阅读(3501) | 评论(1) | 转发(1) |