将 ESP32 作为联网设备给 Linux 提供网络

1.espressif/esp-hosted: Hosted Solution (Linux/MCU) with ESP32 (Wi-Fi + BT + BLE)(未测试)

乐鑫官方提供的方案,ESP32C2以上设备几乎都支持。

几乎就是以网卡的方式实现的,使用起来跟普通网卡没什么区别。

可以以SPI,SDIO的方式将ESP连接到Linux,缺点就是引脚太多了,例如SPI模式,至少需要9个引脚。

 

2.esp-iot-solution/examples/usb/device/usb_dongle at master · espressif/esp-iot-solution(未测试)

也是乐鑫官方的例子,直接将ESP32当作USB网卡来用,以RNDIS/ECM的方式,用起来也是无缝使用很方便。

缺点就是只支持USB-OTG的设备,像ESP32C2这种不支持USB的就别想了(或许可以软件模拟USB低速设备?)

image

 

3.ESP32通过ppp协议给linux联网

emard/esp32ppp:尝试让 ESP32 连接到 WiFi 接入点,并为串行接口提供 PPP 隧道以进行数据传输

ep00ch/esp32-at-ppp:针对 ESP32 平台的 AT 应用程序,包含了 PPP 服务器和网页浏览器功能 

这2个项目都年代久远,大概率不支持现在的ESP32

AI推荐的方案是用最新的esp32-at固件仔细修改增加ppp(还没试验过)

另外的方案是不用AT固件,直接用esp-idf里支持的PPPoS 服务端(ESP官方是支持这个功能的,只是没暴露给AT接口而已)

MCU_Project/ESP/at_ppp at main · jeason1997/MCU_Project,已完成测试,但是速度非常慢,受波特率影响(发射功率也影响,目前才20的发射功率)

curl / wget / apt / DNS / ping
          ↓
Linux 内核 TCP/IP 栈
          ↓ 原始 IP 包
ppp0
          ↓ PPP 帧(串口)
ESP32 PPP 固件
          ↓ NAT / Wi-Fi
互联网

 

4.esp-protocols/components/eppp_link/README.md at master · espressif/esp-protocols

网友的例子:hn/esp32-spi-eppp-server: ESP32 WiFi-to-SPI gateway using Espressif's EPPP Link

ESP官方的自定义PPP协议,叫EPPP,不兼容Linux那套,支持UART,SPI,SDIO等,因为是自定义的协议,速度可能会比PPP快?

要在Linux下,要自己写 pppos 代码来兼容?

image

 

5.esp32刷官方at固件,通过tun虚拟网卡上网

MCU_Project/ESP/at_tun at main · jeason1997/MCU_Project

linux里的tun程序虚拟一个网卡,访问数据的时候,它通过一个代理去跟接在uart串口上的esp32的at交互,转换数据

curl / wget / apt
        ↓ 普通 TCP/IP
Linux 路由 → tun0
        ↓ IP 包
tun2socks(用户态 TCP/IP 栈)
        ↓ SOCKS5 CONNECT
at_gateway.py
        ↓ AT+CIPSTART / AT+CIPSEND / AT+CIPRECVDATA
ESP-AT
        ↓ Wi-Fi
互联网

 

 

项目ESP-AT + TUNPPP
ESP32 固件 官方原生 ESP-AT 需要 PPP/NAT 固件支持
Linux 网卡 TUN 加用户态代理 真正的 PPP IP 接口
TCP 支持 原生支持
HTTPS 支持 原生支持
DNS 当前通过 DoH 特殊适配 原生 UDP/TCP DNS
普通 UDP 当前不支持 支持
系统 ping/ICMP 不透明支持 原生支持
IPv6 当前未实现 取决于 PPP 固件和配置
并发连接 受 ESP-AT 5 个连接 ID 限制 通常不受 AT 连接 ID 限制
性能 多次复制、AT 命令往返,较慢 数据流连续,通常更快
延迟 较高 较低
CPU 开销 tun2socks、Python和协议转换 主要由内核 PPP 处理
串口效率 AT 命令和响应占用较多 PPP 二进制帧更紧凑
异常处理 状态复杂,容易遇到 AT 超时 协议更标准,通常更稳定
开发维护 需要维护 AT 状态机和特殊适配 Linux 侧成熟,但 ESP 固件更复杂
posted @ 2026-08-18 16:06  JeasonBoy  阅读(10)  评论(0)    收藏  举报