Windows、虚拟机、开发板组网通信原理及调试通联步骤

文章目录


本文基于双网口Windows主机 + Ubuntu虚拟机 + 开发板的算法调试场景,系统梳理三设备内网通信的底层逻辑,并提供从零开始的全互通实操步骤,帮助开发者快速解决板卡调试中的网络基础问题。


一、基础设备IP规划(固定调试网段)

本次组网统一使用 192.168.1.0/24 网段(子网掩码 255.255.255.0),三台设备配置独立固定IP,避免冲突,满足内网互通条件:

设备 IP地址 角色说明
Windows主机(接开发板网口) 192.168.1.100 内网通信桥梁、虚拟机外网网关
Ubuntu虚拟机 192.168.1.101 算法开发、文件传输、远程调试终端
为旌开发板 192.168.1.18 算法运行、设备调试目标端

二、核心网络概念通俗解读(组网必备)

1. 网段:设备互通的基础前提

网段可以理解为同一个"局域网小区"。只有同网段设备才能直接内网通信,无需网关转发

  • 子网掩码 255.255.255.0 (/24) 判定规则

    IP地址前三段数字必须完全一致,即为同网段。

    本例中三台设备IP前缀均为 192.168.1,因此属于同一网段,具备直接互通的基础。

  • 补充掩码区别

    • 255.255.0.0:仅比对前两段,网段范围过大,可用但不推荐。
    • 255.255.255.255:每台设备独立网段,三设备完全无法互通,禁止使用

2. IP地址与MAC地址的区别

类型 别名 特点 作用
IP地址 逻辑地址 可手动修改,不唯一 宏观寻址,区分网段,实现外网路由("门牌号")
MAC地址 物理地址 出厂固化,全球唯一 同网段内网通信的底层核心,精准识别设备("硬件身份证")

⚠️ 同一网段内IP必须唯一,否则会出现IP冲突导致网络瘫痪。

3. 网关的真实作用

网关是设备的"外网出口大门"。核心规则如下:

  • 同网段内网通信 (调试板卡、SSH、传文件):不需要网关,设备直接通过MAC地址互通。
  • 跨网段/外网通信 (下载依赖、联网更新):必须通过网关转发数据。

在本次组网中,虚拟机网关设置为Windows内网IP(192.168.1.100),目的是让虚拟机可借用Windows的外网网口联网,且不影响内网调试。

4. 桥接模块(虚拟交换机)

桥接模块是VMware在Windows内核中生成的虚拟软件交换机(无硬件实体)。

  • 工作原理:将虚拟机的虚拟网卡与Windows接开发板的物理网口"绑定"在同一个交换机上。
  • 核心特点:不修改IP、不做路由转发,仅通过MAC地址转发数据,使虚拟机在网络中表现得如同直接插在物理局域网中的一台独立设备。

三、三设备完整通信过程详解

所有内网互通均为二层MAC直连通信,网关不参与。仅在虚拟机访问外网时,网关才会生效。

1. 虚拟机 → 开发板(核心调试通信)

场景:虚拟机SSH登录板卡、上传算法文件、ping测试。

  1. 虚拟机判定目标IP(192.168.1.18)与自身同网段,无需走网关
  2. 通过ARP协议查询开发板IP对应的MAC地址,组装数据包(源MAC:虚拟机网卡,目标MAC:开发板网卡)。
  3. 数据包发送至Windows的桥接模块
  4. 桥接模块根据MAC地址,将数据从连接开发板的物理网口通过网线发出。
  5. 开发板接收数据并校验,原路返回应答数据,通信完成。

2. Windows主机 → 开发板

  1. Windows判定双方同网段,查询开发板MAC地址。
  2. 直接通过连接开发板的物理网口发送数据包。
  3. 开发板接收并回包,完成互通(无需桥接模块中转)。

3. 虚拟机 → Windows主机

  1. 虚拟机判定同网段,查询Windows物理网口MAC地址。
  2. 数据包发送至桥接模块。
  3. 桥接模块识别目标为本机网卡,内部直接转发,不经过网线。
  4. Windows回包,原路返回虚拟机。

4. 虚拟机访问外网(网关生效场景)

  1. 虚拟机判定外网地址为跨网段地址,将数据包交给默认网关(192.168.1.100)。
  2. Windows接收数据后,通过自身另一张外网物理网卡转发至互联网。
  3. 外网返回数据后,原路传回虚拟机。

四、三设备全网Ping通实操步骤(调试专用)

适用场景:开发板算法调试,实现Windows、虚拟机、开发板两两互通,兼顾虚拟机外网联网。

步骤1:物理线路规整(关键)

  • Windows双网口分工
    • 网口1:接外网(自动获取IP,负责上网)。
    • 网口2:接开发板(纯内网通信)。
  • 关闭多余网络干扰,保持线路稳定。

步骤2:配置Windows内网网口静态IP

  1. Win + R 输入 ncpa.cpl 打开网络连接。

  2. 右键点击接开发板的以太网 → 属性 → 双击 IPv4协议

  3. 选择「使用下面的IP地址」,填写:

    复制代码
    IP地址:      192.168.1.100
    子网掩码:    255.255.255.0
    默认网关:    (留空)
    DNS服务器:   (留空)
  1. 保存设置,关闭Windows防火墙(避免拦截内网数据)。

步骤3:配置VMware桥接模式

  1. 关闭虚拟机,打开VMware → 「编辑」→「虚拟网络编辑器」→「更改设置」。

  2. 选中 VMnet0 ,设置为桥接模式

  3. 手动桥接 到Windows接开发板的物理网口(禁止自动匹配 )。

  4. 进入虚拟机设置,确认网络适配器已绑定 VMnet0(桥接模式)

步骤4:配置Ubuntu虚拟机静态IP

  1. 终端输入 ip a 确认网卡名(通常为 ens33)。

  2. 编辑网络配置文件:

    bash 复制代码
    sudo nano /etc/netplan/01-network-manager-all.yaml
  3. 写入以下规范配置(严格对齐缩进 ):

    yaml 复制代码
    network:
      version: 2
      renderer: networkd
      ethernets:
        ens33:
          addresses: [192.168.1.101/24]
          gateway4: 192.168.1.100
          nameservers:
            addresses: [8.8.8.8]
  4. Ctrl + O 保存,Ctrl + X 退出,执行 sudo netplan apply 生效。

  5. 再次输入 ip a,确认虚拟机已正确获取 192.168.1.101/24 地址。

步骤5:确认开发板IP

开发板固定IP为 192.168.1.18,终端执行 ifconfig 核验,IP无误则无需修改。

步骤6:全网连通性测试(全部通则配置成功)

在对应终端执行以下命令进行测试:

Windows CMD测试:

cmd 复制代码
ping 192.168.1.18    # Windows → 开发板
ping 192.168.1.101   # Windows → 虚拟机

虚拟机终端测试:

bash 复制代码
ping 192.168.1.18    # 虚拟机 → 开发板
ping 192.168.1.100   # 虚拟机 → Windows
ping baidu.com       # (可选)测试虚拟机外网

ping通的效果如下:

虚拟机端:

windowns端:


五、总结

  1. 内网高效 :三设备处于同网段(192.168.1.0/24),内网通信依靠 MAC地址 + 桥接转发,无需网关,稳定高效,完美满足开发板算法调试、文件传输及远程登录需求。
  2. 网关专责:网关仅为虚拟机提供外网服务,不影响内网调试的核心功能。
  3. 最优环境 :按照上述步骤配置后,即可实现 Windows正常上网 + 三设备内网全互通 的理想调试环境。

相关推荐
冬奇Lab10 小时前
Agent 系列(23):Web Agent——让 Agent 真正浏览网页
人工智能·llm·agent
冬奇Lab10 小时前
每日一个开源项目(第135篇):codebase-memory-mcp - 给 AI Agent 一张代码库的知识图谱
人工智能·开源·llm
IT_陈寒13 小时前
JavaScript的闭包把我坑惨了,说好的内存会自动回收呢?
前端·人工智能·后端
jooloo16 小时前
Codex 间歇性 400 之谜:一条对话里,它为什么有时候用 chat/completions,有时候切到 responses?
人工智能
用户51914958484517 小时前
OpenSSL PKCS#12 PBMAC1 堆栈缓冲区溢出漏洞 (CVE-2025-11187) 分析与验证
人工智能·aigc
用户51914958484518 小时前
HP Sound Research SECOMNService 权限提升漏洞利用工具
人工智能·aigc
用户0183493016918 小时前
给 AI 智能体能力包一层 BFF,前端只调一个接口
人工智能
这token有力气21 小时前
Function Calling 格式漂移
人工智能