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

手机连接移动网络时无法加载ESP8266搭建的AP托管网站问题

解决ESP8266 AP Web服务器在手机移动网络下无法访问的问题

嘿,我来帮你把这个问题理清楚——核心原因其实很好理解:当你的手机连接移动网络时,它和ESP8266创建的AP完全不在同一个局域网里,自然没法直接访问ESP托管的网站。下面是具体的问题拆解和可行的解决办法:

问题本质拆解

  • ESP8266的AP是一个独立的私有局域网,你配置的DNS服务器dns_server.start(dns_port, "my_wifi_config.com", ap_ip)只有在设备连接这个AP时才会生效——因为手机连移动网络时,会使用运营商提供的DNS服务器,根本不会去解析你设置的my_wifi_config.com域名,更找不到ESP的IP。
  • 移动网络属于运营商的公网,和ESP的AP局域网没有任何路由通路,直接访问本来就不符合网络逻辑。

最直接的解决办法:切换到ESP的AP网络访问

这是最靠谱且低成本的方式,毕竟ESP的Web服务器本来就是为局域网内设备设计的:

  • 让手机断开移动网络,手动连接你代码里设置的ap_ssid热点。
  • 连接成功后,在浏览器输入my_wifi_config.com或者直接输入ESP的静态AP IP(比如你配置的ap_ip,通常是192.168.4.1),就能正常访问网站了。

如果必须在移动网络下访问(进阶方案)

如果你确实需要手机连移动网络时也能远程访问ESP的Web服务器,就得做端口转发或者内网穿透,具体步骤如下:

  1. 修改ESP的网络模式:把代码里的WiFi.mode(WIFI_AP_STA);调整为优先使用WIFI_STA模式,让ESP连接你的家庭路由器(而不是自己开AP)。这样ESP会获取家庭局域网的一个IP(比如192.168.1.100)。
  2. 路由器端口转发配置:登录你的家庭路由器后台,设置端口转发规则,把外部端口(比如8080)映射到ESP的局域网IP和Web服务器端口(默认是80)。
  3. 内网穿透(无公网IP时用):如果你的家庭网络没有公网IP,需要用Ngrok、Frp这类内网穿透工具,把路由器的端口转发到一个公网可访问的地址。这样手机连移动网络时,就能通过这个公网地址访问ESP的Web服务器了。

代码细节检查

  • 确认你的ap_ip是合法的静态AP IP,比如IPAddress ap_ip(192,168,4,1);,这个IP仅在连接ESP AP的设备中有效。
  • 如果保留WIFI_AP_STA模式,要确保ESP在STA模式下成功连接到路由器(可以加个判断逻辑,打印连接状态到串口),否则还是只有AP局域网可用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 08:35:15