virtualbox 网路选择 做web服务器

  从Fat Bloke过去写的这个关于Oracle VM VirtualBox的重要部件的博客文章开始,我将更新同为VirtualBox 5.1的一些内容。

VirtualBox中的网络功能非常强大,但是操作起来可能有点艰巨,因此这篇文章可以快速理解在VirtualBox中设置网络的不同方法,其中有几点建议可供于选择哪种配置以及何时使用。

Oracle VM VirtualBox 5.1允许你为每个guest虚拟机(尽管在GUI中仅显示4个虚拟NIC)配置最多8个虚拟NIC(网络接口控制器),并且你可以配置每个客户端的NIC

 

1.    虚拟化的NIC类型可以暴露给客户机。可用的选项有:

PCnet-PCI II(Am79C970A)

PCnet-Fast III(Am79C973)

英特尔PRO / 1000 MT桌面(82540EM)

英特尔PRO / 1000 T服务器(82543GC)

英特尔PRO / 1000 MT服务器(82545EM)

虚拟化网络适配器(virtio-net)

 

2.    NIC如何处理主机的物理网络。主要模式有:

网络地址转换(NAT)

桥接网络

内部联网

仅主机(host-only)网络

NAT与端口转发

 

NIC类型的选择取决于客户机是否有那个网卡的驱动程序。VirtualBox说明了基于客户指定创建虚拟机系统类型的NIC,你几乎不需要修改它。

但是,网络模式的选择取决于您想要怎么使用vm(客户端或服务器)以及你是否希望网络上的其他计算机可以看到它。那么让我们来看一下每个模式的更多细节

 

网络地址转换(NAT)

NAT对于当前版本的虚拟机是一种默认模式,当Guest是一个vm 的“客户端”类型时,它在很多情况下是非常有用的。(即大多数网络连接都是出站的)。这是它的工作原理:

 

当客户机操作系统启动时,通常使用DHCP获取IP地址。VirtualBox将会显示DHCP请求,并告知客户机操作系统其分配的IP地址和路由出站连接的网关地址。在这种模式下,每个vm都被分配相同的IP地址(10.0.2.15),因为每个vm都认为它们在自己的隔离网络上。当他们发送自己的流量通过网关(10.0.2.2)VirtualBox重写数据包,这使它们看起来像从主机发出数据来的而不是Guest(在主机内运行)。

这意味着即使主机在网络中移动(例如笔记本电脑在各个位置之间移动),客户端也可以工作,也可以从无线到有线的连接。

然而,另一台计算机如何启动与Guest的连接呢?例如连接到在Guest中运行的Web服务器。由于没有进入客户机操作系统的路由,所以NAT模式不是任何时候都能用的。因此对于运行在vm的服务器,我们需要一个不同的网络模式

 

NAT网络特性:

  • 客户机坐在自己的私人LAN上
  • VirtualBox充当DHCP服务器
  • VirtualBox NAT引擎翻译地址
  • 目标服务器看到的流量源自VirtualBox主机
  • 主机或客户机不需要配置
  • 客户机作为客户端时很好用
  • 客户机不适合作为服务器

 

NAT方式开启虚拟机操作:

(1)    开启一块网卡,选择网络地址转换(NAT)模式

 

(2)    启动虚拟机,查看IP

 

(3)    测试连通性,验证NAT特性

1、 如果主机可以上网,虚拟机可以上网

 

2、 虚拟机之间不能ping通

 

这个说法没错,但是如何验证呢?两个虚拟机都是NAT模式,相同的IP地址使用ping命令好像无法验证哦,我ping的时候是通的,但这是本机ping本机肯定是通的,如何验证值得思索?

3、 虚拟机可以ping通主机

 

这是我的主机IP

测试可以ping通。

4、主机不能ping通虚拟机

 

桥接网络

当你希望你的vm成为一名完全的网络公民,即与网络上的主机处在相同层级时,使用桥接网络; 在这种模式下,虚拟NIC“桥接”到主机上的物理NIC。

这样做的结果是,每个VM都可以用与主机相同的方式访问物理网络。它可以像主机一样访问网络上的任何服务,如外部DHCP服务,名称查找服务和路由信息。逻辑上讲,网络就像这样,如下所示:

 

这种模式的缺点是,如果您运行许多vm,你会很快耗尽IP地址,或者你的网络管理员会厌倦了你要求分配静态IP地址的请求。其次,如果您的主机有多个物理网卡(例如无线和有线)当您的主机跳转网络时,您必须重新配置网桥。

那么如果你想在vm中运行服务器,又不想让你的网络管理员参与其中呢?也许下面的两种模式之一是为您而设计,或者可能是更多方式的组合,如一个NAT vNIC + 1仅主机vNIC

桥接网络特点:

  • VirtualBox桥接到主机网络
  • 适合客户端或服务器与客户机
  • 消耗IP地址
  • 可能涉及客户机配置
  • 最适合生产环境 

 

桥接方式开启虚拟机操作:

(1)    开启一块网卡,选择桥接模式,选择当前主机上网的网卡。

 

这里有两块网卡可以选择,对于主机的无线网卡和以太网卡。

(2)    开启虚拟机,查看ip

 

这里的IP明显跟主机IP在一个网段。不信我们查看下:

 

我们会发现虚拟机和主机有相同的网关,而且IP地址都是通过相同的DHCP服务器获得的。

(2)验证该模式下的特性:

1、如果主机可以上网,虚拟机可以上网

 

直接访问百度就会自动跳转到这个登录界面,不过已经可以验证我们想要的。

2、虚拟机之间可以ping通;虚拟机可以ping通主机;主机可以ping通虚拟机

这是必须的,因为桥接模式下,虚拟机和主机,以及跟主机在同一个网段内的其他主机,和该网段内桥接的其他虚拟机都在一个网段内,都是通过同一个DHCP服务器获得的IP,自然可以ping通。

3、 会消耗IP池 的IP地址,因为是通过DHCP获取IP嘛

 

内部网络

当您配置一个或多个vm位于内部网络上时,VirtualBox可确保该网络上的所有流量都保留在主机中,并且仅在该虚拟网络上的vm可见。配置如下所示:

 

内部网络(在本例中为“intnet”)是一个完全隔离的网络,因此非常“安静”。当您需要一个单独的,干净的网络时,这种方式对实验是有利的,您可以使用vm来创建复杂的内部网络,为内部网络提供自己的服务。(例如ActiveDirectory,DHCP等)。注意,即使主机不是内部网络的成员,即使主机未连接到网络(例如在飞机上),该模式也允许vm运行。

注意,在此模式下,VirtualBox不提供诸如DHCP之类的“便利”服务,因此您的计算机必须静态配置或使用其中一台vm提供DHCP服务。

可以使用多个内部网络。您可以配置vm以具有多个网卡以跨内部和其他网络模式进行配置,从而根据需要提供路由。

但这一切听起来很复杂。如果您想要主机与VirtualBox一起提供IP地址给客户的内部网络怎么办?请往下看,你可能会考虑到主机网络

内部网络特点:

  • 客户机可以在同一内部网络上查看其他客户机
  • 主机看不到内部网络
  • 需要网络配置
  • 即使主机断开连接依然支持功能
  • 可与Bridged配合使用
  • 适用于多层解决方案

 

内部网络的操作:

(1)开启一块网卡,选择内部网络方式。

 

这个模式下开机虽有网卡但没有IP地址,我们需要手动配置一个静态IP

 

(2)配置静态IP地址如下:

 

这里配置了以后,我发现desktop版的Ubuntu需要刷新才会更新IP地址,而服务器版的IP地址设置就直接生效了,如果刷新就没有IP了。我这里是服务器版的Ubuntu,所以直接生效。

 

这是我另一台虚拟机,手动设置的IP地址,要想让这两台机器可以ping通,当然要设置在同一网段。

(3)测试连通性:

同为内部网络模式的虚拟机之间:

 

 

我的主机IP地址为::10.69.86.175

 

 

 

测试结果:虚拟机之间可以ping通,虚拟机跟主机之间皆ping不通。

仅主机(host-only)网络

主机网络就像内部网络,您可以指定客户机所在的网络,在这种情况下为“vboxnet0”

所有vm坐在这个“vboxnet0”网络上都会看到对方,另外主机也可以看到这些vm。但是,外部机器无法看到此网络上的客户机,因此称为“仅主机”模式。

逻辑上,网络如下所示:

 

这看起来非常类似于内部网络,但是主机现在处于“vboxnet0”,并且可以提供DHCP服务。要配置主机网络的行为方式,请查看VirtualBox Manager...首选项...网络对话框:

 

主机网络特性:

  • VirtualBox为客户机和主机创建一个专用内部网络
  • 主机看到一个新的NIC
  • VirtualBox提供了DHCP服务器
  • 客户机看不到外面的网络
  • 即使主机断开连接,客户也可以正常工作
  • 伟大的发展

 

仅主机(host-only)网络开启虚拟机操作:

(1)    打开--管理--网络--仅主机(host-only)网络,选择新建一块(虚拟)网卡,配置这块网卡的IP地址,开启DHCP服务器,就像这样:

 

(2)点开虚拟机--设置--网络,开启一块网卡,选择

开启一块网卡,选择host-only方式host-only)网络模式,选择刚才新建的那块网卡。

 

(2)    点击确认以后,最好重启virtualbox软件,然后在开机。(因为我遇到过,没重启直接打开虚拟机发现网卡没开启)查看IP地址。

 

这个IP就是通过DHCP服务器获得的,明显在地址池范围内。

(3)    测试其特性

1、 虚拟机不可以上网。此时虚拟机和主机相当于一个独立的局域网内,无法访问外网。

2、虚拟机可以ping通主机;主机可以ping通虚拟机;虚拟机之间也可以ping通,(前提是都是通过刚才方式在本机上开启的虚拟机)

 

 

注意:虚拟机与主机通信是通过主机的名为VirtualBox Host-Only Network的网卡,因此ip是该网卡ip 192.168.0.1,而不是你现在正在上网所用的ip。

端口转发与NAT网络

现在你可能会认为我们已经提供了足够的模式来处理每一个可能性,但这里还有一个.

如果您在移动演示上或开发环境上,例如笔记本电脑,并且你有一个或多个需要其他机器连接的vm,你将持续在不同的客户机和主机的网络之间跳转。

在这种情况下:

  • NAT - 不能工作,因为外部机器需要连接。
  • 桥接 - 可能是一种选择,但您的客户是否希望您拥有这个IP地址,并且您的软件可以应对不断变化的网络吗?
  • 内部网络 - 我们需要vm(s)在网络上可见,所以这是不行的。
  • 仅主机网络 - 与上述相同的问题,我们希望外部机器连接到vm。

保存当天进入端口的转发!

  1. 配置您的vm使用NAT网络;
  2. 添加端口转发规则;
  3. 外部机器连接到“主机”:“端口号”,VirtualBox将连接转发到guest:指定端口号。

例如,如果您的vm在端口80上运行Web服务器,则可以设置如下所示的规则: 

 

其内容如下:“主机端口8080上的任何连接将转发到该vm的端口80”。

 

       这提供了一个移动演示系统,每次将笔记本电脑连接到不同的LAN /网络时,它不需要重新配置。

概要

VirtualBox有一个非常有力的选项,就是允许你设置几乎任何您的心想的配置。 
有关更多信息,请查看虚拟网络上的VirtualBox用户手册  。

关于端口转发与NAT网络测试的相关操作:

(1)依然是启用一块网卡,选择NAT模式,添加端口转发规则。

 

点击端口转发设置端口转发规则:

 

我这里设置了两个端口转发规则,一个是为了测试SSH,一个是测试WEB服务。

(2)开启虚拟机,打开SSH服务、Nginx服务。

这是NAT模式下的IP地址

 

这说明开启了ssh服务

 

这说明开启了Nginx服务

(3)测试端口转发:

我的本机IP为10.69.86.175

 

因为我之前设置的转发就是2222端口映射到22端口。

成功连上虚拟机。

 

成功通过8080端口转发,访问到虚拟机80端口的web服务。

p.s:文档补充内容都是我操作中的过程,如错误欢迎指正,如有更好的方法也希望分享。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值