双网卡方案(nat+host-only)是唯一能同时实现虚拟机上网与宿主机直连的可靠配置:nat网卡负责外网访问,host-only网卡构建私有通信网络,二者分工明确、互不干扰。

要让VirtualBox虚拟机既能访问外网,又能被宿主机稳定直连调试,必须突破单网卡模式的限制——双网卡组合是唯一兼顾联网与互通的可靠方案,不设双网卡就只能在“能上网”和“能连通”之间二选一。
创建Host-Only虚拟网卡
打开VirtualBox主界面→点击顶部菜单【管理】→【主机网络管理器】→点击右下角【创建】按钮。
新建网卡后,在IPv4标签页中填入:【IPv4地址:192.168.56.1】,子网掩码固定为255.255.255.0。
切换到【DHCP服务器】标签页,勾选【启用服务器】,起始IP设为192.168.56.100,结束IP设为192.168.56.200——这个范围足够分配给多台虚拟机,且不会与常见家用路由器冲突。
配置虚拟机双网卡
关闭正在运行的虚拟机(必须关机,热插拔网卡不生效)。
选中虚拟机→点击【设置】→【网络】→先确保【网卡1】已启用,连接方式选【NAT】;再启用【网卡2】,连接方式选【仅主机(Host-Only)网络】,下方【界面名称】下拉框中选择刚刚创建的vboxnet0(或类似名称)。
注意:网卡1负责上网,网卡2专用于宿主通信,顺序不能颠倒——Linux系统默认以eth0/enp0s3为第一网卡,若反着配,后续IP绑定容易错乱。
Linux虚拟机内网卡配置
启动虚拟机,用ip a命令确认两块网卡均已识别(通常为enp0s3和enp0s8)。
编辑Host-Only网卡配置文件(以CentOS/RHEL系为例):
执行sudo vi /etc/sysconfig/network-scripts/ifcfg-enp0s8,写入以下内容:
DEVICE=enp0s8<br>BOOTPROTO=static<br>ONBOOT=yes<br>IPADDR=192.168.56.101<br>NETMASK=255.255.255.0<br>NETWORK=192.168.56.0<br>BROADCAST=192.168.56.255
【关键:此处绝对不要配置GATEWAY或DNS】——一旦给Host-Only网卡加网关,所有流量会误走该路径,导致NAT网卡失效、彻底断网。
保存后执行sudo systemctl restart network(CentOS 7)或sudo netplan apply(Ubuntu 20.04+)。
Windows虚拟机内网卡配置
方法一:图形界面配置
打开【控制面板】→【网络和Internet】→【网络和共享中心】→【更改适配器设置】→右键Host-Only对应的“VirtualBox Host-Only Network”→【属性】→双击【Internet协议版本4(TCP/IPv4)】→选择【使用下面的IP地址】→填入IP:192.168.56.102,子网掩码:255.255.255.0,网关留空,DNS留空。
方法二:命令行一键配置(管理员权限运行cmd):netsh interface ip set address "VirtualBox Host-Only Network" static 192.168.56.102 255.255.255.0
配置完成后,在宿主机命令行执行ping 192.168.56.102,能通即表示Host-Only链路建立成功。
验证双通能力
第一步:在虚拟机中执行ping -c 3 8.8.8.8,有回包说明NAT上网正常。
第二步:在宿主机中执行ping 192.168.56.101(Linux)或ping 192.168.56.102(Windows),有回包说明Host-Only直连正常。
第三步:在虚拟机中执行ssh user@192.168.56.1(Linux宿主机)或\192.168.56.1(Windows资源管理器地址栏),能访问宿主机共享服务即完成全部验证。











