news 2026/10/11 7:41:49

嵌入式开发必备:VirtualBox+Ubuntu双网卡配置全攻略

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
嵌入式开发必备:VirtualBox+Ubuntu双网卡配置全攻略

嵌入式开发起步:VirtualBox + Ubuntu 20.04 环境搭建(从镜像选择到网络配置一次说清)

写在前面:
我准备从零再建一遍虚拟机,把踩过的坑一次性写清楚。目标不是“装个 Linux 看看”,而是搭一套能用于嵌入式 Linux 开发的环境:能上网、能被宿主机 SSH、IP 稳定,后续方便安装交叉编译工具链、NFS、TFTP、GDB 和 QEMU。


目录

  • 一、为什么要选 Ubuntu 20.04 + VirtualBox
  • 二、镜像怎么选
  • 三、VirtualBox 虚拟机创建
  • 四、网络配置:这篇最核心
  • 五、嵌入式开发推荐方案:双网卡
  • 六、安装 Ubuntu 时的关键点
  • 七、进入系统后:确认网卡名
  • 八、配置 NAT 网卡(上网)
  • 九、配置 Host-Only 网卡(固定 IP 给 SSH 用)
  • 十、验证网络
  • 十一、开 SSH(嵌入式开发基本操作)
  • 十二、常见坑(我帮你先踩了)
  • 十三、最终结构
  • 十四、小结

一、为什么要选 Ubuntu 20.04 + VirtualBox

嵌入式开发中,我们常常需要:

  • 在 Linux 环境编译 U-Boot、Kernel、Buildroot 或 Yocto
  • 用 NFS 给开发板挂载根文件系统
  • 用 TFTP 烧写镜像
  • 用 SSH 或 VS Code Remote-SSH 远程连接虚拟机写代码

Windows 直接做这些有时并不顺手,WSL 在某些场景下也不完全像一台开发板旁边的 Linux 服务器。因此可以考虑:

  • VirtualBox:免费、轻量,支持 Windows、macOS 和 Linux
  • Ubuntu 20.04 LTS:许多既有 SDK 和工具链以它作为测试或兼容环境,软件包管理使用 APT

⚠️维护状态提醒:Ubuntu 20.04 LTS 的标准维护已于 2025 年结束。后续安全维护需要 Ubuntu Pro 的 ESM 等适用方案。新项目应优先评估仍处于标准维护期的 Ubuntu 版本;本文适用于有版本兼容要求或维护旧环境的场景。

选择 20.04 的原因通常是特定 SDK、交叉工具链或项目环境要求它;不能据此认为所有嵌入式工具链在 20.04 上都兼容性最好。若使用 22.04 或更新版本,操作思路相近,但软件版本、包名和网络配置细节可能不同。


二、镜像怎么选

常见安装介质主要有 Server 和 Desktop:

镜像类型大小(约)适合谁
Server1.4 GB✅嵌入式开发首选,通常不安装桌面环境
Desktop4 GB 以上需要图形桌面的场景

Ubuntu Server 安装介质包含安装程序,不等同于“网络安装 Mini ISO”。文件大小会随发行点版本变化。

推荐下载

可以从 Ubuntu 官方下载页或可信镜像站获取 Ubuntu 20.04 Server amd64 镜像。

https://releases.ubuntu.com/20.04.6/ubuntu-20.04.6-live-server-amd64.iso

下载后应核对官方发布的校验和。镜像可下载不代表该版本仍处于标准安全维护期。

💡 嵌入式开发通常不需要桌面环境。Server 版占用较少,后续可以按需使用apt install安装软件。


三、VirtualBox 虚拟机创建

新建虚拟机

配置项推荐值说明
名称ubuntu-embed可自定义
类型Linux
版本Ubuntu (64-bit)
内存4096 MB最少 2048 MB;编译内核建议 4 GB 或更多
CPU4 核2 核起步
硬盘类型VDI
分配方式动态分配
硬盘大小30 GB 起步Yocto 和 Buildroot 构建较占空间,按项目需要增加

❌ 不建议只分配 8 GB,后续编译内核或根文件系统时很容易空间不足。


VirtualBox 新建 Ubuntu 虚拟机的配置摘要,显示内存 4096 MB、4 个处理器、30 GB 虚拟硬盘,并启用了跳过无人值守安装。

四、网络配置:这篇最核心

很多人在 VirtualBox 装完 Ubuntu 后会遇到:

  • 能上网,但宿主机连不上
  • 宿主机能连,但换 Wi-Fi 后连接方式失效
  • 重启后 IP 变化,SSH 配置需要跟着调整

VirtualBox 三种网络模式

NAT(默认)

  • 虚拟机可以访问外网
  • 宿主机通常不能直接通过 NAT 地址 SSH 进入虚拟机;也可另行配置端口转发
  • 适合临时联网和安装软件包

桥接(Bridged)

  • 虚拟机和宿主机处于同一局域网
  • 虚拟机通常由路由器分配独立 IP
  • 更换 Wi-Fi 或网线后,IP 可能变化
  • 公司网络可能禁止桥接

Host-Only(仅主机)

  • 虚拟机和宿主机可以通过专用网络通信
  • 默认不能通过该网卡访问外网
  • 可用于宿主机稳定连接虚拟机

五、嵌入式开发推荐方案:双网卡

网卡 1:NAT,用于访问外网
网卡 2:Host-Only,用于宿主机 SSH 连接
这是适合多数本地开发场景的双网卡方案兼顾联网与稳定连接。

虚拟机设置 → 网络

网卡 1:

  • ☑ 启用网络连接
  • 连接方式:NAT

网卡 2:

  • ☑ 启用网络连接
  • 连接方式:仅主机(Host-Only)网络
  • 界面名称:选择 VirtualBox 创建的 Host-Only 网卡,例如VirtualBox Host-Only Ethernet Adapter

Host-Only 默认网段通常类似:

网段:192.168.56.0/24 宿主机:192.168.56.1 虚拟机:192.168.56.100

具体地址以 VirtualBox 的全局设定 → 网络 → Host-Only Networks中显示的配置为准。若启用了 Host-Only DHCP,静态地址应避开 DHCP 地址池。


使用 NAT + Host-only 双网卡,让虚拟机同时联网并接受宿主机连接。

VirtualBox Host-Only 网络管理页面会显示宿主机网卡的地址与子网掩码。通过确认 Host-Only 网段可以为虚拟机预留一个不冲突的静态地址。

网卡名称:VirtualBox Host-Only Ethernet Adapter IPv4 地址:192.168.56.1(示例,请以实际为准) 子网掩码:255.255.255.0

六、安装 Ubuntu 时的关键点

启动 Ubuntu Server 安装介质后(使用文本向导):

  1. 选择语言;服务器环境常选 English,减少终端和路径本地化带来的差异
  2. 键盘布局使用默认值,或按实际键盘选择
  3. 网络配置:
  • enp0s3(通常是 NAT)确认已通过 DHCP 获取地址
  • enp0s8(通常是 Host-Only)安装时也可能通过 DHCP 获取地址;可先使用该地址,安装后如需固定 SSH 地址,再配置静态 IP
  1. 代理按需填写;没有代理时留空
  2. 镜像源使用安装程序提供的默认源,或按需改为可信镜像站
  3. 磁盘分区可选择Guided - use entire disk
  4. 设置用户名和密码,例如用户embed
  5. 安装 OpenSSH Server:建议勾选Install OpenSSH server
  6. 其他软件包可先跳过,后续手动安装
  7. 等待安装完成并重启

⚠️ 如果安装过程中卡在下载或更新步骤,先确认 NAT 网卡已联网;也可以跳过安装器中的更新,进入系统后再检查软件源并运行sudo apt update。


安装器已识别双网卡,NAT 与 Host-only 均获取到地址;Host-only 固定 IP 可在安装后配置。

Ubuntu Server 存储配置界面。这里选择 VirtualBox 创建的 30 GB 虚拟硬盘作为安装目标,并启用 LVM,未开启磁盘加密。需要说明的是,这里的“使用整个磁盘”仅针对虚拟机的虚拟硬盘,不会影响宿主机的真实硬盘。

安装 Ubuntu 时勾选 Install OpenSSH server,登录用户则在安装过程中另行创建。

七、进入系统后:确认网卡名

ipaddr

你会看到类似网卡名称:

lo enp0s3 # 通常对应 NAT enp0s8 # 通常对应 Host-Only

Ubuntu Server 20.04 通常使用 Netplan 管理网络,配置文件位于/etc/netplan/。请以实际网卡名和现有配置为准。


八、配置 NAT 网卡(上网)

如果 Ubuntu Server 安装时 NAT 网卡已联网,安装器通常已经创建 DHCP 配置。查看现有文件:

ls-l/etc/netplan/sudocat/etc/netplan/*.yaml

双网卡都使用 DHCP 时,配置内容可能类似:

network:version:2ethernets:enp0s3:dhcp4:trueenp0s8:dhcp4:true

如果安装后看到enp0s8为dhcp4: true,表示 Host-only 网卡已经通过 DHCP 获得地址(例如192.168.56.104),网络可直接使用。此地址可能变化;若接受当前地址,可以保留 DHCP,不必再配置静态地址。不要为了配置第二块网卡而覆盖整份安装器生成的文件。


九、配置 Host-Only 网卡(固定 IP 给 SSH 用)

如果希望 SSH 始终使用同一个地址,可以将 Host-only 网卡改成静态 IP。先查看配置文件名,并确认 VirtualBox 的 DHCP 地址池不包含准备使用的地址:

ls/etc/netplan/

编辑其中包含enp0s8配置的现有 YAML 文件。下面以/etc/netplan/00-installer-config.yaml为例,实际文件名以ls输出为准:

sudonano/etc/netplan/00-installer-config.yaml

只将enp0s8的 DHCP 配置改为静态地址;保留enp0s3的 DHCP 设置,确保 NAT 仍负责外网访问。双网卡配置示例:

network:version:2ethernets:enp0s3:dhcp4:trueenp0s8:dhcp4:falseaddresses:-192.168.56.100/24

请保留现有文件中其他必要配置,不要整份照抄覆盖。Host-only 网卡不需要配置默认网关或 DNS;NAT 网卡通常通过 DHCP 获取默认路由和 DNS。静态 IP 必须与 VirtualBox Host-only 网段一致,且不在 DHCP 地址池内,也不能与其他设备冲突。若当前地址是 DHCP 分配的192.168.56.104,切换后应使用配置的静态地址192.168.56.100。

先检查配置,再应用:

sudonetplan generatesudonetplan try

按提示确认配置后,再检查地址:

ipaddr show enp0s8

执行后应能看到192.168.56.100/24已绑定到enp0s8,说明静态地址配置成功。若netplan try回滚,请检查 YAML 缩进、文件权限、网卡名和地址配置是否正确。


十、验证网络

虚拟机内验证外网

检查 NAT 网卡地址和默认路由:

ipaddr show enp0s3iproute

分别测试外网 IP 连通和域名解析:

ping-c4www.baidu.com

截图中可以看到域名解析成功,并收到 4 次 ping 回复,说明 DNS 解析和外网连通正常。

如果域名无法解析,检查 NAT 网卡通过 DHCP 获取的 DNS 和系统解析状态。Host-Only 网卡不应被当作外网 DNS 或默认路由通道。

宿主机验证连通性

在宿主机执行。若保留 DHCP,请将地址替换为虚拟机当前获得的 Host-only 地址;若已配置静态 IP,则使用配置的地址(本例为192.168.56.100):

ping 192.168.56.100

能通表示 Host-Only 网络基本连通。若 ping 不通,检查 VirtualBox Host-Only 网卡、虚拟机第二块网卡、IP 和子网掩码,以及宿主机防火墙策略。某些防火墙会屏蔽 ICMP;也可以直接测试 SSH 连接。在 Windows 宿主机 ping 通 Ubuntu 虚拟机的 Host-only 地址,4 次请求均收到回复,说明宿主机与虚拟机之间的 Host-Only 网络连通正常。


十一、开 SSH(嵌入式开发基本操作)

安装时勾选 OpenSSH Server 后,服务通常已安装。检查状态:

sudosystemctl statusssh

如果没有安装:

sudoaptupdatesudoaptinstall-yopenssh-serversudosystemctlenable--nowssh

Ubuntu 默认可使用 UFW 管理防火墙。建议只放行 SSH 服务,不要直接关闭防火墙:

sudoufw allow OpenSSHsudoufwenablesudoufw status

🔒 在远程启用防火墙前,先确认已放行 SSH,并根据实际网络策略限制 SSH 来源。生产环境还应考虑密钥认证等措施。

之后可以使用PuTTY、 Xshell、Terminal 或 VS Code Remote-SSH 连接:

地址:192.168.56.100 端口:22 用户:embed(或安装时创建的用户)

通过 PuTTY 登录 Ubuntu,并确认 Host-only 网卡的静态地址。登录成功后,可在终端执行ip addr show enp0s8,确认地址为192.168.56.100/24,以验证 SSH 连接和静态 IP 配置均正常。


十二、常见坑(我帮你先踩了)

问题常见原因排查方向
装完没网NAT 网卡没获取到地址,或默认路由异常检查 VirtualBox 网卡 1、ip addr和ip route
宿主机 ping 不通Host-Only 网卡未配置或不在同一网段检查 VirtualBox 设置、Netplan 配置和防火墙;也可测试 SSH
SSH 连不上ssh服务未安装或未启动,或防火墙未放行检查sudo systemctl status ssh和sudo ufw status
sudo: command not found安装时创建的用户没有管理员配置,或系统安装不完整使用可用管理员账户修复;避免默认以 root 远程登录
apt update慢或失败网络、DNS、镜像源或 ESM 配置问题先检查网络和源;确认 20.04 的维护及订阅状态
换 Wi-Fi 后连接失效使用桥接,或局域网地址发生变化本机开发可使用 NAT + Host-Only
Netplan 配置后没生效YAML 缩进错误、网卡名不对或文件冲突使用空格缩进,检查sudo netplan generate输出

十三、最终结构

宿主机 Windows / macOS └── VirtualBox └── Ubuntu 20.04 Server ├── enp0s3 : NAT → 外网(地址由 DHCP 分配) └── enp0s8 : Host-Only → 宿主机 SSH(示例:192.168.56.100)

后续建议目录规划:

路径用途
/home/embed/nfs_rootNFS 根文件系统
/tftpbootTFTP 镜像目录
/opt/toolchain交叉编译工具链
~/linuxLinux 内核源码
~/u-bootU-Boot 源码
~/buildrootBuildroot 源码

十四、小结

如果你是嵌入式开发起步,记住这 5 条就够了:

  1. ✅ 按项目兼容要求选择 Ubuntu 20.04 Server,并留意其维护状态
  2. ✅ VirtualBox 使用NAT + Host-Only 双网卡
  3. ✅ NAT 负责外网访问,Host-Only 负责宿主机稳定连接
  4. ✅ 桥接模式可用于特定网络环境,不必作为默认方案
  5. ✅ 安装后启用 SSH,并按需安装基础开发工具

下一篇预告:
《Ubuntu 20.04 上搭建嵌入式开发环境:NFS + TFTP + 交叉编译工具链》

如果这篇对你有帮助,欢迎点赞收藏,我们下篇见。


版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/11 7:41:04

普通人零代码搭建降本系统:数据、动作与反馈闭环

1. 为什么“降本系统”不该是程序员的专利?“不懂代码,怎么用AI给自己搭个降本系统?”——这句话我去年在某制造型企业的内部分享会上听到时,台下三十多位生产主管、采购专员和财务BP齐刷刷点头。没人举手说“我会写Python”&…

作者头像 李华
网站建设 2026/10/11 7:37:05

SpringBoot+SSM救援物资管理系统设计与核心实现解析

去年帮学生调一个毕设项目,正好就是这套“JavaSpringBootSSM救援物资管理系统”。说实话,刚拿到标题的时候我先愣了一下——SpringBoot本来就是Spring全家桶的封装,标题里又写SSM,是不是重复了?但真把项目跑起来、捋完…

作者头像 李华
网站建设 2026/10/11 7:36:48

从零手写Logistic Regression:揭开神经网络最小单元的核心原理

1. 为什么深度学习基础课要专门用一讲来过Logistic Regression很多刚接触深度学习的同学其实都有一个困惑:Logistic Regression不是机器学习里的经典分类算法吗,怎么会被塞进深度学习基础的课程里,还专门占了一讲?我带过不少实习生…

作者头像 李华
网站建设 2026/10/11 7:36:11

空间嵌套论:有形之物,谁在装着谁?——科学够不着的高维真相

摘要:本文从“有形的东西总得有个东西装着它”的追问出发,提出「空间嵌套论」:可见宇宙可能只是高维空间里的一层薄膜,有形与无形只取决于观察者所处层次;科学难以证实高维,不是技术不足,而是人…

作者头像 李华
网站建设 2026/10/11 7:35:19

P1197 星球大战【洛谷算法习题】

P1197 星球大战 网页链接 P1197 星球大战 题目描述 很久以前,在一个遥远的星系,一个黑暗的帝国靠着它的超级武器统治着整个星系。 某一天,凭着一个偶然的机遇,一支反抗军摧毁了帝国的超级武器,并攻下了星系中几乎…

作者头像 李华
网站建设 2026/10/11 7:34:17

2026制造业ERP品牌横评:功能全面与稳定性才是选型硬道理

去年年底,我参加了一家汽配工厂的ERP选型评审会,坐在我对面的生产总监抛出来一个问题:“你们这几家的系统,去年一年有没有宕过机?月底结账的时候账会不会平?”当场没人敢拍胸脯。2026年看制造业ERP&#xf…

作者头像 李华