Skip to content

mDNS 网络 ​

概述: FastBee 设备通过 mDNS(Multicast DNS,RFC 6762)实现局域网内的零配置域名访问,无需记忆 IP 地址即可登录设备 Web 管理界面。多台设备接入同一网络时,固件自动分配唯一域名,确保每台设备均可独立访问。

mDNS 为独立开关,启停不受 AP/STA 网络模式约束(任意模式下均可手动启用或停用),由功能配置页或外设执行规则的动作 31(启用功能)/ 32(禁用功能)控制,状态变更重启后生效,出厂默认启用。

1. mDNS 工作原理 ​

1.1. 服务注册 ​

设备启动 mDNS 后,在网络中广播以下服务:

服务类型协议端口用途
_httpTCP80Web 管理界面
_fastbeeTCP80FastBee 设备发现
_wsTCP81WebSocket 通信

1.2. 访问格式 ​

text
http://<hostname>.local

默认 hostname 为 fastbee,因此默认访问地址为 http://fastbee.local。

2. 多设备同网络域名分配 ​

同一局域网内多台 FastBee 设备推荐全部使用默认命名(customDomain = fastbee),无需逐台改名:

  • 固件启动时枚举 _http._tcp 预探测已占用的 hostname,自动分配唯一后缀(fastbee、fastbee-2 … fastbee-8)
  • 运行期每 30 秒做一次同名收敛(IP 大者让名),新设备即插即用
  • 设备实际注册的域名以当前构建、串口日志和 /api/network/status(需登录)返回为准,不要根据设备标签或上电顺序推断自动后缀
  • 需要稳定名称时,在网络配置页设置 customDomain,并用上述接口或串口日志核对结果

多设备舰队实测与验证方法见设备测试的「多设备 mDNS 域名」小节。

3. 各联网模式的访问方式 ​

3.1. WiFi STA 模式(连接路由器) ​

访问方式地址条件
局域网 IPhttp://<路由器分配的IP>始终可用(推荐)
mDNS 域名http://<hostname>.localmDNS 启用且客户端支持
  • mDNS 域名和 IP 均可从同一局域网内任意设备访问
  • Windows 用户建议直接使用 IP 访问:Windows 默认不自带完整的 mDNS 解析(依赖 Bonjour/iTunes 等组件),fastbee.local 可能间歇性无法解析或首次解析耗时数秒,造成"页面打开慢"的假象。IP 可在设备串口启动日志、路由器后台 DHCP 列表中查看

3.2. WiFi AP 模式(设备自建热点) ​

访问方式地址条件
AP IPhttp://192.168.4.1始终可用
mDNS 域名http://<hostname>.localmDNS 启用
  • 用户需先连接设备 WiFi 热点才能访问
  • AP IP 固定为 192.168.4.1

3.3. 4G 模式(4G + WiFi AP 混合) ​

4G 联网采用混合模式设计:4G 提供外网连接,同时启动 WiFi AP 热点供本地配置访问。

text
4G 连接成功 → 启动 WiFi AP(192.168.4.1)→ 启动 mDNS
访问方式地址条件访问来源
AP 热点 IPhttp://192.168.4.1始终可用连接设备 AP 热点
mDNS 域名http://<hostname>.localmDNS 启用连接设备 AP 热点
4G 公网 IPhttp://<运营商分配的IP>需真实公网 IP公网(受运营商限制)

公网 IP 访问的限制:

  • 多数物联网 SIM 卡分配 NAT 后的内网 IP(如 10.x.x.x、100.x.x.x),非真实公网 IP
  • 即使获取到公网 IP,运营商通常封禁 80/443 端口入站访问
  • 判断方法:对比设备获取的 IP 与 ip.cn 查到的出口 IP,一致则为真实公网 IP

4G 失败回退:4G 连接失败时自动回退到纯 AP 模式(192.168.4.1),用户可通过热点重新配置。

3.4. 以太网模式(以太网 + WiFi AP 混合) ​

与 4G 类似,以太网也采用混合模式:以太网提供有线网络连接,同时启动 WiFi AP 热点。

访问方式地址条件访问来源
以太网 IPhttp://<以太网DHCP分配的IP>始终可用以太网 LAN 内设备
AP 热点 IPhttp://192.168.4.1始终可用连接设备 AP 热点
mDNS 域名http://<hostname>.localmDNS 启用任一接口

4. Web 服务器网络绑定 ​

Web 服务器(AsyncWebServer)监听地址为 0.0.0.0:80,即所有网络接口:

text
0.0.0.0:80
  ├── WiFi STA 接口(路由器分配的 IP)
  ├── WiFi AP 接口(192.168.4.1)
  ├── 以太网接口(W5500 DHCP 分配的 IP)
  └── 4G 蜂窝接口(运营商分配的 IP)

因此,设备在任何联网模式下,所有活跃接口的 IP 均可访问 Web 管理界面。

5. Web 访问性能与加载机制 ​

设备内置 Web 服务器面向资源受限的 ESP32 做了并发与内存保护,了解以下机制有助于判断"页面慢"是正常行为还是故障:

  • 首屏串行加载:登录页的核心 JS 被拆分为 5 个 boot chunk 并按顺序串行加载(ESP32 的 socket 池有限,并发请求易被拒),首屏完整加载通常 2-5 秒,属正常现象
  • 静态资源并发限流:同时进行的静态文件传输有上限(默认 2 路),超出时请求短暂等待后返回 503,前端自动以 300/1200/2700ms 递增退避重试;请勿同时打开多个标签页访问同一设备,会互相挤占连接
  • 内存门控:可用内存(DRAM)低于阈值时新请求会被拒绝,此时优先等待 MQTT 重连等后台任务结束;MQTT 与 Web 大流量操作不建议同时进行
  • 失败自动重试:弱网下个别 chunk 加载失败会自动重试(最多 4 次),无需手动刷新

排障建议:

  1. 优先用 IP 直连(见上文 Windows 说明)
  2. 关闭多余的浏览器标签页与开发者工具的网络节流
  3. 观察串口日志:若 Web 请求期间设备重启,属于异常

6. 自定义域名配置 ​

自定义域名(customDomain)在网络配置页的「高级配置 → 自定义本地域名」中设置,保存后 mDNS 立即重启,新域名即时生效,无需等待网络重启。

场景行为
mDNS 启用 + 修改域名立即重启 mDNS,新域名即时生效
mDNS 禁用不启动 mDNS,页面提示使用 IP 访问并显示当前 IP
4G 模式域名配置区域在 UI 中隐藏,mDNS 不启动

多设备场景推荐保持默认命名,由固件自动分配唯一后缀(见第 2 节),不建议逐台手工改名。

7. 设备发现 ​

除直接输入域名外,还可通过 mDNS 服务发现工具扫描局域网内的 FastBee 设备:

macOS / Linux:

bash
# 扫描 FastBee 设备
dns-sd -B _fastbee._tcp local.

Windows:使用 Bonjour Browser 或 mDNS 查看工具扫描 _fastbee._tcp 服务。

编程方式:任何支持 mDNS/Bonjour 的库均可通过查询 _fastbee._tcp 服务类型发现网络中的所有 FastBee 设备,返回结果包含设备 hostname 和 IP 地址。

8. 故障排查 ​

问题排查方向
无法通过 .local 域名访问1. 确认 mDNS 已启用 2. 确认客户端支持 mDNS(Windows 需安装 Bonjour)3. 检查串口日志中的实际域名 4. 改用 IP 直连(最可靠)
.local 解析慢/间歇失败(Windows)Windows mDNS 解析不稳定属已知现象,非设备故障;直接用 IP 访问即可消除
多台设备域名冲突查看串口日志或 /api/network/status(需登录),确认各设备实际注册的域名
4G 模式无法远程访问检查 SIM 卡是否分配公网 IP,运营商是否封禁端口
mDNS 间歇性不可用检查网络是否有大量 mDNS 设备造成广播风暴

9. 常见问题 ​

mDNS 域名访问和 IP 直连该用哪个? ​

现场优先使用 IP 直连,尤其 Windows 客户端(其 mDNS 解析依赖 Bonjour 组件,可能间歇失败)。mDNS 域名适合同一局域网内的免配置访问和多设备发现,不作为唯一的可靠入口。

多台设备需要逐台设置不同的自定义域名吗? ​

不需要。推荐全部保持默认命名(customDomain = fastbee),固件启动时会预探测已占用的 hostname 并自动分配唯一后缀,运行期每 30 秒做同名收敛。仅当某台设备需要固定不变的域名时才单独设置 customDomain。

修改自定义域名后需要重启设备吗? ​

不需要。保存自定义域名后 mDNS 立即重启,新域名即时生效;但 mDNS 开关本身的启停变更需要重启后生效。

4G 模式下为什么访问不到设备的 .local 域名? ​

4G 模式下域名配置区域在 UI 中隐藏、mDNS 不启动,且多数物联网 SIM 卡分配的是 NAT 内网 IP,公网无法直接访问。请连接设备的 WiFi AP 热点后通过 http://192.168.4.1 访问。

10. 相关文件 ​

文件说明
include/network/DNSManager.hDNS 管理器头文件,定义 mDNS 管理接口
src/network/DNSManager.cppmDNS 启停、域名分配、自定义域名实现
src/network/NetworkManager.cpp各联网模式初始化及混合模式 AP 启动
web-src/modules/runtime/network.js前端网络配置页面,域名配置 UI

蜂信物联 | fastbee.cn