VMware为虚拟机提供三种上网方式,分别是桥接模式、仅主机以及NAT模式,同时会在宿主机上创建两个虚拟网卡,分别是VMnet1:仅主机模式和VMnet8:NAT模式。

为什么桥接模式没有在宿主机上创建虚拟网卡呢?这是因为桥接模式是通过虚拟网桥将虚拟机的网卡和宿主机的网卡桥接在一起的(类似于宿主机物理网卡和虚拟机网卡通过虚拟交换机连接在一起)。

网络拓扑

操作流程

步骤一:宿主机采用无线网卡上网

步骤二:VMware网络编辑器VMnet0桥接到无线网卡

VMnet0桥接到无线网卡

步骤三:Ubuntu24.04增加桥接网口

步骤四:重启Ubuntu24.04虚拟机并配置网卡接口和DHCP

默认情况下,该新增网卡不会自动配置,需要手动修改配置文件,具体修改方式见下文。

问题解决

Ubuntu24.04虚拟机新增桥接网卡,但是该网卡无法自启动并获取IP

解决方法:需要手动配置启动的网卡名称以及启用dhcp获取IP。

启用方式如下:

$ sudo cat /etc/netplan/50-cloud-init.yaml
# This file is generated from information provided by the datasource.  Changes
# to it will not persist across an instance reboot.  To disable cloud-init's
# network configuration capabilities, write a file
# /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
# network: {config: disabled}
network:
    ethernets:
        ens33:
            dhcp4: true
        ens38:
            dhcp4: true
    version: 2

新增ens38两行。

设置完成之后,ifconfig可以看到网卡启动,并获取到IP:

$ ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.100.128  netmask 255.255.255.0  broadcast 192.168.100.255
        inet6 fe80::20c:29ff:fe74:4fda  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:74:4f:da  txqueuelen 1000  (Ethernet)
        RX packets 866  bytes 67902 (67.9 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 570  bytes 71657 (71.6 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ens38: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.31.62  netmask 255.255.255.0  broadcast 192.168.31.255
        inet6 fe80::20c:29ff:fe74:4fee  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:74:4f:ee  txqueuelen 1000  (Ethernet)
        RX packets 419  bytes 31057 (31.0 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 270  bytes 26746 (26.7 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 10  bytes 896 (896.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 10  bytes 896 (896.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

参考文档

深入理解VMware虚拟机网络通信原理 - stardsd - 博客园 (cnblogs.com)

VMware 实现 iptables NAT及端口映射 | lightzhang博客 (zhanglianghhh.github.io)

Ubuntu20.04静态ip和dhcp配置 - 51core - 博客园 (cnblogs.com)