OpenClaw 使用 Bonjour(mDNS/DNS-SD)发现活跃 Gateway(WebSocket 端点)。LAN 多播是仅局域网的便利功能,不替代 SSH 或 Tailnet 连接。

服务类型

  • _openclaw-gw._tcp:Gateway 传输信标(macOS/iOS/Android 节点使用)

TXT 记录(非密钥提示)

键说明
role=gateway角色标识
displayName友好名称
gatewayPortGateway WS + HTTP 端口
gatewayTls=1TLS 启用时
gatewayTlsSha256TLS 指纹(仅提示,不可作为权威 pin)
transport=gateway传输类型

安全注意:mDNS TXT 记录未经认证,客户端不得将其视为权威路由依据。

广域 Bonjour(跨网络)

跨网络时 mDNS 多播无法穿越,可使用 Tailscale 上的单播 DNS-SD:

{
  gateway: { bind: "tailnet" },
  discovery: { wideArea: { enabled: true } },
}

一次性 DNS 服务器配置:

openclaw dns setup --apply

启用/禁用

  • macOS 主机默认自动启动 Bonjour 插件
  • Linux/Windows/容器:openclaw plugins enable bonjour
  • 禁用:openclaw plugins disable bonjour
  • 临时禁用(不改配置):OPENCLAW_DISABLE_BONJOUR=1

Docker 注意事项

容器内自动禁用 LAN 多播广告(Docker bridge 网络通常不转发 mDNS 多播)。需要时设置 OPENCLAW_DISABLE_BONJOUR=0(仅 host networking 或 macvlan 等支持 mDNS 的网络)。

调试

# macOS 浏览实例
dns-sd -B _openclaw-gw._tcp local.
 
# 解析实例
dns-sd -L "<instance>" _openclaw-gw._tcp local.

Gateway 日志中查找 bonjour: 前缀行,特别是 advertise failed、watchdog detected 等。

常见故障

  • 不跨网络:使用 Tailnet 或 SSH
  • 多播被阻:部分 Wi-Fi 禁用 mDNS
  • Docker bridge:Bonjour 自动禁用,使用直连或 Tailnet
  • 浏览成功但解析失败:机器名避免使用特殊字符

相关