需要澄清一个概念,在 VirtualBox 中,并没有一个明确叫做“共享网络”的功能按钮,通常大家所说的“共享网络”,指的是以下两种情况之一:

- 让虚拟机通过宿主机的网络上网(这是最常见的“共享”需求)。
- 让宿主机和虚拟机之间,以及虚拟机之间可以互相通信。
这两种需求分别由 NAT 模式 和 仅主机模式 来实现,下面我们详细讲解这两种模式,以及它们的高级配置。
让虚拟机通过宿主机上网(最常见)
这是绝大多数用户的需求,宿主机可以上网,虚拟机也能访问互联网,VirtualBox 提供了两种非常方便的方式来实现这一点:NAT 模式 和 桥接模式。
方案 A:网络地址转换 - 最简单、最常用
这是 VirtualBox 的默认网络模式,它的工作原理就像一个路由器,你的虚拟机处在一个私有网络中,VirtualBox 在你的宿主机和虚拟机之间充当一个“中间人”(NAT设备)。
-
工作原理:
(图片来源网络,侵删)- 宿主机:拥有一个真实 IP 地址(
168.1.100)。 - 虚拟机:从 VirtualBox 获取一个私有 IP 地址(
0.2.15)。 - 当虚拟机要访问互联网时,请求会发送到 VirtualBox,VirtualBox 将请求的源 IP 地址从
0.2.15替换成宿主机的168.1.100,然后再发送出去。 - 当外部网络返回数据时,数据先到达宿主机,VirtualBox 再根据会话记录,将数据转发给虚拟机
0.2.15。
- 宿主机:拥有一个真实 IP 地址(
-
优点:
- 配置极其简单:无需任何额外设置,开箱即用。
- 安全性高:虚拟机在私有网络中,外部网络无法直接访问虚拟机,隐藏了虚拟机的真实 IP。
- 节省 IP 地址:虚拟机不占用你局域网内的一个 IP 地址。
-
缺点:
- 无法从外部网络访问虚拟机:这是最大的缺点,你无法从同一局域网内的另一台电脑直接访问你的虚拟机(比如通过 SSH、远程桌面或搭建一个网站服务)。
- 无法与宿主机直接通信:默认情况下,宿主机无法通过虚拟机的私有 IP (
0.2.15) 访问虚拟机。
方案 B:桥接模式 - 让虚拟机像独立电脑一样
桥接模式会将虚拟机的虚拟网卡直接“桥接”到你宿主机的物理网卡上,虚拟机看起来就像是局域网中的一台独立物理计算机。
-
工作原理:
(图片来源网络,侵删)- VirtualBox 会在你的物理网络(比如通过路由器连接的 Wi-Fi 或网线)中,为虚拟机申请一个独立的 IP 地址(
168.1.101)。 - 这个 IP 地址和你宿主机的 IP 地址(
168.1.100)处于同一网段。
- VirtualBox 会在你的物理网络(比如通过路由器连接的 Wi-Fi 或网线)中,为虚拟机申请一个独立的 IP 地址(
-
优点:
- 可以从任何地方访问虚拟机:只要你的物理网络允许,局域网内的任何设备都可以像访问你的宿主机一样访问虚拟机。
- 虚拟机与宿主机地位平等:它们是网络中的对等体,可以轻松互相访问。
-
缺点:
- 配置稍复杂:需要确保路由器的 DHCP 服务能正常为虚拟机分配 IP。
- 占用一个 IP 地址:虚拟机消耗了你局域网网段中的一个 IP 地址。
- 安全性较低:虚拟机直接暴露在局域网中,更容易受到攻击。
宿主机与虚拟机,以及虚拟机之间互相通信
如果你只是想让宿主机和虚拟机之间能互相访问,而不需要虚拟机访问外网,或者需要一种可控的内外网隔离环境,仅主机模式 是最佳选择。
方案 C:仅主机模式 - 创建私有隔离网络
这个模式会在宿主机和虚拟机之间创建一个完全隔离的私有网络。
-
工作原理:
- VirtualBox 会在你的宿主机上创建一个虚拟网卡(
VirtualBox Host-Only Network)。 - 虚拟机会连接到这个虚拟网卡上,并从这个虚拟网卡所在的网段获取一个 IP 地址(
168.56.101)。 - 宿主机也会被分配这个网段的一个 IP 地址(
168.56.1)。
- VirtualBox 会在你的宿主机上创建一个虚拟网卡(
-
优点:
- 完美的内外网隔离:虚拟机可以和宿主机、以及其他同样使用“仅主机模式”的虚拟机通信,但它们无法访问互联网(除非你在宿主机上进行额外配置,如 Internet 连接共享)。
- 安全性高:虚拟机完全与外部网络隔离。
- 固定 IP:IP 地址分配范围固定,便于管理。
-
缺点:
- 默认无法上网:需要手动配置才能让虚拟机访问互联网(例如在 Windows 宿主机上开启“Internet 连接共享”)。
高级配置:NAT 网络功能(解决 NAT 的痛点)
如果你既想用 NAT 模式的简单性,又想让外部网络能访问虚拟机,VirtualBox 的 “NAT 网络” 功能就是为你准备的,这是对传统 NAT 模式的一个强大升级。
什么是 NAT 网络?
它允许你创建一个自定义的、隔离的 NAT 网络,你可以手动定义这个网络网段、DHCP 地址池范围等,而不是使用 0.2.x 这个固定的、不灵活的网段。
如何配置 NAT 网络并实现端口转发?
以创建一个 Web 服务器为例,让局域网内的其他电脑能通过 http://[宿主机IP]:8080 访问到虚拟机里的网站。
第一步:创建 NAT 网络
- 打开 VirtualBox,点击“文件” -> “管理” -> “网络”。
- 在“NAT 网络”标签页,点击“添加 NAT 网络”按钮,会自动创建一个名为
NatNetwork的新网络。 - 选中它,可以配置其名称、网段(
168.15.0/24)和 DHCP 服务器地址池(168.15.100到168.15.200),保持默认即可。
第二步:将虚拟机连接到 NAT 网络
- 关闭你的虚拟机。
- 在 VirtualBox 主界面选中你的虚拟机,点击“设置” -> “网络”。
- 在“网卡 1”的“ attached to”下拉菜单中,选择 “NAT 网络”。
- 在下面的“NAT 网络”下拉菜单中,选择你刚刚创建的
NatNetwork。 - 启动虚拟机,它现在会从
168.15.0/24网段获取一个 IP 地址(168.15.101)。
第三步:配置端口转发
我们需要将宿主机上的一个端口(8080)的流量,转发到虚拟机的 Web 服务端口(80)。
- 在虚拟机的“网络设置”界面,点击“高级” -> “端口转发”。
- 点击右上角的“添加”按钮,新建一条规则:
- 名称:
web-forward(可以任意命名) - 协议:
TCP - 主机 IP:留空(表示监听宿主机所有网卡的 IP)
- 主机端口:
8080(这是局域网内其他电脑要访问的端口) - 子网 IP:留空(虚拟机会自动获取)
- 子网端口:
80(这是虚拟机内部 Web 服务监听的端口)
- 名称:
- 点击“确定”保存。
完成!
在同一局域网内的任何一台电脑上,打开浏览器,访问 http://[你的宿主机IP]:8080,流量就会被 VirtualBox 自动转发到虚拟机的 80 端口,从而访问到你虚拟机里的网站。
总结与选择建议
| 模式 | 工作原理 | 优点 | 缺点 | 适用场景 |
|---|---|---|---|---|
| NAT | VirtualBox 充当路由器,虚拟机在私有网络中 | 配置最简单、安全性高、节省 IP | 无法从外部访问虚拟机、宿主机与虚拟机默认不通 | 日常使用,只需虚拟机能上网,不对外提供服务。 |
| 桥接 | 虚拟机直接连接到物理网络 | 像独立电脑, |
