Bonjour / mDNS
像在小区门口立一块广播牌:“Gateway 在这里。”
Gateway 导读
局域网内 mDNS 够用,但跨网段就失效。本页教你用 Tailscale 搭建 unicast DNS-SD,让 iOS 和 CLI 节点也能跨子网发现 Gateway。先跑 `openclaw dns setup --apply` 装 CoreDNS,再去 Tailscale 控制台配 split DNS,域名指向网关的 tailnet IP。
先讲这一页到底在解决什么
局域网内 mDNS 够用,但跨网段就失效。本页教你用 Tailscale 搭建 unicast DNS-SD,让 iOS 和 CLI 节点也能跨子网发现 Gateway。先跑 `openclaw dns setup --apply` 装 CoreDNS,再去 Tailscale 控制台配 split DNS,域名指向网关的 tailnet IP。
第一眼
官方说得很明确:Bonjour 是 LAN-only convenience。意思就是,它像楼门口的临时指示牌,只在附近好使。
像在小区门口立一块广播牌:“Gateway 在这里。”
只在同一片小区里有用。离得太远,广播就听不见了。
它会尽量帮你找,但不保证每次都一定成功。
这是“方便找门”,不是“保证连门”。
跨网络
官方给的方案很像:“门口广播牌跨不过马路?那就用 Tailscale 把它接到另一边。”
像把同一块门牌广告,改成能沿着专线送到远处的版本。
像给不同街区配不同的指路员,让大家都能朝同一个广播源去找。
openclaw dns setup --apply像在门口装一台正式的广播机,把 CoreDNS 和记录都准备好。
openclaw.internal.这只是官方举的例子,不是唯一答案。你自己的发现域名也可以换。
命令翻译
从安装到验证,官方给的是一整套“先建广播台,再去听广播”的动作。
openclaw dns setup --apply像把广播机真正装上去,不只是看说明书。
dns-sd -B _openclaw-gw._tcp openclaw.internal.像站在收音机前问:“附近有没有 Gateway 的广播?”
dig @<TAILNET_IPV4> -p 53 ... PTR +short像把广播信号拆成一张清单,看看记录到底有没有发出来。
先装广播台,再确认收音机真的能听到。
广播内容
官方特意提醒:TXT 记录是非秘密提示,不是安全凭证。它只是帮你更快找门。
role=gateway像牌子上写着:“我是 Gateway,不是别的机器。”
displayName / lanHost像门口贴了个好认的名字和本地门牌。
gatewayPort / gatewayTlsSha256像告诉你大概该往哪个窗口去,但不能把这些提示当成最终认证。
广播牌不是身份证。真正连上去时,还是要走明确的 endpoint 和用户确认。
调试
官方给了 macOS、Gateway 日志、iOS 节点三种方向。像排队找不到人,就从广播、记录本、终端消息三处一起看。
dns-sd像站在小区广播牌前,看看列表里有没有那盏灯。
bonjour:像翻广播台值班记录,看是不是广告没发出去、名字冲突了、或者服务没被成功宣布。
像在手机里看收音机到底有没有扫到那条频道。
跨网络、Wi‑Fi 禁 mDNS、睡眠唤醒、名字太花哨,都是最常见的卡点。
配置开关
官方把关广播的办法写得很直接:你可以让它不播,也可以改广播里贴的提示。
OPENCLAW_DISABLE_BONJOUR=1像直接把小区广播机的电源关掉。
gateway.bind像决定这台门口广播机到底往哪面墙开口。
OPENCLAW_SSH_PORT / OPENCLAW_TAILNET_DNS像广播牌上还顺手贴了 SSH 门牌和 MagicDNS 提示。
Bonjour 负责“让你更快找到门”,不是“让门自动变安全”。
最后总结
Bonjour / mDNS 就像小区门口的小广播:同一片网里帮你找到 Gateway,跨网就改用宽域 Bonjour 和 Tailscale,真正连接时还是要看 endpoint 和证书,不要把广播牌当身份证。
如果你下一页想继续看“Gateway 起来以后,后台是怎么跑的”,就去 /gateway/background-process。