Gateway 导读

跨网发现:用 Wide-Area Bonjour 替代 mDNS

局域网内 mDNS 够用,但跨网段就失效。本页教你用 Tailscale 搭建 unicast DNS-SD,让 iOS 和 CLI 节点也能跨子网发现 Gateway。先跑 `openclaw dns setup --apply` 装 CoreDNS,再去 Tailscale 控制台配 split DNS,域名指向网关的 tailnet IP。

先讲这一页到底在解决什么

跨网发现:用 Wide-Area Bonjour 替代 mDNS

局域网内 mDNS 够用,但跨网段就失效。本页教你用 Tailscale 搭建 unicast DNS-SD,让 iOS 和 CLI 节点也能跨子网发现 Gateway。先跑 `openclaw dns setup --apply` 装 CoreDNS,再去 Tailscale 控制台配 split DNS,域名指向网关的 tailnet IP。

原文共 20 节,先看 Start Here 路径:/gateway/bonjour 查看官方原文

第一眼

🏘 它只管同一片小区里的找路,不负责跨城跑腿

官方说得很明确:Bonjour 是 LAN-only convenience。意思就是,它像楼门口的临时指示牌,只在附近好使。

📣

Bonjour / mDNS

像在小区门口立一块广播牌:“Gateway 在这里。”

🏡

LAN-only

只在同一片小区里有用。离得太远,广播就听不见了。

🧭

Best effort

它会尽量帮你找,但不保证每次都一定成功。

📌

一句话

这是“方便找门”,不是“保证连门”。

跨网络

🌍 如果不在同一片小区,就把广播改成宽域版

官方给的方案很像:“门口广播牌跨不过马路?那就用 Tailscale 把它接到另一边。”

Wide-area Bonjour

像把同一块门牌广告,改成能沿着专线送到远处的版本。

Split DNS

像给不同街区配不同的指路员,让大家都能朝同一个广播源去找。

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 节点三种方向。像排队找不到人,就从广播、记录本、终端消息三处一起看。

🪟

macOS 上的 dns-sd

像站在小区广播牌前,看看列表里有没有那盏灯。

🧾

Gateway 日志里的 bonjour:

像翻广播台值班记录,看是不是广告没发出去、名字冲突了、或者服务没被成功宣布。

📱

iOS 的 Discovery Logs

像在手机里看收音机到底有没有扫到那条频道。

⚠️

常见失败

跨网络、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