VirtualBox虚拟机网络设置四种模式详细说明

VirtualBox的提供了四种网络接入模式,它们分别是:

1、NAT 网络地址转换模式(NAT,Network Address Translation)

2、Bridged Adapter 桥接模式

3、Internal 内部网络模式

4、Host-only Adapter 主机模式

第一种 NAT模式 

NAT模式是最简单的实现虚拟机上网的方式,你可以这样理解:Vhost访问网络的所有数据都是由主机提供的,vhost并不真实存在于网络中,主机与网络中的任何机器都不能查看和访问到Vhost的存在。

虚拟机与主机关系:

只能单向访问,虚拟机可以通过网络访问到主机,主机无法通过网络访问到虚拟机。

虚拟机与网络中其他主机的关系:

只能单向访问,虚拟机可以访问到网络中其他主机,其他主机不能通过网络访问到虚拟机。

虚拟机与虚拟机之间的关系:

相互不能访问,虚拟机与虚拟机各自完全独立,相互间无法通过网络访问彼此。

IP:10.0.2.15
网关:10.0.2.2
DNS:10.0.2.3

一台虚拟机的多个网卡可以被设定使用 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方案优缺点:

笔记本已插网线时: 虚拟机可以访问主机,虚拟机可以访问互联网,在做了端口映射后(最后有说明),主机可以访问虚拟机上的服务(如数据库)。

笔记本没插网线时: 主机的“本地连接”有红叉的,虚拟机可以访问主机,虚拟机不可以访问互联网,在做了端口映射后,主机可以访问虚拟机上的服务(如数据库)。

第二种 Bridged Adapter模式

网桥模式是我最喜欢的用的一种模式,同时,模拟度也是相当完美。你可以这样理解,它是通过主机网卡,架设了一条桥,直接连入到网络中了。因此,它使得虚拟机能被分配到一个网络中独立的IP,所有网络功能完全和在网络中的真实机器一样。

虚拟机与主机关系:

可以相互访问,因为虚拟机在真实网络段中有独立IP,主机与虚拟机处于同一网络段中,彼此可以通过各自IP相互访问。

虚拟机于网络中其他主机关系:

可以相互访问,同样因为虚拟机在真实网络段中有独立IP,虚拟机与所有网络其他主机处于同一网络段中,彼此可以通过各自IP相互访问。

虚拟机于虚拟机关系:

可以相互访问,原因同上。

IP:一般是DHCP分配的,与主机的“本地连接”的IP 是同一网段的。虚拟机就能与主机互相通信。

笔记本已插网线时:(若网络中有DHCP服务器)主机与虚拟机会通过DHCP分别得到一个IP,这两个IP在同一网段。 主机与虚拟机可以ping通,虚拟机可以上互联网。

笔记本没插网线时:主机与虚拟机不能通信。主机的“本地连接”有红叉,就不能手工指定IP。虚拟机也不能通过DHCP得到IP地址,手工指定IP后,也无法与主机通信,因为主机无IP。

这时主机的VirtualBox Host-Only Network 网卡是有ip的,192.168.56.1。虚拟机就算手工指定了IP 192.168.56.*,也ping不能主机。

第三种 Internal模式

内网模式,顾名思义就是内部网络模式,虚拟机与外网完全断开,只实现虚拟机于虚拟机之间的内部网络模式。

虚拟机与主机关系:

不能相互访问,彼此不属于同一个网络,无法相互访问。

虚拟机与网络中其他主机关系:

不能相互访问,理由同上。

虚拟机与虚拟机关系:

可以相互访问,前提是在设置网络时,两台虚拟机设置同一网络名称。如上配置图中,名称为intnet。

IP: VirtualBox的DHCP服务器会为它分配IP ,一般得到的是192.168.56.101,因为是从101起分的,也可手工指定192.168.56.*。

笔记本已插网线时:虚拟机可以与主机的VirtualBox Host-Only Network 网卡通信

这种方案不受主机本地连接(网卡)是否有红叉的影响。

第四种 Host-only Adapter模式

主机模式,这是一种比较复杂的模式,需要有比较扎实的网络基础知识才能玩转。可以说前面几种模式所实现的功能,在这种模式下,通过虚拟机及网卡的设置都可以被实现。

我们可以理解为Vbox在主机中模拟出一张专供虚拟机使用的网卡,所有虚拟机都是连接到该网卡上的,我们可以通过设置这张网卡来实现上网及其他很多功能,比如(网卡共享、网卡桥接等)。

虚拟机与主机关系

默认不能相互访问,双方不属于同一IP段,host-only网卡默认IP段为192.168.56.X 子网掩码为255.255.255.0,后面的虚拟机被分配到的也都是这个网段。通过网卡共享、网卡桥接等,可以实现虚拟机于主机相互访问。

虚拟机与网络主机关系

默认不能相互访问,原因同上,通过设置,可以实现相互访问。

虚拟机与虚拟机关系

默认可以相互访问,都是同处于一个网段。

虚拟机访问主机 用的是主机的VirtualBox Host-Only Network网卡的IP:192.168.56.1 ,不管主机“本地连接”有无红叉,永远通。

主机访问虚拟机,用是的虚拟机的网卡3的IP: 192.168.56.101 ,不管主机“本地连接”有无红叉,永远通。

虚拟机访问互联网,用的是自己的网卡2, 这时主机要能通过“本地连接”有线上网,(无线网卡不行)

通过对以上几种网络模式的了解,我们就可以灵活运用,模拟组建出我们所想要的任何一种网络环境了。

比如我想模拟出来一个一台主机,监控一个局域网上网情况的网络环境。

首先我开启了两台虚拟机vhost1与vhost2,当然如果硬件允许,我同样可以再增加vhost3、vhost4…
所有的vhost我都设置成internat内网模式,网络名称为intnal,网关为192.168.56.100,意思就是通过 192.168.56.100网卡上网。其中有一台vhost1我设置为双网卡,一张为内网模式(192.168.56.100),一张为网桥模式(192.168.1.101)。两张网卡

设置双网卡共享上网

虚拟机之间为局域网,其中有一台虚拟机vhost1通过与外网相连,所有局域网中的虚拟机又通过vhost1来实现上外网。这样vhost1就可以监控整个虚拟机局域网上网情况了。

NAT 设置端口映射

你可以设置一个虚拟机的服务(比如 WEB 服务),通过使用命令行工具 VboxManage 代理。你需要知道虚拟机的服务使用哪个端口,然后决定在主机上使用哪个端口(通常但不总是想要使虚拟机和主机使用同一个端口)。在主机上提供一个服务需要使用一个端口,你能使用在主机上没有准备用来提供服务的任何端口。一个怎样设置新的 NAT 例子,在虚拟机上连接到一个 ssh 服务器,需要下面的三个命令:

VBoxManage setextradata 'Linux Guest' 'VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/Protocol' TCP

VBoxManage setextradata 'Linux Guest' 'VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/GuestPort' 22

VBoxManage setextradata 'Linux Guest' 'VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/HostPort' 2222

说明:VboxManage 是一个命令行程序,请查询你的 VirtualBox 安装目录,'Linux Guest' 是虚拟主机名。guestssh 是一个自定义的名称,你可以任意设置,通过上面的三个命令,把虚拟机的 22 端口 转发到主机的 2222 端口。
又比如,我在虚拟机 debian 上安装了 apache2 服务器,使用 80 端口,映射到主机的 80 端口。使用下面的命令。

'C:\Program Files\innotek VirtualBox\VBoxManage.exe' setextradata 'debian' 'VBoxInternal/Devices/pcnet/0/LUN#0/Config/huzhangsheng/Protocol' TCP
'C:\Program Files\innotek VirtualBox\VBoxManage.exe' setextradata 'debian' 'VBoxInternal/Devices/pcnet/0/LUN#0/Config/huzhangsheng/GuestPort' 80
'C:\Program Files\innotek VirtualBox\VBoxManage.exe' setextradata 'debian' 'VBoxInternal/Devices/pcnet/0/LUN#0/Config/huzhangsheng/HostPort' 80

注意:要使设置生效,请关掉 VirtualBox 再运行虚拟机,我把 VirtualBox 安装在 winxp 上,在虚拟机中安装 debian 4.02r ,虚拟机名是 debian ,并安装了 apache2 php5 mysql-server ,在主机上用IE浏览 http://localhost,成功转发到虚拟机 debian 的 apache2 web 服务器上

个人感觉通过使用端口映射的方式很不爽,还不如直接桥接来的快,现在多数情况下连接到网络是没问题的,端口映射还需要在宿主跟虚拟机都额外开某个服务,感觉不爽。

“网络”配置页面有4个方案:

1:NAT 网络地址转换(Network Address Translation)

2:Birdged Network 桥接

3:Internal Network 内部网络(可以是虚拟机与虚拟机之间)

4:Host-Only 只与主机通信(大概吧)

安装完VirtualBox2.2后,主机多了一个“VirtualBox Host-Only Network ”本地网卡。

我的网络环境:

主机:

系统:xp

“本地连接”的IP:由于是笔记本,经常换工作网络环境,都是通过DHCP分配的,有时候还无网络,“本地连接”有红叉(对主机与虚拟机通信有影响)。

“VirtualBox Host-Only Network网卡”IP:192.168.56.1 ,因为VirtualBox的DHCP服务器IP是192.168.56.100,要在同一网段。

虚拟机:要能与主机互相通信,要能访问互联网(不须要被互联网访问)。

系统:win2003

网卡1,网卡2,网卡3 后面说各网卡的配置情况

各网卡的配置情况

网卡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:一般是DHCP分配的,与主机的“本地连接”的IP 是同一网段的。虚拟机就能与主机互相通信。

笔记本已插网线时:(若网络中有DHCP服务器)主机与虚拟机会通过DHCP分别得到一个IP,这两个IP在同一网段。 主机与虚拟机可以ping通,虚拟机可以上互联网。

笔记本没插网线时:主机与虚拟机不能通信。主机的“本地连接”有红叉,就不能手工指定IP。虚拟机也不能通过DHCP得到IP地址,手工指定IP后,也无法与主机通信,因为主机无IP。

这时主机的VirtualBox Host-Only Network 网卡是有ip的,192.168.56.1。虚拟机就算手工指定了IP 192.168.56.*,也ping不能主机。

网卡3: 用Host-Only 方案

ip: VirtualBox的DHCP服务器会为它分配IP ,一般得到的是192.168.56.101,因为是从101起分的,也可手工指定192.168.56.*。

笔记本已插网线时:虚拟机可以与主机的VirtualBox Host-Only Network 网卡通信

笔记本没插网线时:虚拟机可以与主机的VirtualBox Host-Only Network 网卡通信

这种方案不受主机本地连接(网卡)是否有红叉的影响。

以上三种方案,可以右击虚拟机窗口最下边 两个小电视 的图标快速切换。满足各种网络环境。

关于Internal Network 方案,我也没试。

上面三种方案的总结

同进启用下面两个方案:

网卡2:用Birdged Network 方案

网卡3: 用Host-Only 方案

虚拟机访问主机 用的是主机的VirtualBox Host-Only Network网卡的IP:192.168.56.1 ,不管主机“本地连接”有无红叉,永远通。

主机访问虚拟机,用是的虚拟机的网卡3的IP: 192.168.56.101 ,不管主机“本地连接”有无红叉,永远通。

虚拟机访问互联网,用的是自己的网卡2, 这时主机要能通过“本地连接”有线上网,(无线网卡不行)

VirtualBox虚拟机网络设置四种模式刚看起来很头晕,不过只要理解四种模式的作用就可以灵活使用了

您可能感兴趣的文章:

  • VirtualBox 未指定要bridged的网络界面的解决办法
  • VirtualBox下Centos6.8网络配置教程
  • 详解如何配置 VirtualBox 中的客户机与宿主机之间的网络连接
  • VirtualBox配置虚拟网卡(桥接)——实现主机-虚拟机网络互通
  • 手把手教你使用 virtualBox 让虚拟机连接网络的教程
  • VirtualBox 2.2.0使用主机网络上网配置教程
  • 详解VirtualBox虚拟机网络环境解析和搭建-NAT、桥接、Host-Only、Internal、端口映射
  • VirtualBox 配置虚拟网卡(桥接),实现主机-虚拟机网络互通(图文教程)
  • 虚拟机VirtualBox中centos6.5网络设置图文详解
  • virtualbox虚拟机网络设置原理解析
  • virtualbox虚拟机上安装centOS的网络配置详解
(0)

相关推荐

  • 详解VirtualBox虚拟机网络环境解析和搭建-NAT、桥接、Host-Only、Internal、端口映射

    由于前几天老师要检查大作业,而我们的数据库是放在虚拟机里的(不想在本机里放太多东西,保持轻便快速...),平时是用的桥接模式,但是考虑到可能教室里不好上网(图书馆底下信号比较差...),所以就试了试断网情况,却发现无法连接到数据库,因此专门找了资料学习了一下虚拟机的网络环境,网上信息比较杂,粘贴党太多,害苦了我,因此写这篇文章供大家参考,也供自己以后参考.全是经过测试的,绝非粘贴. 本文以VirtualBox为例 如果出现主机无法ping通虚拟机的情况,请首先确认虚拟机防火墙已关闭. 一.NAT

  • 虚拟机VirtualBox中centos6.5网络设置图文详解

    最近一些日子在学习有关于虚拟机VirtualBox,现在分享给大家参考一下. 一.虚拟机网络配置 默认只是设置了网卡1:方式NAT(对应ifcfg-eth0) 我们还可以设置网卡2,网卡3.可以在系统安装完成后设置. 网卡2设置回环网卡,实现虚拟机与宿主机组成局域网(对应ifcfg-eth1),这样即使没有路由器也可以组成局域网,可以进行ssh连接. 需要宿主机安装MicrosoftLoopbackAdapter.参加附录. 网卡3设置连接到互联网,并与宿主机组成局域网(对应ifcfg-eth2

  • VirtualBox配置虚拟网卡(桥接)——实现主机-虚拟机网络互通

    网上搜出来的比较乱,讲的不明不白,因此根据自己弄过一次,确认可行的方式,做个备份,方便日后查阅. 环境: 在Oracle VM VirtualBox中安装的Ubuntu,具体版本名是:ubuntu-14.10-server-amd64 Step1: VirtualBox在虚拟机关机状态下,如图进行设置: Step 2: 虚拟机开机,输入命令:sudo ifconfig或者sudo ifconfig -a查看当前网卡配置 查看当前ip地址 Step3: 输入命令: vim /etc/network

  • virtualbox虚拟机上安装centOS的网络配置详解

    最近接触hadoop,需要在在Linux上面开发,所以我装了一个virtualbox虚拟机,在该虚拟机上面安装了一个centOS系统.linux系统是装好了,但是网络配置却另人头疼.我主要是想让宿主机和虚拟机能够互相访问. 然后我就百度了一下,根据百度的结果一步一步的配置. 安装virtualbox之后它会在宿主机上面安装一个虚拟网卡,如图 双击它,查看详情,信息如图所示 在虚拟机上面配置网络我使用的是host-only方式,当然也可以使用桥接的方式,至于他们的区别,网上很多.虚拟机上面主要是使

  • VirtualBox 2.2.0使用主机网络上网配置教程

    当VirtualBox 2.1.4升级到2.2.0以后,突然发现虚拟的系统无法使用主机的网络上网了,google了一下,发现很多人碰到这个问题,但没有解决办法,甚至有人认为是VirtualBox的Bug,其实不然. 经过研究发现,2.2.0缺省的不再是Bridge Network方式了,改为NAT,那么我们自己将网络修改回原来2.1.4的桥接方式就可以了. 1 首先,用鼠标右键点击"网上邻居",选择"属性": 图1 2 右键选择VirtualBox的host-onl

  • 详解如何配置 VirtualBox 中的客户机与宿主机之间的网络连接

    当你在 VirtualBox 虚拟机软件 中安装了各种操作系统时,你可能需要实现宿主机与虚拟机之间的相互访问. 在这篇文章中,我们将会以最简单明了的方式来说明如何配置客户机与 Linux 宿主机的网络,以实现两者相互访问或者让客户机连接到外网.(LCTT 译注:客户机指 Oracle VirtualBox 虚拟机软件中安装的操作系统,如本文中用到的 CentOS 7 和 Ubuntu 16.10 .宿主机就是你自己的笔记本电脑或台式机,注意这篇文章中作者的宿主机上安装的操作系统是 Linux M

  • 手把手教你使用 virtualBox 让虚拟机连接网络的教程

    1 设置 virtualBox 打开设置->网络 采用桥接模式连接网络,并选择对应的物理网卡. 2 设置虚拟机(centos7) 1.使用 nmcli 命令,查看当前虚拟机的所有网络基本信息: nmcli connection show 具体参数说明如下: 参数名称 说明 NAME 连网代号,通常与 DEVICE 一样 UUID 识别码 TYPE 网卡的类型:802-3-ethernet 就是以太网 DEVICE 网卡名称 * 这里的 enp0s3 是 centos7 自动生成的带随机数的网卡名

  • VirtualBox 未指定要bridged的网络界面的解决办法

    VirtualBox 未指定要bridged的网络界面的解决办法 之前换了个新的笔记本,VirtualBox上的东西也陆续迁移了过来, 基本iso安装完成后,在配置网络的时候,出现了错误,设置桥接模式 总是提示网卡1 未指定要bridged的网络界面 纠结了需求,网上的说法是进入网络适配器,选择本地连接,安装VirtualBox下的驱动, 不过这个我试了下发现还是无效的,查看网络连接里面找不到该驱动适配器 如下:是正常的桥接驱动,如果没有红色框中的网卡驱动则,实现不了桥接模式: 纠结了一下,把本

  • VirtualBox 配置虚拟网卡(桥接),实现主机-虚拟机网络互通(图文教程)

    网上搜出来的比较乱,讲的不明不白,因此根据自己弄过一次,确认可行的方式,做个备份,方便日后查阅. 环境: 在Oracle VM VirtualBox中安装的Ubuntu,具体版本名是:ubuntu-14.10-server-amd64 Step1: VirtualBox在虚拟机关机状态下,如图进行设置: Step 2: 虚拟机开机,输入命令:sudo ifconfig或者sudo ifconfig -a查看当前网卡配置 查看当前ip地址 Step3: 输入命令:vim /etc/network/

  • VirtualBox下Centos6.8网络配置教程

    win10环境下,VirtualBox和Centos6.8已经按照完毕,下面配置Centos6.8网络. 1.设置VirtualBox为桥接模式,具体的有三种联网方法,我们参考http://www.cnblogs.com/jasmine-Jobs/p/5928218.html 2.桥接模式使得宿主机和虚拟机在同一个网段内工作,ipconfig查看宿主机的ip,子网掩码,网关,我的宿主机连接的是无线网. 3.ifconfig 查看虚拟的的IP地址 4.修改网络配置 把ip地址设置为静态地址,子网掩

  • virtualbox虚拟机网络设置原理解析

    这几天在虚拟机中研究操作系统(OS)的属性问题,众所周知,最经济实惠,最廉价的方法就是架设虚拟机.这段时间我在我的个人电脑上面装了CENTOS.LINUXMINT.WINDOWS8的操作系统,系统是装好了,但是遇到了一个问题,虚拟机与实体机的网络互联,及虚拟机的网络访问问题始终没有解决. 这几天耐心下通过度娘,查找了一些资料,通过观察,渐渐弄明白了VIRTUALBOX的网络设置问题,恩,废话不多说,首先介绍一下虚拟机的几种网络连接方式. 第一种:NOT ATTACHED 顾名思义就是不设置网络连

随机推荐