VirtualBox-网络模式(翻译翻译)

VirtualBox网络模式详情见官网文档: https://www.virtualbox.org/manual/UserManual.html#networkingdetails

在VirtualBox的网络配置里面, 连接方式有以下几种

网络模式概览

  • NAT(Network Address Translation)

    如果用户想在虚拟机里面访问外网, 浏览网页, 下载文件等,使用这个模式会很有效果. 当使用windows文件分享的时候, 用这个网络模式会有限制: 参考 NAT Limitations (但是如果外部服务想要访问NAT内的服务呢😢?)

  • 桥接网卡(Bridged networking)

    面向更高级的网络(配置?)需求,比如网络模拟或者在虚拟机里面跑一个服务器. 当启用时,Oracle VM VirtualBox连接到您安装的网卡之一,并 直接交换网络数据包绕过您的主机操作系统的网络堆栈

  • 内部网络(Internal networking)

    这可以用于创建一种不同的基于软件的网络,该网络对选定的虚拟机可见,但对主机上运行的应用程序或外部世界不可见。

  • 仅主机网络(Host-only networking)

    这可以用来创建包含主机和一组虚拟机的网络,而不需要主机的物理网络接口。相反,在主机上创建一个类似于环回接口的虚拟网络接口(主机上的网络适配器会多一个VirtualBox Host-Only Ethernet Adapter),提供虚拟机与主机之间的连接。
    image

  • 通用驱动网络(generic networking)

    很少使用的一个模式: 共享相同通用网络接口.
    即: 允许用户选择一个可以包含在Oracle VM VirtualBox中的驱动程序,或者作为扩展包分发。

    • UDP Tunnel(IPv4UDP隧道)

      用于通过现有的网络基础设施直接、轻松、透明地连接运行在不同主机上的虚拟机。

    • 虚拟分布式以太网: VDE(Virtual Distributed Ethernet) networking

      用于连接Linux或FreeBSD主机的虚拟分布式以太网交换机。目前,这个选项需要从源代码编译Oracle VM VirtualBox,因为Oracle里的包不包括它。

  • NAT 网络(NAT Network)

    NAT网络是一种允许创建外部连接的内部网络

  • 云网络(Could networking)

    这可用于将本地VM连接到远程云服务上的子网。

  • 未指定(Not attached)

    在此模式下,Oracle VM VirtualBox向虚拟机报告网卡存在,但没有连接。就像没有网线插到网卡上一样。使用这种模式,就像拉虚拟以太网电缆并中断连接,这对于通知客户操作系统没有可用的网络连接并强制重新配置非常有用(重新配置网络?手动?)。

以上模式各端点联通情况

黑色双向箭头-----------> 二者都能相互访问呢
红色双向虚线带X箭头--->二者都不能相互访问
橘色单向箭头-----------> 尾部能访问头部指向的节点
绿色单向带文字箭头---->需要通过配置特定的端口转发(映射)才能访问
image

  1. Host-Only(仅主机网络)
    1.1 虚拟机与公网节点无法互通
    1.2 虚拟机之间可以互通
    1.3 虚拟机与宿主机之间可以互通
    image

  2. Internal(内部网络)
    虚拟机属于同一个内网网络
    2.1 虚拟机与公网节点无法互通
    2.2 虚拟机之间可以互通
    2.3 虚拟机与宿主机之间无法互通
    image

  3. Bridged(桥接网络)
    3.1 虚拟机与公网节点可以互通(公网能否访问虚拟机, 由公网能否访问宿主机决定)
    3.2 虚拟机之间可以互通(桥接同一个网卡?)
    3.3 虚拟机与宿主机之间可以互通
    image

  4. NAT
    4.1 虚拟机可以访问公网节点, 公网需要通过转发后的端口才能访问(公网能否访问虚拟机, 由公网能否访问宿主机决定)
    4.2 虚拟机之间无法相互访问
    4.3 虚拟机可以访问宿主机, 宿主机需要通过转发后的端口才能访问
    image

  5. NAT service(NAT网络)
    5.1 虚拟机可以访问公网节点, 公网需要通过转发后的端口才能访问(公网能否访问虚拟机, 由公网能否访问宿主机决定)
    5.2 虚拟机之间可以相互访问
    5.3 虚拟机可以访问宿主机, 宿主机需要通过转发后的端口才能访问
    image

问题(个人看法,不一定对)

NAT和NAT网络的区别?

NAT网络是virtualbox启动一个NAT服务, 几个虚拟机连接上同一个NAT网络. 类似于NAT网络下面几个虚拟机节点
NAT: 官网解释:
启用了NAT的虚拟机与通过路由器连接到Internet的真实计算机非常相似. 路由器是Oracle VM VirtualBox网络引擎,它透明地将流量从虚拟机映射到虚拟机。在Oracle VM VirtualBox中,这个路由器被放置在每个虚拟机和主机之间。这种分离最大限度地提高了安全性,因为默认情况下虚拟机不能相互通信。

公网为什么能访问到虚拟机?

这里假定的是宿主机可以访问到公网, 这样公网节点才能访问到虚拟机节点
比如Host-主机是一台开放在公网的云服务器(哪个二傻子会这么干)云服务器里面部署虚拟机
或者Host-主机是一台家用的电脑, 然后这台主机有公网IP, 这样公网节点也能访问到
但是应为NAT的广泛应用, 大部分路由器/路由器后面的设备都是在NAT后面,NAT下面的都是些内网IP, 公网无法通过NAT访问到NAT后面的设备

所以公网能否访问虚拟机, 由公网能否访问宿主机决定

posted @ 2022-11-25 16:55  你啊347  阅读(165)  评论(0编辑  收藏  举报