一是桥接模式直接复用宿主机的物理网卡,二是通过宿主机的网络共享功能间接接入网络,原理上,虚拟机内部必须有一块虚拟网卡,但宿主机并不一定需要单独创建VMnet1、VMnet8这类虚拟网卡。
很多人在VMware或VirtualBox里折腾网络时,会习惯打开“虚拟网络编辑器”,看到VMnet1、VMnet8这些虚拟网卡就发懵,不虚拟网卡”通常指两种需求:一种是宿主机上不增加任何额外的虚拟网卡设备,另一种是虚拟机内部不安装虚拟网卡驱动,这两种情况下的联网方案完全不同,下面拆开讲。
不虚拟网卡虚拟机如何实现网络连接?先分清“虚拟网卡”和“虚拟机网卡”
在动手之前,先把概念理清。
- 虚拟机网卡:虚拟机内部的那块网卡,比如VMware的e1000、AMD PCNet,或者VirtualBox的Intel PRO/1000,没有它,虚拟机操作系统根本不知道怎么发送和接收网络数据包。
- 宿主机虚拟网卡:虚拟化软件在宿主机上创建的软件网卡,常见的有VMware的VMnet1(仅主机模式)和VMnet8(NAT模式),它们的作用是让宿主机和虚拟机之间多一条直连通道。
当你听到“不虚拟网卡”这个说法,绝大多数人想表达的是:宿主机不开额外虚拟网卡(不装VMnet1、VMnet8),也不想碰NAT、仅主机模式,只想让虚拟机直接通过物理网卡上网。 这种情况下,桥接模式就是答案。
虚拟机没有虚拟网卡怎么联网?桥接模式的工作原理与实操
桥接模式(Bridged)是解决“没有额外虚拟网卡”最直接的手段,它的核心逻辑很简单:虚拟机的虚拟网卡被虚拟交换软件“接到”物理网卡上,让虚拟机网卡发出的数据包直接通过物理网卡进出局域网。
桥接模式下数据如何流动
以宿主机使用有线网卡为例,数据路径如下:
- 虚拟机应用发出IP数据包,封装到虚拟机网卡的MAC帧里。
- 虚拟网卡把帧交给虚拟化软件的虚拟交换机(vSwitch)。
- 虚拟交换机把帧从宿主机的物理网卡原样发出去。
- 外部路由器、交换机看到这个帧的源MAC地址是虚拟机的MAC,所以会把它当成普通局域网设备。

整个过程里,宿主机上没有额外虚拟网卡,也不做任何地址转换,虚拟机就像一台直接插在同一台交换机上的独立电脑。
VMware Workstation里的具体设置
- 打开虚拟机设置,进入“网络适配器”。
- 选择“桥接模式(与其他计算机共享网络)”并勾选“复制物理网络连接状态”。
- 打开虚拟机,启动后如果路由器开了DHCP,虚拟机会自动获得一个和宿主机同网段的IP。
- 如果没自动获取IP,手动设置一个同网段地址,网关和DNS写宿主机的网关即可。
在虚拟网络编辑器中,桥接模式对应的VMnet0默认桥接到物理网卡,它会自动识别宿主机当前的物理网卡,如果识别错了,可以手动指定。
VirtualBox里怎么选
- 选择虚拟机,点击“设置”-“网络”。
- 连接方式下拉选“桥接网卡”。
- 界面名称选宿主机实际的物理网卡,比如WLAN或以太网。
- 启动虚拟机后,同样会作为独立设备出现在局域网中。
桥接模式的实际限制
桥接模式虽然不需要额外虚拟网卡,但对物理网络环境有依赖:
- 如果局域网开启了MAC地址过滤,需要把虚拟机网卡的MAC加入白名单。
- 如果宿主机用的是公共WiFi(比如酒店、公司认证网络),桥接模式可能无法上网,因为认证系统只识别宿主机物理网卡的MAC。
- 虚拟机获得的IP和宿主机同网段,有IP冲突风险,建议在路由器里做静态IP绑定。
不依赖VMnet虚拟网卡的另一种方案:物理网卡共享
有些场景下,你不想用桥接模式,觉得设置麻烦,或者宿主机只有一个无线网卡,桥接不稳定,这时可以走“Internet连接共享”路线。
Windows宿主机上的ICS共享
Windows的“网络和共享中心”里,可以右键物理网卡(比如以太网),进入“属性”-“共享”,勾选“允许其他网络用户通过此计算机的Internet连接来连接”,系统会自动把该网卡的IP改成192.168.137.1,并创建一个NAT网关,虚拟机网卡设置成“仅主机模式”或者“内部网络”,再把IP配置成192.168.137.x,网关填192.168.137.1,就能联网。

但严格说,ICS会在Windows中创建一个隐藏的虚拟网卡配置,所以这不算完全“不虚拟网卡”,如果追求彻底不创建VMnet,在Linux宿主机上可以用macvtap。
Linux宿主机的macvtap模式
macvtap是Linux内核提供的一种虚拟网络接口,可以直接把一个虚拟机网卡绑定到物理网卡上,不创建任何额外的宿主机网卡。
创建命令示例:
ip link add link eth0 name macvtap0 type macvtap mode bridge ip link set macvtap0 up
然后把这个macvtap接口分配给QEMU/KVM虚拟机,虚拟机内部看到的网卡直接桥接到物理网卡的二层网络上,效果和VMware桥接模式一样,宿主机上没有VMnet之类的虚拟网卡。
两种无额外虚拟网卡方案的对比
| 方案 | 宿主机是否创建虚拟网卡 | 虚拟机能否局域网被访问 | 适用场景 |
|---|---|---|---|
| 桥接模式 | 不创建VMnet,但虚拟交换机占用软件资源 | 能 | 需要虚拟机在局域网中显示为独立设备 |
| Windows ICS共享 | 会创建隐藏的虚拟网卡 | 不能(被NAT隔离) | 临时共享上网,无需暴露虚拟机 |
| Linux macvtap | 不创建 | 能 | KVM环境,追求纯物理直连 |
为什么禁用VMnet1和VMnet8后虚拟机还能上网?
这个问题很常见,也是“不虚拟网卡”场景的一个典型情况,在VMware里,很多人觉得VMnet1和VMnet8是虚拟网卡,删掉或禁用后虚拟机应该断网,但结果虚拟机照样能上网。
原因在于:VMware的桥接模式用的VMnet0,它不是一个网卡接口,而是一个虚拟桥接器,VMnet0不参与宿主机的IP协议栈,没有IPv4地址,也不出现在“网络连接”列表里,你看到的VMware虚拟网卡只有VMnet1(仅主机)和VMnet8(NAT),桥接模式的VMnet0是不可见的软件桥接器,所以禁用VMnet1和VMnet8只会影响NAT和仅主机模式,桥接模式完全不受影响。

如果把桥接模式也理解为“虚拟网卡”,那只是名称上的混淆,真正的数据通道是物理网卡,虚拟机的网卡数据通过虚拟交换直接落在物理网卡上,中间没有独立网卡实体。
不虚拟网卡虚拟机网络连接的常见问题
问:不虚拟网卡虚拟机如何实现网络连接?是只要选桥接模式就行吗?
只要选桥接模式,并把虚拟机的网络适配器桥接到宿主机的物理网卡上,虚拟机就能通过物理网卡联网,桥接模式下不需要VMnet1或VMnet8,宿主机网络连接列表里也不会出现新的虚拟网卡,但虚拟机内部的网卡仍然存在,那是由虚拟化平台模拟出来的设备,不可能去掉。
问:为什么禁用VMnet1和VMnet8后虚拟机还能上网?
因为虚拟机的联网走的是桥接模式,桥接使用VMnet0虚拟桥接器,而不是VMnet1或VMnet8,VMnet1和VMnet8分别对应仅主机模式和NAT模式,禁用它们不会影响桥接模式,如果你的虚拟机用的是NAT模式,禁用VMnet8后就会立即断网。
问:虚拟机桥接模式与NAT模式哪个更稳定?
从底层转发逻辑看,桥接模式更直接,数据不经过地址转换,延迟更低,也不会产生端口映射问题,但桥接模式受物理网络环境影响较大,比如无线网络、认证网络下容易掉线,NAT模式虽然依赖VMnet8虚拟网卡,但只需要宿主机有外网连接即可,适应性更强,多数情况下,有线网络里桥接更稳定,无线网络里NAT更省心。
记住一个核心结论:不虚拟网卡,不代表虚拟机不工作,桥接模式是“直通”逻辑,物理网卡就是虚拟机通往网络的入口;NAT模式则是“代理”逻辑,必须有一个虚拟网卡做中转,所以当你看到宿主机里没有多余网卡时,优先检查虚拟机是不是已经选成了桥接模式,再看物理网卡是否正常连接,这条路走通,虚拟机联网问题就解决了。