睿诚科技协会

VirtualBox共享网络如何配置与使用?

在 VirtualBox 中,你提到的“共享网络”通常指的是 NAT(Network Address Translation,网络地址转换) 模式,这是 VirtualBox 默认的网络模式,也是最容易配置的。

VirtualBox共享网络如何配置与使用?-图1
(图片来源网络,侵删)

什么是 NAT 模式?

你可以把 NAT 模式想象成一个带路由功能的路由器

  • 你的电脑(主机, Host):就像这个路由器连接的局域网。
  • 你的虚拟机(客户机, Guest):就像连接在这个路由器上的一个设备(比如你的手机或电脑)。
  • VirtualBox 的 NAT 引擎:就是路由器本身。

工作流程如下:

  1. 虚拟机想要访问外部网络(比如互联网)时,它会发送一个数据包。
  2. 这个数据包到达 VirtualBox 的 NAT 引擎。
  3. NAT 引擎会将这个数据包的源 IP 地址(虚拟机的内网 IP)替换成你主机的 IP 地址
  4. 这个数据包就以你主机的身份发送到了互联网上。
  5. 当互联网上的服务器返回数据时,数据包先发到你主机。
  6. 你主机的 NAT 引擎根据记录的“会话”,将数据包的目标地址再改回虚拟机的内网 IP,最后转发给虚拟机。

核心特点:

  • 简单易用:无需任何额外配置,虚拟机就能“上网”。
  • 单向访问:虚拟机可以访问外部网络(主机可以上网),但外部网络(包括你自己的主机)无法直接访问虚拟机,虚拟机在互联网上是一个“透明”的存在,你不知道它的真实 IP。

如何配置 NAT 模式(默认设置)

通常情况下,VirtualBox 在创建虚拟机时就已经默认为你配置好了 NAT 模式,你几乎不需要做任何操作。

VirtualBox共享网络如何配置与使用?-图2
(图片来源网络,侵删)

步骤 1:创建或编辑虚拟机网络设置

  1. 打开 VirtualBox,选中你的虚拟机。
  2. 点击“设置”(Settings)按钮。
  3. 在左侧菜单中,选择“网络”(Network)。
  4. 在“Attached to:”(连接方式)的下拉菜单中,你会看到默认就是 NAT
  5. 确保右侧的“网卡 1”(Adapter 1)是勾选状态。

步骤 2:在虚拟机内部获取 IP

启动你的虚拟机(Windows, Linux),然后打开命令行或终端。

  • 在 Windows 虚拟机中:

    ipconfig

    你会看到一个类似“以太网适配器 VirtualBox NDIS6 Miniport”的适配器,它通过 DHCP 自动获取了一个 IP 地址(通常是 x.x.x168.x.x 网段)。

  • 在 Linux 虚拟机中:

    ip a
    # 或者
    ifconfig

    你会看到一个类似 eth0enp0s3 的网卡,也通过 DHCP 获得了 IP 地址。

你的虚拟机已经可以通过 NAT 模式访问互联网了,你可以尝试 ping www.baidu.comping 8.8.8.8 来测试。


NAT 模式的高级配置:端口转发

NAT 模式的最大限制是无法从主机访问虚拟机,但 VirtualBox 提供了一个强大的功能来解决这个限制:端口转发

端口转发允许你将主机上的某个端口(8080)的流量,转发到虚拟机的某个端口(80),这样,当你在主机的浏览器中访问 http://localhost:8080 时,请求就会被自动发送到虚拟机的 Web 服务器(监听在 80 端口)。

应用场景:

  • 在虚拟机中运行一个网站,想用主机的浏览器访问它。
  • 在虚拟机中运行一个 SSH 服务器,想用主机的 SSH 客户端连接它。
  • 在虚拟机中运行一个数据库,想在主机上用管理工具连接它。

配置步骤:

我们以“从主机 SSH 连接到虚拟机”为例。

  1. 在虚拟机中启用 SSH 服务

    • 对于 Ubuntu/Debian: sudo apt update && sudo apt install openssh-server
    • 对于 CentOS/RHEL: sudo yum install openssh-server
    • 确保虚拟机的防火墙允许 SSH 连接(默认端口 22)。
  2. 在 VirtualBox 中设置端口转发

    • 回到虚拟机的“设置” -> “网络”页面。
    • 确保“连接方式”仍然是 NAT
    • 在右侧的“NAT 网络设置”区域,点击“端口转发...”(Port Forwarding...)按钮。
  3. 添加转发规则

    • 点击右上角的“+”号添加新规则。
    • 名称:给规则起个有意义的名字,SSH_to_Ubuntu
    • 协议:选择 TCP(SSH 默认使用 TCP)。
    • 主机 IP:留空或填写 0.0.1(表示只允许本机访问,更安全)。
    • 主机端口:填写一个你主机上未被占用的端口,2222
    • 子系统 IP:留空,VirtualBox 会自动将流量转发给虚拟机的内网 IP。
    • 子系统端口:填写虚拟机上服务监听的端口,这里是 22(SSH 默认端口)。
    • 点击“OK”保存。
  4. 连接测试

    • 在你的主机上(不是虚拟机里),打开终端或命令提示符。
    • 使用 SSH 命令连接,但端口要写成你设置的主机端口:
      # 格式: ssh <虚拟机用户名>@<主机IP> -p <主机端口>
      ssh your_vm_user@localhost -p 2222
      # 或者
      ssh your_vm_user@127.0.0.1 -p 2222
    • 输入虚拟机用户的密码,你就能成功连接到虚拟机了!

NAT 模式的优缺点总结

优点 缺点
配置简单:无需任何配置即可上网。 无法从外部访问:默认情况下,虚拟机是一个“黑盒”,无法被主机或其他电脑主动访问。
安全隔离:虚拟机与外部网络完全隔离,受主机防火墙保护。 部分应用受限:一些 P2P 应用、在线游戏或需要直接暴露的服务在 NAT 模式下可能无法正常工作。
节省 IP 地址:虚拟机使用私有 IP,不会消耗你局域网内的公网或私有 IP 资源。 主机无法直接访问虚拟机服务:必须通过端口转发才能实现,配置相对复杂。

其他网络模式简介(作为对比)

为了更好地理解 NAT,这里简单提一下 VirtualBox 的其他网络模式:

  1. 桥接模式:最像物理连接,虚拟机的网卡直接桥接到你主机的物理网卡上,相当于虚拟机和主机在同一个局域网里拥有平等的地位,虚拟机可以获取与你主机同网段的 IP 地址,局域网内的任何设备都可以直接访问它。
  2. 仅主机模式:创建一个完全独立的私有网络,只有主机和虚拟机可以互相访问,虚拟机无法访问外部互联网,非常适合在主机和虚拟机之间进行安全的文件共享或服务测试。
  3. 内部网络模式:创建一个完全隔离的网络,只有连接到这个“内部网络”的虚拟机之间可以互相通信,主机和其他虚拟机都无法访问。

常见问题排查

  • 问题:虚拟机无法上网?

    • 检查:确认虚拟机的“网络设置”是 NAT 模式。
    • 解决:在虚拟机内释放并重新获取 IP 地址(Windows: ipconfig /renew,Linux: sudo dhclient eth0),如果还不行,尝试在 VirtualBox 的“全局设定” -> “网络” -> “NAT 网络”中,点击“重置”按钮。
  • 问题:端口转发后,主机还是无法访问虚拟机?

    • 检查
      1. 虚拟机内的服务(如 SSH、Web 服务器)是否已经启动?
      2. 虚拟机内的防火墙是否允许对应端口的流量?
      3. 端口转发规则中的“子系统端口”是否正确?
      4. 主机端口是否被其他程序占用?
    • 解决:逐一排查以上几点,可以使用 telnet <主机IP> <主机端口> (在 Windows 上) 或 nc -zv <主机IP> <主机端口> (在 Linux/macOS 上) 来测试端口是否可达。

希望这份详细的指南能帮助你完全理解并掌握 VirtualBox 的 NAT 共享网络功能!

分享:
扫描分享到社交APP
上一篇
下一篇