# VirtualBox网络

本篇主要总结下VirtualBox的网络模式:

  • NAT模式
  • 桥接模式
  • 内部网络模式
  • 仅主机适配器(Host-Only)模式

# NAT模式

# 定义

NAT是Network Address Translation,即"网络地址转换",它把局域网内部的一个私有IP转换成一个公用IP出现在Internet上。这样当我们想访问某个局域网内的一个机器,只需要使用公网IP就能访问这个局域网内的主机。它不仅能让局域网内多个计算机共享一个公网IP,节省公网IP,还能让

在IP地址有三部分是私有IP,也就是只能在局域网内使用的IP:

网络号 范围
10.0.0.0/8 10.0.0.0~10.255.255.255
172.16.0.0/12 172.16.0.0~172.31.255.255
192.168.0.0/16 192.168.0.0~192.168.255.255

其余是公网IP,NAT功能通常被集成到路由器,防火墙,ISDN路由器等网关设备中,也可以由局域网上的电脑安装NAT软件来实现。NAT技术主要有三种类型:

  • Static NAT:将内部网络的私有IP地址一对一转换为公有IP地址,某个私有IP只能转换成某个公有IP,这样可实现外部网络对内部网络中一些设备(比如路由器)的访问。
  • Dynamic NAT:几个公网IP组成一个地址池,将内部网络的私有IP与这个地址池中的一个IP映射,至于与哪个IP映射,它是随机不确定的,当公网IP略少于局域网内部计算机数量时,可以采用这种方式。
  • Network Address Port Translation:把内部地址的(私有IP:端口)映射到(公网IP:端口),它适用于内网的几个计算机为外网提供不同的服务。

# VirtualBox中的NAT

这种模式中,可以把虚拟机想象成是局域网中的一个台机器,而主机是外网中的一台机器,而VirtualBox则为虚拟机提供了一个带NAT功能的路由器,虚拟机可以访问主机,可以通过主机访问外网,但是主机要访问虚拟机的话需要端口转发设置,其中主机IP可以设置为本机IP或者127.0.0.1,否则虚拟机对主机是不可访问的。

在VirtualBox中的NAT模式有两种:"网络地址转换(NAT)"和"NAT 网络",它们的区别在于后者可以设置虚拟机属于哪个NAT网络,也就是虚拟机在哪个路由器下面,如果两个虚拟机设置为"NAT 网络"模式,并且设置相同的NAT网络(NAT网络可以在管理-》全局设定-》网络那设置),那么这两个虚拟机可以看成是在同一局域网下两台电脑,它们有共同的路由器,而且它们可以相互访问。

# 桥接模式

# 定义

什么是桥接(Bridging)?它指的是依据OSI网络模型的链路层地址,对网络数据包进行转发的过程,在OSI网络模型中的设备比如一般的交换机,网桥都有桥接作用。

交换机大家都清楚,网桥是早期的两端口二层设备,可以用来连接不同的网段,网桥的两个端口分别有一条独立的交换信道,不共享一条背板总线,可隔离冲突域,网桥比集线器性能更好,集线器上的各端口是共享同一条背板总线的。它是一种对帧转发的技术,网桥的中继功能仅仅依赖于MAC帧的地址,根据MAC分区块,隔离碰撞,对高层协议完全透明,后来网桥被具有更多端口,可隔离冲突域的交换机(Switch)所取代。

# VirtualBox中的桥接

在这种模式中,虚拟了一个具有独立网卡的电脑,和主机的网卡的桥接起来,如同他们都连接到一个交换机上,它有和主机同一网段的IP,就好像本地局域网添加了一台电脑一样,虚拟机和主机能互通,就像局域网中的两台电脑,如果主机能上网那么虚拟机也能上网。

# 内部网络模式

这种模式下虚拟机不会共享主机的网络,虚拟机和主机是不互通的,但是虚拟机之间是互通的,就好像在一个局域网中。这种模式下的虚拟机不受主机网络的影响,主机是否联网不会影响虚拟机。

# 仅主机适配器模式

在这种模式下,VirtualBox在主机虚拟了一个适配器,而主机通过这个适配器来和虚拟机通讯,主机和虚拟机是互通的,但是通信使用的是主机的虚拟适配器的IP。虚拟机和虚拟机之间也是互通的。但是如果不设置,虚拟机是上不了外网的。

# 常见问题

现在希望实现一种场景是不管主机如何切换网络,总能以相同的访问虚拟机,且虚拟机能访问外网,有两种方式:

  1. 使用NAT端口映射。
  2. 虚拟机使用两个网卡,一个网卡使用NAT模式,用来上网,另一个网卡设置为仅主机模式,设置为固定IP,让主机访问虚拟机。