资讯详情

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

📅 2026/10/11 7:42:02 | 华诺云谱 👁 阅读
嵌入式开发必备: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 和 LinuxUbuntu 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仅主机虚拟机和宿主机可以通过专用网络通信默认不能通过该网卡访问外网可用于宿主机稳定连接虚拟机五、嵌入式开发推荐方案双网卡网卡 1NAT用于访问外网网卡 2Host-Only用于宿主机 SSH 连接这是适合多数本地开发场景的双网卡方案兼顾联网与稳定连接。虚拟机设置 → 网络网卡 1☑ 启用网络连接连接方式NAT网卡 2☑ 启用网络连接连接方式仅主机Host-Only网络界面名称选择 VirtualBox 创建的 Host-Only 网卡例如VirtualBox Host-Only Ethernet AdapterHost-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 安装介质后使用文本向导选择语言服务器环境常选 English减少终端和路径本地化带来的差异键盘布局使用默认值或按实际键盘选择网络配置enp0s3通常是 NAT确认已通过 DHCP 获取地址enp0s8通常是 Host-Only安装时也可能通过 DHCP 获取地址可先使用该地址安装后如需固定 SSH 地址再配置静态 IP代理按需填写没有代理时留空镜像源使用安装程序提供的默认源或按需改为可信镜像站磁盘分区可选择Guided - use entire disk设置用户名和密码例如用户embed安装 OpenSSH Server建议勾选Install OpenSSH server其他软件包可先跳过后续手动安装等待安装完成并重启⚠️ 如果安装过程中卡在下载或更新步骤先确认 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-OnlyUbuntu 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 网卡不需要配置默认网关或 DNSNAT 网卡通常通过 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.100ping 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--nowsshUbuntu 默认可使用 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 配置和防火墙也可测试 SSHSSH 连不上ssh服务未安装或未启动或防火墙未放行检查sudo systemctl status ssh和sudo ufw statussudo: command not found安装时创建的用户没有管理员配置或系统安装不完整使用可用管理员账户修复避免默认以 root 远程登录apt update慢或失败网络、DNS、镜像源或 ESM 配置问题先检查网络和源确认 20.04 的维护及订阅状态换 Wi-Fi 后连接失效使用桥接或局域网地址发生变化本机开发可使用 NAT Host-OnlyNetplan 配置后没生效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 条就够了✅ 按项目兼容要求选择 Ubuntu 20.04 Server并留意其维护状态✅ VirtualBox 使用NAT Host-Only 双网卡✅ NAT 负责外网访问Host-Only 负责宿主机稳定连接✅ 桥接模式可用于特定网络环境不必作为默认方案✅ 安装后启用 SSH并按需安装基础开发工具下一篇预告《Ubuntu 20.04 上搭建嵌入式开发环境NFS TFTP 交叉编译工具链》如果这篇对你有帮助欢迎点赞收藏我们下篇见。
📝

华诺云谱内容团队

资深建站顾问 · 行业研究员

10年+企业数字化服务经验,专注智能建站、SEO优化与品牌营销,持续输出建站技巧、行业洞察与营销干货,已帮助5000+企业实现数字化增长。

你可能需要的服务

订阅华诺云谱资讯周报

每周一封,精选建站技巧、SEO与营销干货,直达邮箱。已有 8,000+ 企业主订阅,助你少走弯路。

↑