保姆级教程:用VMware双网卡配置,让开发板直连电脑调试时,电脑和虚拟机还能正常上网
2026/5/10 16:04:45 网站建设 项目流程

嵌入式开发者的网络配置秘籍:VMware双网卡实现开发板直连与上网共存

实验室里,你正对着开发板焦头烂额——每次调试都需要拔掉网线才能上网查资料,插上网线又无法访问外网,这种反复切换让人崩溃。别担心,这不是你的技术问题,而是传统单网卡配置的天然局限。本文将彻底解决这个痛点,教你如何同时保持开发板直连调试和电脑/虚拟机上网,就像在咖啡厅里同时处理多个项目一样流畅自如。

1. 网络拓扑设计:理解双通道并行的核心逻辑

想象你的笔记本有两扇门:一扇通向互联网(WiFi),一扇通向实验室(有线网卡)。传统方法只允许打开一扇门,而我们的方案是让两扇门同时工作。具体实现需要三个关键组件:

  • 无线网卡:连接路由器访问外网(例如宿舍WiFi)
  • 有线网卡:通过网线直连开发板形成私有网络
  • VMware虚拟网卡:在虚拟机内部建立双重网络通道

提示:这种架构下,数据流就像城市中的高架桥和地面道路,互不干扰却都能到达目的地。

典型配置参数对照表:

组件网络类型IP地址范围网关用途
主机无线网卡外网192.168.1.x192.168.1.1上网
VMnet0桥接192.168.1.x192.168.1.1虚拟机上网
主机有线网卡内网192.168.2.x开发板通信
VMnet2桥接192.168.2.x虚拟机与开发板通信
开发板内网192.168.2.x调试终端

2. 主机端配置:打造双网卡共存环境

首先确保你的笔记本同时启用了WiFi和有线网卡。按下Win+R输入ncpa.cpl打开网络连接面板,应该能看到两个活跃的连接(通常标注为"WLAN"和"以太网")。

有线网卡静态IP配置步骤

  1. 右键点击以太网 → 属性 → Internet协议版本4(TCP/IPv4)
  2. 选择"使用下面的IP地址":
    • IP地址:192.168.2.10
    • 子网掩码:255.255.255.0
    • 默认网关:留空
  3. 点击确定保存,不要理会弹出的警告提示
# 验证配置(管理员权限运行CMD): netsh interface ip show config name="以太网" # 应看到类似输出: # 配置 以太网 # DHCP 已启用: 否 # IP 地址: 192.168.2.10 # 子网前缀: 255.255.255.0/24 (掩码 255.255.255.0) # 默认网关: # 网关跃点数: 256

常见问题排查:

  • 如果开发板通电后仍显示"网络电缆被拔出",检查网线是否为直通线(非交叉线)
  • IP冲突时尝试更换网段(如改用192.168.3.x)
  • 某些笔记本需要BIOS中开启有线网卡功能

3. VMware虚拟网络编辑器:构建双重桥梁

这是整个方案最关键的环节。打开VMware Workstation(不要启动虚拟机),进入"编辑 → 虚拟网络编辑器":

步骤详解

  1. 点击右下角"更改设置"获取管理员权限
  2. 配置VMnet0:
    • 选择桥接模式
    • 桥接到:你的无线网卡(名称通常含"Wireless")
  3. 添加VMnet2:
    • 点击"添加网络" → 选择VMnet2
    • 设置为桥接模式
    • 桥接到:有线网卡(名称通常含"Ethernet")
  4. 点击应用保存设置

注意:不同版本VMware界面可能略有差异,重点确认两个虚拟网卡分别桥接到正确的物理网卡。

网络适配器绑定验证方法:

Get-NetAdapter -Physical | Select Name, InterfaceDescription # 典型输出: # Name InterfaceDescription # ---- -------------------- # 以太网 Intel(R) Ethernet Connection (6) I219-V # WLAN Intel(R) Wireless-AC 9560 160MHz

4. 虚拟机内部:双网卡协同作战

启动Ubuntu虚拟机前,需要添加第二块虚拟网卡:

  1. 右键虚拟机 → 设置 → 添加 → 网络适配器
  2. 将两个适配器分别设置为:
    • 适配器1:自定义 → VMnet0
    • 适配器2:自定义 → VMnet2

进入Ubuntu系统后,通过ifconfigip a查看网卡名称(通常为ens33和ens38,具体可能不同):

配置网络接口(以Ubuntu 20.04为例):

# 临时配置(重启失效): sudo ifconfig ens33 192.168.1.22 netmask 255.255.255.0 sudo ifconfig ens38 192.168.2.11 netmask 255.255.255.0 # 永久配置(修改/etc/netplan/*.yaml): network: version: 2 renderer: networkd ethernets: ens33: dhcp4: no addresses: [192.168.1.22/24] gateway4: 192.168.1.1 nameservers: addresses: [8.8.8.8, 114.114.114.114] ens38: dhcp4: no addresses: [192.168.2.11/24]

应用配置并测试:

sudo netplan apply ping 192.168.1.1 # 测试外网连通性 ping 192.168.2.10 # 测试主机有线连接

5. 开发板网络配置:完成最后一环

以常见ARM开发板为例,在U-Boot中设置环境变量:

setenv ipaddr 192.168.2.12 setenv ethaddr 00:04:9f:04:d2:35 setenv gatewayip 192.168.2.1 setenv netmask 255.255.255.0 setenv serverip 192.168.2.11 # 指向虚拟机IP saveenv

测试阶段可能遇到的问题及解决方案:

现象可能原因解决方法
开发板ping不通主机防火墙阻挡关闭Windows防火墙或添加入站规则
虚拟机无法上网VMnet0桥接目标错误检查是否桥接到无线网卡
传输速度慢网卡工作模式不匹配在设备管理器中将有线网卡设为100M全双工
开发板IP丢失环境变量未保存确认执行了saveenv命令

6. 高级技巧:网络共享与安全加固

完成基础配置后,可以进一步优化:

带宽分配策略

# 在Ubuntu中限制开发板通道带宽(需要安装wondershaper): sudo wondershaper ens38 1024 512 # 限制下载1Mbps/上传0.5Mbps

SSH隧道转发(安全访问开发板):

# 在主机上创建隧道(将虚拟机的22端口映射到主机的2222端口): ssh -N -f -L 2222:192.168.2.11:22 用户名@虚拟机IP

网络流量监控

# 在Ubuntu中安装iftop观察网络流量: sudo apt install iftop sudo iftop -i ens38 # 监控开发板通道流量

在实际项目中,这种配置让我能够一边通过TFTP快速烧写镜像,一边在浏览器查阅芯片手册,效率提升显著。有个小技巧:给有线连接设置显眼的图标(比如红色),这样一眼就能区分当前使用的网络通道。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询