关于开发板连接PC端的一些网络知识

631 阅读11分钟

以太网(Ethernet)是一种局域网(LAN)技术标准,用于在局域网内通过有线连接传输数据。而局域网(Local Area Network,LAN)则是一个更广泛的概念,指覆盖较小地理范围的网络,如家庭、办公室或校园内的网络。局域网可以使用不同的技术,包括以太网、Wi-Fi等。

1. 以太网和局域网

  1. 定义与范围
  • 以太网是具体的网络技术,属于OSI模型的物理层和数据链路层,主要用于有线连接。

  • 局域网是网络类型,根据覆盖范围定义,可以使用多种技术,如以太网、Wi-Fi、令牌环等。

  1. 传输介质
  • 以太网通常使用双绞线、同轴电缆或光纤。

  • 局域网可能使用有线(如以太网)或无线(如Wi-Fi)介质。

  1. 协议标准
  • 以太网遵循IEEE 802.3标准。

  • 局域网可能涉及多种协议,如TCP/IP、Wi-Fi(IEEE 802.11)等。

  1. 速度和性能
  • 以太网速度从10 Mbps到100 Gbps不等,延迟低。

  • 局域网的性能取决于采用的技术,如Wi-Fi的速度通常低于有线以太网。

—————————————————————————————————————————————

  • 以太网(Ethernet)

    • 具体技术标准:一种有线局域网(LAN)技术,用于通过电缆(如双绞线、光纤)连接设备。
    • 协议标准:基于 IEEE 802.3 标准,定义了物理层和数据链路层的通信规则。
    • 典型场景:办公室、数据中心的有线网络连接。
  • 局域网(LAN, Local Area Network)

    • 广义概念:指覆盖较小地理范围(如家庭、办公室、校园)的计算机网络。
    • 技术多样性:可以使用多种技术实现,包括以太网、Wi-Fi(无线局域网)、令牌环等。
    • 范围限制:通常覆盖范围在几米到几公里内。
特性以太网局域网(LAN)
本质具体的有线网络技术标准网络类型(可包含多种技术)
传输介质双绞线、光纤、同轴电缆有线(如以太网)或无线(如 Wi-Fi)
协议标准IEEE 802.3不依赖单一协议(如 Wi-Fi 用 IEEE 802.11)
速度10 Mbps 到 100 Gbps取决于技术(如 Wi-Fi 6 可达 9.6 Gbps)
典型应用企业内网、服务器机房家庭网络、办公室无线覆盖

2. 其他关键网络连接知识

1. 广域网(WAN, Wide Area Network)

  • 定义:覆盖广阔地理区域(如城市、国家、全球)的网络,通常由多个局域网通过路由器连接。
  • 技术:使用光纤、卫星、5G 等长距离传输技术。
  • 典型协议:MPLS、SD-WAN、IPsec。
  • 例子:互联网、跨城市的企业专网。

2. Wi-Fi(无线局域网)

  • 标准:基于 IEEE 802.11 系列协议(如 802.11n/ac/ax)。
  • 频段:2.4 GHz 和 5 GHz,6 GHz(Wi-Fi 6E)。
  • 优势:无需布线,移动性强;劣势:易受干扰,安全性需加密(如 WPA3)。

3. TCP/IP 模型

  • 四层结构

    1. 应用层(HTTP、FTP、DNS)
    2. 传输层(TCP、UDP)
    3. 网络层(IP、ICMP)
    4. 网络接口层(以太网、Wi-Fi)
  • 作用:定义数据如何封装、寻址、传输和路由。

4. 子网划分(Subnetting)

  • 目的:将大型网络分割为多个子网,提高效率和安全性。
  • 工具:子网掩码(如 255.255.255.0)和 CIDR 表示法(如 192.168.1.0/24)。
  • 例子:将 192.168.1.0/24 划分为 192.168.1.0/26 四个子网。

5. NAT(网络地址转换)

  • 功能:将私有 IP 地址(如 192.168.x.x)映射为公有 IP,实现多设备共享上网。
  • 类型:静态 NAT(一对一)、动态 NAT(多对多)、PAT(端口地址转换,多对一)。

6. VPN(虚拟专用网络)

  • 作用:通过加密隧道在公共网络(如互联网)上建立安全连接。
  • 协议:IPsec、OpenVPN、WireGuard。
  • 用途:远程办公、绕过地域限制。

7. DHCP(动态主机配置协议)

  • 功能:自动为设备分配 IP 地址、子网掩码、网关和 DNS。
  • 过程:DISCOVER → OFFER → REQUEST → ACK。

8. DNS(域名系统)

  • 作用:将域名(如 www.example.com)解析为 IP 地址(如 93.184.216.34)。
  • 层级:根域名服务器 → 顶级域(如 .com)→ 权威域名服务器。
网络类型覆盖范围技术示例典型速度应用场景
局域网小范围(< 1 km)以太网、Wi-Fi1 Mbps – 100 Gbps家庭、办公室
城域网城市范围光纤、微波10 Gbps – 100 Gbps城市级企业互联
广域网跨区域或全球光纤、卫星、SD-WAN1 Mbps – 100 Gbps互联网、跨国企业网络
个域网个人设备(< 10 m)蓝牙、ZigBee、NFC1 Kbps – 2 Mbps智能家居、可穿戴设备

3. 开发板连接 PC 的 MQTT Broker

Windows PC 上存在 多个网络适配器,每个适配器分配了不同的 IPv4 地址。

IP 地址对应网络适配器用途
192.168.157.1VMware Network Adapter VMnet1仅用于 VMware 虚拟机 Host-Only 网络(虚拟机与主机通信,不对外联网)
192.168.237.1VMware Network Adapter VMnet8用于 VMware 虚拟机 NAT 模式(虚拟机通过主机共享上网)
192.168.5.10以太网适配器(有线网络)开发板通过网线直连或连接到同一有线网络的 IP 地址
192.168.0.3无线局域网适配器(Wi-Fi)连接家庭/办公室 Wi-Fi 网络的 IP 地址

开发板需要连接 PC 的 MQTT Broker,但遇到了 ping 失败和通信问题。原因如下:

(1) 开发板与 PC 的网络适配器不在同一子网

  • 开发板的 IP192.168.5.9(假设通过有线网络连接到 PC)。
  • PC 的有线网络 IP192.168.5.10 → 正确,属于同一子网192.168.5.0/24)。
  • PC 的无线网络 IP192.168.0.3 → 错误,属于不同子网192.168.0.0/24)。

(2) 防火墙或路由配置错误

  • 开发板无法 Ping 通 PC(192.168.5.10)
    可能是 Windows 防火墙阻止了入站 ICMP 请求,或开发板未正确配置网关/路由。

  • PC 可以 Ping 通开发板(192.168.5.9)
    表示开发板的网络接口已启用,且物理连接正常,但可能存在单向通信限制(如防火墙规则)。

1748159256777.png

(1) 如果开发板通过有线连接(网线直连或同一路由器)

  • PC端IP地址192.168.5.10(有线网络适配器)

  • 验证方法

    • 在PC上关闭Wi-Fi,确保开发板和PC通过网线连接到同一路由器。
    • 开发板的IP地址应设置为 192.168.5.x 网段(如 192.168.5.20)。
    • 在开发板上执行 ping 192.168.5.10,确认网络可达。

(2) 如果开发板通过Wi-Fi连接同一无线网络

  • PC端IP地址192.168.0.3(无线网络适配器)

  • 验证方法

    • 确保开发板连接到 192.168.0.x 网段的Wi-Fi。
    • 开发板的IP地址应设置为 192.168.0.x(如 192.168.0.100)。
    • 在开发板上执行 ping 192.168.0.3,确认网络可达。

(3)虚拟网络连接

VMnet1 和 VMnet8 是VMware虚拟机专用网络,除非开发板运行在虚拟机中并通过虚拟网络桥接,否则这些地址无法被物理开发板访问。

———————————————————————————————————————————————

连接方式IP地址类型速度典型场景复杂度
以太网有线局域网私有IP高(1 Gbps+)固定设备、高速数据传输
Wi-Fi无线局域网私有IP中(100 Mbps)移动设备、无布线环境
USB网络共享本地链路/静态IP中(480 Mbps)调试、无网络接口时的临时连接
蓝牙网络局域网私有IP低(2 Mbps)低功耗设备、近距离控制
移动网络公网IP可变远程监控、物联网设备
串口转IP本地链路地址低(<1 Mbps)无网络接口的嵌入式设备
IPv6本地链路IPv6本地链路地址IPv6环境下的直接通信

4. NAT网卡和桥接网卡

NAT 网卡桥接网卡是两种常见的网络连接模式,用于控制虚拟机与物理网络的通信方式。

4.1 NAT 网卡(Network Address Translation)

核心原理

  • IP 共享:虚拟机通过宿主机的 IP 地址访问外部网络(类似家庭路由器的工作方式)。
  • 隔离性:虚拟机位于宿主机的私有子网中,外部网络无法直接访问虚拟机。
  • 地址转换:宿主机会将虚拟机的网络请求转换为自己的 IP 地址,再转发到外部网络。

NAT, Network Address Translation, 指网络地址转换。使用 NAT 网卡时, Ubuntu 要访问外网,是委托 Windows 发出数据包, Windows 接收到回应后再转发给 Ubuntu。外界看到的都是 Windows,看不到 Ubuntu。使用 NAT 时,只要 Windows 能上网, Ubuntu 就必定能上网, 无需设置 Ubuntu 的网络。

优点缺点
虚拟机共享宿主机 IP,无需额外配置外部网络无法直接访问虚拟机
网络隔离性强,安全性高虚拟机和宿主机之间需手动配置端口转发
适合单向上网场景(如开发测试)性能略低于桥接模式

4.2 添加NAT网卡

4.3 桥接网卡(Bridged Networking)

核心原理

  • 直接接入物理网络:虚拟机的网卡直接连接到物理网络,如同宿主机的一个独立设备。
  • 独立 IP:虚拟机会从物理网络的 DHCP 服务器获取 IP 地址(与宿主机同级)。
  • 透明通信:外部设备可直接访问虚拟机,无需通过宿主机。

使用桥接网卡时, Ubuntu 就是使用一个真实的网卡:开发板的网线也连接到这个真实的网卡上,这样 Windows、 Ubuntu、开发板就都可以用这个网卡互通了

优点缺点
虚拟机直接接入物理网络,性能高需要物理网络支持(如 DHCP、交换机配置)
外部设备可直接访问虚拟机可能引发 IP 冲突(需管理 IP 分配)
适合需要暴露服务的场景(如服务器)安全性较低(虚拟机暴露在网络中)

4.4 添加桥接网卡

4.5 NAT 与桥接的对比

特性NAT 模式桥接模式
IP 地址宿主机分配的私有 IP(虚拟子网)物理网络分配的独立 IP
网络可见性外部网络不可见虚拟机虚拟机对物理网络完全可见
配置复杂度简单(自动完成)较复杂(需物理网络支持)
安全性高(隔离性强)低(直接暴露)
性能中等(需地址转换)高(直连物理网络)
典型场景开发测试、单向上网服务器、局域网设备互联

5. 防火墙是啥?

防火墙(Firewall)是计算机或网络中的一种安全系统,用于监控和控制进出网络的流量。它通过预定义的安全规则,决定允许或阻止特定数据包的传输,主要功能包括:

  • 过滤恶意流量:阻止黑客攻击、病毒传播等。
  • 控制访问权限:限制外部设备访问内部网络的特定服务(如 HTTP、SSH)。
  • 日志记录:记录网络连接尝试,便于安全审计

当开发板通过局域网连接到 PC 端的 MQTT Broker(如 Mosquitto)时,防火墙可能阻止通信。MQTT 协议默认使用 TCP 端口 1883(非加密)或 8883(SSL)。若防火墙未放行这些端口,会导致以下问题:

  • 连接被拒绝:开发板的 mosquitto_pub 命令无法到达 Broker。
  • 超时错误:防火墙静默丢弃数据包,开发板等待响应超时。

以下是具体原因和解决方案:

5.1 临时关闭防火墙

1748166763298.png

5.2 正确配置防火墙(以开放 1883 端口为例)

Windows 系统

  1. 通过命令行开放端口
#允许入站 TCP 1883 端口
netsh advfirewall firewall add rule name="MQTT" dir=in action=allow protocol=TCP localport=1883
# 允许出站 TCP 1883 端口(通常不需要,按需设置)
netsh advfirewall firewall add rule name="MQTT-Out" dir=out action=allow protocol=TCP localport=1883
  1. 通过图形界面配置

    • 打开 控制面板 → 系统和安全 → Windows Defender 防火墙 → 高级设置
    • 选择 入站规则 → 新建规则 → 端口 → TCP 1883 → 允许连接
    • 重复步骤创建 出站规则(可选)。
  2. 验证规则生效

    netsh advfirewall firewall show rule name="MQTT"
    

Linux 系统(以 Ubuntu 为例)

  1. 使用 ufw 工具
# 允许 1883 端口
    sudo ufw allow 1883/tcp
    # 启用防火墙(若未启用)
    sudo ufw enable
    # 查看规则
    sudo ufw status
  1. 使用 iptables(传统方法)

    # 允许入站 TCP 1883
    sudo iptables -A INPUT -p tcp --dport 1883 -j ACCEPT
    # 保存规则(根据发行版)
    sudo iptables-save | sudo tee /etc/iptables/rules.v4
    

防火墙管理优先级:配置规则 > 临时关闭 > 长期关闭。

1748166808943.png