You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无法通过mDNS主机名Ping ESP32 Web服务器的问题排查求助

解决ESP32 mDNS无法解析的问题

排查步骤与解决方案

1. 确认ESP32端mDNS初始化状态

  • 查看串口监视器,确认是否输出Error starting mDNS:
    • 如果有,尝试更换mDNS主机名(比如把"esp32"改成"esp32-mydev"),避免同网络内重名冲突;
    • 在MDNS.begin()前添加短暂延迟(比如delay(500)),确保WiFi连接完全稳定后再初始化mDNS;
    • 代码中补充注册HTTP服务,提升兼容性:
      MDNS.begin("esp32-mydev");
      MDNS.addService("http", "tcp", 80); // 注册HTTP服务到mDNS
      

2. 客户端系统的mDNS支持配置

Windows 10

  • 打开服务(Win+R输入services.msc),找到Multicast DNS Responder服务,设置为自动并启动;
  • 检查防火墙规则,允许UDP端口5353的入站/出站通信(mDNS默认使用该端口)。

Ubuntu

  • 安装avahi-daemon(Linux系统的mDNS实现):
    sudo apt update && sudo apt install avahi-daemon
    
  • 启动并设置开机自启:
    sudo systemctl start avahi-daemon
    sudo systemctl enable avahi-daemon
    

3. 网络环境排查

  • 检查路由器是否开启了AP隔离(又称客户端隔离),该功能会阻止设备间的mDNS广播,需要关闭;
  • 尝试切换到手机热点网络测试,排除路由器的配置问题;
  • 用抓包工具(如Wireshark)监听UDP 5353端口,确认ESP32是否发送mDNS响应包,客户端是否收到查询结果。

4. 代码与库的验证

  • 确保使用的ESPAsyncWebServer和AsyncTCP库版本与ESP32 Arduino核心版本兼容,避免版本冲突;
  • 测试简化版代码:去掉AsyncWebServer,只保留WiFi和mDNS初始化,再尝试解析,排查是否是WebServer库的干扰。

内容的提问来源于stack exchange,提问作者Archon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 20:09:25