【Ubuntu】Ubuntu 虚拟机配置三网段(桥接-WIFI、仅主机、桥接-开发板)
引言
为了更方便使用虚拟机,我们来配置一下三网段。
网络连接模式
| 模式 | 适用场景 | 特点 | 类比 |
|---|---|---|---|
| NAT | 个人上网/新手首选 | 虚拟机共享主机IP,能上网但隐身 | 家用WiFi |
| 桥接 | 服务器/需要被局域网访问 | 虚拟机会获得独立IP,像真机一样 | 手机开热点 |
| 仅主机 | 完全隔离的网络测试 | 只能和主机通信,完全不上网 | 飞行模式+蓝牙 |
虚拟机设置



三网段
- ens33:(WIFI桥接,自动获取IP,用于外网访问)
- ens37:(仅主机模式,静态IP,用于主机SSH/文件共享)
- ens38:(桥接模式,静态IP,用于开发板连接)
Ubuntu 系统设置
1、进入 /etc/netplan 文件夹
有些教程说的是在"/etc/network/interfaces"路径下,但是我发现并没有,查了一下才知道 Ubuntu 20.4+ 版本的是在 netplan 文件夹里配置的
cd /etc/netplan/
2、修改配置文件
在 netplan 下找到"50-cloud-init.yaml"配置文件(每个人文件名称可能不一样)。
输入:
sudo nano 50-cloud-init.yaml
写入三网段配置(注意 yaml 语法非常严格),以下网络 IP 地址只是参考,可以根据实际需求自定义设置:
network:
ethernets:
# WIFI桥接,自动获取IP,用于外网访问
ens33:
dhcp4: true # 自动获取IP和路由,无需手动配网关
# 仅主机模式,静态IP,用于主机SSH/文件共享
ens37:
dhcp4: false
addresses: [192.168.184.184/24] # /24 = 子网掩码255.255.255.0
# 开发板桥接,静态IP,用于开发板连接
ens38:
dhcp4: false
addresses: [192.168.155.201/24]
version: 2
renderer: networkd # 强制使用networkd,避免兼容问题
写完之后按 Ctrl+O 保存,按 Ctrl+X 退出。
# 保存退出后,应用配置(无需重启)
# 输入:
sudo netplan apply
# 返回:
WARNING:root:Cannot call Open vSwitch: ovsdb-server.service is not running.
我们配置的是 “简单三网卡本地通信”,根本不需要 OVS 服务,系统提示 “OVS 服务未运行”,只是 netplan 在检测所有可能的网络组件,并非报错。我们用不到 OVS,它没运行完全不影响我们的核心需求。
3、网卡 IP 地址修改
虽然上面说的是参考的 ip 地址,但是我摆出来的实际上是已经修正了的。修正需要两个步骤:
- 查看虚拟机 VMnet 与 ens 的匹配。
- Windows 网络配置下的 VMnet1 的 IP 地址与 Ubuntu 下的 ens37 网卡(仅主机)的 IP 地址在同一网段。
- 「Ubuntu 网卡(ens38)、Windows 以太网口、开发板」三者处于「同一网段」,且各自 IP 唯一不重复。
VMnet 与 ens 的匹配
虚拟机设置中查看三网段分别对应的 MAC 地址



Ubuntu 系统中查看网络的 MAC 地址
输入:
ifconfig
返回:
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.112.59 netmask 255.255.255.0 broadcast 192.168.112.255
inet6 240e:47e:76a0:16f9:20c:29ff:fec2:d470 prefixlen 64 scopeid 0x0<global>
inet6 fe80::20c:29ff:fec2:d470 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:c2:d4:70 txqueuelen 1000 (以太网)
RX packets 11286 bytes 1050916 (1.0 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 7802 bytes 985320 (985.3 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
ens37: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.184.184 netmask 255.255.255.0 broadcast 192.168.184.255
inet6 fe80::20c:29ff:fec2:d47a prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:c2:d4:7a txqueuelen 1000 (以太网)
RX packets 1139 bytes 85058 (85.0 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 1524 bytes 285704 (285.7 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
ens38: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.133.133 netmask 255.255.255.0 broadcast 192.168.133.255
inet6 fe80::20c:29ff:fec2:d484 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:c2:d4:84 txqueuelen 1000 (以太网)
RX packets 8 bytes 632 (632.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 177 bytes 13304 (13.3 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 (本地环回)
RX packets 244 bytes 25036 (25.0 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 244 bytes 25036 (25.0 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
匹配总结
ens33 - VMnet0 WIFI桥接
ens37 - VMnet1 仅主机
ens38 - VMnet8 开发板桥接
Windows 下的 VMnet1 与 Ubuntu 下的 ens37 网卡的 IP 地址在同一网段
打开 Windows 下的网络连接,查看 VMnet1 的 IP 地址:

查询结束后,将 Ubuntu 的 IP 地址修改:
| 对应关系 | Windows 主机 VMnet 信息 | 要求 Ubuntu 配置 |
|---|---|---|
| ens37 ↔ VMnet1 | IP:192.168.184.1(子网:192.168.184.0/24) | 192.168.184.x(如 192.168.184.184)/24 |
开发板与 Windows 以太网口与 ens38 网卡的 IP 地址在同一网段
「Ubuntu 网卡(ens38)、Windows 以太网口、开发板」三者处于「同一网段」,且各自 IP 唯一不重复。
-
使用交叉网线连接开发板和pc,连接成功后,在查看网络连接中可以看到本地网卡已连接。

-
右键属性,选择Internet协议版本4(Tcp/IPv4),选择使用下面的 IP 地址,设置 IP 地址和子网掩码。
所设置的 IP 地址与下面将要配置的开发板 IP 地址在同一网段,这里设置为 192.168.155.200

-
在开发板中执行 ifconfig etj0 192.168.155.155,eth0为开发板网卡。
192.168.155.155 与上面配置的 PC IP 在同一网段。使用 ifconfig 命令可以看到 IP 地址:

-
配置 Ubuntu ens38 网卡的 IP 地址为 192.168.155.201,修正成功,后面测试即可 ping 通。
4、开机手动配置 IP / 编译自启动配置 IP
开机手动配置 IP
sudo ifconfig ens37 192.168.184.184
sudo ifconfig ens38 192.168.155.201
编译自启动配置 IP
打开开机文件:
sudo nano /etc/rc.local
修改开机文件:
#!/bin/bash
# 这里添加你的开机执行命令,并最后以 exit 0 结尾
# 打印日志
echo "rc.local executed at $(date)" >> /var/log/rc-local.log
# 开机自动配置 ens37 网卡仅主机模式的 IP 地址
sudo ifconfig ens37 192.168.184.184
# 开机自动配置 ens38 开发板桥接模式的 IP 地址
sudo ifconfig ens38 192.168.155.201
exit 0
5、测试
VMnet0 - ens33 WIFI桥接用于外网访问
Ping 公网 IP(排除 DNS 干扰,直接验证路由)
输入:
ping -c 4 8.8.8.8
返回:
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=106 time=251 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=106 time=351 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=106 time=330 ms
64 bytes from 8.8.8.8: icmp_seq=4 ttl=106 time=288 ms
--- 8.8.8.8 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3003ms
rtt min/avg/max/mdev = 251.372/305.173/350.674/38.346 ms
Ping 公网域名(验证 DNS 解析)
输入:
ping -c 4 www.baidu.com
返回:
PING www.baidu.com(240e:ff:e020:99b:0:ff:b099:cff1 (240e:ff:e020:99b:0:ff:b099:cff1)) 56 data bytes
64 bytes from 240e:ff:e020:99b:0:ff:b099:cff1 (240e:ff:e020:99b:0:ff:b099:cff1): icmp_seq=1 tt l=53 time=32.3 ms
64 bytes from 240e:ff:e020:99b:0:ff:b099:cff1 (240e:ff:e020:99b:0:ff:b099:cff1): icmp_seq=2 tt l=53 time=49.8 ms
64 bytes from 240e:ff:e020:99b:0:ff:b099:cff1 (240e:ff:e020:99b:0:ff:b099:cff1): icmp_seq=3 tt l=53 time=49.7 ms
64 bytes from 240e:ff:e020:99b:0:ff:b099:cff1 (240e:ff:e020:99b:0:ff:b099:cff1): icmp_seq=4 tt l=53 time=38.7 ms
--- www.baidu.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3006ms
rtt min/avg/max/mdev = 32.279/42.613/49.826/7.480 ms
VMnet1 - ens37 仅主机模式
Ubuntu Ping Windows 主机
在 Ubuntu 系统下直接 Ping 向 Windows,会失败,原因是 Ping 失败是 Windows 防火墙或网络策略阻断了 ICMP 协议(Ping 依赖的协议),需要在 Windows 主机上「允许 ICMP 入站规则」:
- 以下是 AI 生成流程,实测可用:
- 打开「控制面板」→「系统和安全」→「Windows Defender 防火墙」→「高级设置」;
- 左侧选择「入站规则」,右侧点击「新建规则」;
- 规则类型选择「自定义」,点击「下一步」;
- 协议类型选择「ICMPv4」,点击「下一步」;
- 操作选择「允许连接」,点击「下一步」;
- 配置文件保持默认(域、专用、公用全勾选),点击「下一步」;
- 名称输入「允许 ICMP 入站(Ping)」,点击「完成」;

输入:
ping -c 4 192.168.184.1
返回:
PING 192.168.184.1 (192.168.184.1) 56(84) bytes of data.
64 bytes from 192.168.184.1: icmp_seq=1 ttl=128 time=2.04 ms
64 bytes from 192.168.184.1: icmp_seq=2 ttl=128 time=3.88 ms
64 bytes from 192.168.184.1: icmp_seq=3 ttl=128 time=0.402 ms
64 bytes from 192.168.184.1: icmp_seq=4 ttl=128 time=3.65 ms
--- 192.168.184.1 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3006ms
rtt min/avg/max/mdev = 0.402/2.492/3.882/1.400 ms
Windows 主机 Ping Ubuntu

Windows 下使用 SSH 连接 Ubuntu
按下Win+R输入cmd打开控制台,输入ssh Ubuntu系统的用户名@VMnet1的IP地址,再输入 Ubuntu 系统的密码即可连接成功。
输入:
ssh Ubuntu系统的用户名@VMnet1的IP地址
返回:
[email protected]'s password:
Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-164-generic x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/pro
System information as of 2025年 12月 20日 星期六 16:01:43 UTC
System load: 0.01
Usage of /: 11.2% of 185.96GB
Memory usage: 13%
Swap usage: 0%
Processes: 267
Users logged in: 1
IPv4 address for ens33: 192.168.112.59
IPv6 address for ens33: 240e:47e:76a0:16f9:20c:29ff:fec2:d470
* Strictly confined Kubernetes makes edge and IoT secure. Learn how MicroK8s
just raised the bar for easy, resilient and secure K8s cluster deployment.
https://ubuntu.com/engage/secure-kubernetes-at-the-edge
Expanded Security Maintenance for Applications is not enabled.
69 updates can be applied immediately.
To see these additional updates run: apt list --upgradable
Enable ESM Apps to receive additional future security updates.
See https://ubuntu.com/esm or run: sudo pro status
New release '24.04.3 LTS' available.
Run 'do-release-upgrade' to upgrade to it.
Last login: Sat Dec 20 16:00:42 2025 from 192.168.112.118
shf@ubuntu-skyrim:~$
VMnet8 - ens38 仅桥接用于连通开发板
主要还是保证 「Ubuntu 网卡(ens38)、Windows 以太网口、开发板」三者处于「同一网段」,且各自 IP 唯一不重复。
- 先保证 Ubuntu Ping 通 Windows 主机,如上。
- 再保证开发板 Ping 通 Windows 主机。
- 即可保证 Ubuntu Ping 通开发板。
详细步骤可以看此文章:PC/Ubuntu/开发板相互ping通(电脑与开发板直接用网线连接)
要记得关闭 Windows 的防火墙。
最后总结注意
-
ns33 是分配WIFI上网,由系统自动分配上网地址。
-
ens38 的 address 192.168.184.184 要看虚拟机里面的"查看网络连接"中的VMnet1(仅主机)中分配的地址比如子网192.168.184.1,如下,(有的可能不是分配 184)那就可以设置address 192.168.184.199 或者address 192.168.184.200 都可以,按照个人情况。

-
ens39 的address 192.168.155.201 这个是开发板访问虚拟机Ubuntu系统的。同时开发板的地址是192.168.155.155,注意要跟PC(ubuntu)同一网段。比如 WIN11 电脑的网口(以太网)IP地址是设置 192.168.155.200,如下。

博客导航
本文来自博客园,作者:膝盖中箭卫兵,转载请注明原文链接:https://chuna2.787528.xyz/Skyrim-sssuuu/p/19376866

浙公网安备 33010602011771号
https://orcid.org/0000-0001-5102-772X