场景与需求分析
在企业网络环境中,经常遇到一个典型问题:使用VirtualBox创建的虚拟机,如何既能访问外部互联网,又能从宿主机(本地PC)方便地访问和管理?很多新手会尝试直接使用桥接模式,但常常因公司DHCP策略限制而无法成功获取IP地址。
因此,一个更通用且可靠的解决方案是:为虚拟机配置双网卡。一块网卡用于访问外网(NAT模式),另一块网卡用于宿主机内网访问(仅主机模式)。
为什么需要双网卡?
- 访问外网:虚拟机通过NAT(网络地址转换) 模式访问外网。虚拟机发出的网络请求,会经过VirtualBox内置的NAT设备转发到宿主机的物理网卡,再抵达互联网。这个过程对宿主机网络是透明的。
- 访问内网:如果我们想从宿主机
ping通虚拟机或通过SSH连接,就需要一个双方共有的网络通道。NAT模式在宿主机端没有对应的实体网卡,无法直接路由。而VirtualBox在安装时会默认创建一块虚拟的 “仅主机(Host-Only)”网络适配器,它就像一根虚拟网线,一端连着宿主机,一端连着虚拟机,构成了一个私有的内部网络。这正是实现宿主机与虚拟机互访的关键。
第一步:配置VirtualBox全局网络
首先,我们需要在VirtualBox管理器中启用并配置好“仅主机”网络。
- 打开VirtualBox,进入
管理 -> 工具 -> 网络。
- 选择 “仅主机(Host-Only)网络” 选项卡。
- 如果列表为空,点击右侧的 “创建” 按钮,VirtualBox会生成一块新的虚拟网卡(如
VirtualBox Host-Only Ethernet Adapter)。
- 选中创建的网卡,点击 “属性” 图标(螺丝刀形状)。
- 在这里,你可以设置宿主机侧此网卡的IP地址(例如
172.16.50.1)。
- 可以配置DHCP服务器,为接入此网络的虚拟机自动分配IP(例如网段
172.16.50.100-200)。
- 在Windows的“网络连接”或Linux的
ifconfig/ip addr中,确认此虚拟网卡已启用。

第二步:为虚拟机配置双网卡
接下来,为特定的虚拟机设置两块虚拟网卡。
- 在VirtualBox主界面,选中目标虚拟机,点击 “设置”。
- 进入 “网络” 选项。
- 网卡1:启用,连接方式选择 “网络地址转换(NAT)”。此网卡负责虚拟机访问外网。
- 网卡2:启用,连接方式选择 “仅主机(Host-Only)网络”,界面名称选择你刚才创建或已存在的虚拟网卡(如
VirtualBox Host-Only Ethernet Adapter)。此网卡负责与宿主机通信。
- 点击“确定”保存配置。

第三步:配置虚拟机内部网络(以欧拉OS为例)
启动虚拟机,进入系统后,需要配置两块网卡的IP地址。这里以欧拉(OpenEuler)21.10系统为例,其他Linux发行版配置文件路径可能不同,但原理相通。
1. 查看网络接口
使用 ip addr 命令,确认两块网卡已被系统识别(通常为 enp0s3 和 enp0s8)。
2. 配置NAT网卡(enp0s3)
NAT网卡通常通过DHCP自动获取IP,无需手动配置静态IP。只需确保其配置文件(如 /etc/sysconfig/network-scripts/ifcfg-enp0s3)中 BOOTPROTO=dhcp 且 ONBOOT=yes。
3. 配置仅主机网卡(enp0s8)
这是实现内网互访的关键,需要配置静态IP,且需与宿主机虚拟网卡在同一网段。
-
复制一个网卡配置文件模板:
cd /etc/sysconfig/network-scripts/
cp ifcfg-enp0s3 ifcfg-enp0s8
-
为新网卡生成一个唯一的UUID:
uuidgen
记下输出的UUID(例如 5e940b2d-e8ec-44aa-abc7-b98be2a30e26)。
-
编辑 ifcfg-enp0s8 配置文件:
vi ifcfg-enp0s8
修改或确认以下关键参数:
TYPE=Ethernet
NAME=enp0s8
DEVICE=enp0s8
UUID=5e940b2d-e8ec-44aa-abc7-b98be2a30e26 # 替换为刚才生成的UUID
ONBOOT=yes
BOOTPROTO=static # 设置为静态IP
IPADDR=172.16.50.77 # 设置一个与宿主机虚拟网卡同网段的IP,如172.16.50.77
NETMASK=255.255.255.0
# 如果需要,可以设置网关,但仅主机网络通常不需要网关
# GATEWAY=172.16.50.1
-
重启网络服务或重启特定网卡使配置生效。掌握systemctl或service等网络服务管理命令是Linux系统运维的基础技能。
# 方法一:重启所有网络接口
systemctl restart network
# 方法二:分别重启两块网卡
ifdown enp0s3 && ifup enp0s3
ifdown enp0s8 && ifup enp0s8
再次使用 ip addr 命令,确认两块网卡均已获得正确的IP地址。
第四步:网络连通性验证
验证外网访问(虚拟机 -> 互联网)
在虚拟机内部,尝试 ping 一个外网地址或域名:
ping www.baidu.com
如果能够收到回复,说明NAT网络配置成功,虚拟机可以访问互联网。
验证内网访问(宿主机 -> 虚拟机)
在宿主机上(Windows系统可按 Win+R 输入 cmd 打开命令提示符),ping 你为虚拟机配置的“仅主机”网络IP地址:
ping 172.16.50.77
如果能够ping通,恭喜你,网络配置成功!现在你可以从宿主机通过SSH(端口22)、FTP或任何其他基于IP的服务连接到这台虚拟机了。
总结
通过为VirtualBox虚拟机配置 “NAT + Host-Only”双网卡,我们完美解决了在企业复杂网络环境下的两大核心需求:
- 虚拟机便捷访问外网,方便安装软件、更新系统。
- 宿主机稳定访问虚拟机,为本地开发、测试和服务管理提供了可靠的网络基础。这种配置方式隔离性好,不依赖外部网络环境,是学习和开发环境中非常推荐的VirtualBox网络方案。
|