OpenClaw + Tailscale 远程访问配置教程
本文记录了博主在配置 OpenClaw 远程访问过程中遇到的所有坑及解决方案,适合有一定 Linux 基础的读者。
背景
OpenClaw 默认只监听 127.0.0.1:18789,外部设备无法直接访问。Tailscale Serve 可以将这个本地端口安全地暴露给同一 Tailnet 下的其他设备,无需端口转发、不暴露公网。
网络结构:
[客户端设备] ←── Tailscale 加密隧道 ──→ [OpenClaw 主机:18789]
环境
- OpenClaw 主机:Linux(假设 hostname 为
openclaw-server) - 客户端:一台同样安装了 Tailscale 的设备
- 两台设备使用同一个 Tailscale 账号(免费版即可)
- OpenClaw 版本:2026.3.x
- Tailscale 版本:1.96+
第一步:OpenClaw 主机安装并登录 Tailscale
# 安装 Tailscale
curl -fsSL https://tailscale.com/install.sh | sh
# 启动并登录(会输出认证 URL)
sudo systemctl enable --now tailscaled
sudo tailscale up
# 浏览器打开认证链接,用同一 Tailscale 账号登录
确认连接成功:
tailscale status
✅ 如果看到所有设备都在列表里,说明它们已经处于同一私有网络中。
第二步:配置 OpenClaw Gateway
编辑 ~/.openclaw/openclaw.json:
{
"gateway": {
"port": 18789,
"mode": "local",
"bind": "loopback",
"tailscale": {
"mode": "serve"
},
"auth": {
"mode": "token",
"token": "your-secure-token-here",
"allowTailscale": true
},
"controlUi": {
"allowInsecureAuth": true,
"allowedOrigins": ["https://*.ts.net"] //按照给你的访问地址设置
}
}
}
用命令设置更方便:
openclaw config set gateway.tailscale.mode serve
openclaw config set gateway.controlUi.allowedOrigins '["https://*.ts.net"]' #按照给你的访问地址设置
openclaw gateway restart
第三步:启动 Tailscale Serve(关键步骤)
这是最容易踩坑的一步。OpenClaw 的 Tailscale 自动配置在当前版本存在 bug,不会自动调用
tailscale serve,必须手动执行。
sudo tailscale serve --bg http://127.0.0.1:18789
参数说明:
--bg:后台运行http://127.0.0.1:18789:Tailscale 将请求转发到本地 OpenClaw Gateway
确认运行状态:
sudo tailscale serve status
# 输出类似:
# Available within your tailnet:
# https://openclaw-server.tailxxxx.ts.net/
# |-- proxy http://127.0.0.1:18789
访问地址:https://openclaw-server.tailxxxx.ts.net/(Tailscale 自动生成,固定不变)
第四步:客户端配对
首次从客户端访问 Control UI 时,会提示 pairing required。
在 OpenClaw 主机上审批设备请求:
# 查看待审批请求
openclaw devices list
# 审批指定请求
openclaw devices approve <request-id>
# 或直接审批最后一个请求
openclaw devices approve --last
第五步:设置开机自启
手动启动的 tailscale serve 在重启后会失效,推荐使用 crontab 开机自启:
sudo crontab -e
加入一行:
@reboot /usr/bin/tailscale serve --bg http://127.0.0.1:18789
第六步:从客户端访问
curl https://openclaw-server.tailxxxx.ts.net/
或在浏览器直接打开该地址即可。
常见问题排查
| 症状 | 原因 | 解决方案 |
|---|---|---|
curl: (7) Failed to connect | Tailscale Serve 未启动 | sudo tailscale serve --bg http://127.0.0.1:18789 |
No serve config | 参数不正确 | 确认用的是 --bg,不是 --https 443 |
origin not allowed | 跨域被拦截 | 设置 gateway.controlUi.allowedOrigins |
pairing required | 设备未授权 | openclaw devices approve <id> |
| 找不到域名 | MagicDNS 未启用 | 确认 Tailscale 账号开启了 MagicDNS |
安全建议
- 不要使用
gateway.auth.mode: "none"+tailscale.mode: "serve",这会将 Gateway 无密码暴露给整个 Tailnet - 不要轻易使用 Funnel 模式(公网暴露),除非你完全理解其风险并配置了强密码
- 务必保留 token 认证:
gateway.auth.mode: "token"不要关闭 - Tailscale Serve 模式只暴露给同一 Tailnet 内的设备,对公网不可见,安全性较高
配置 Checklist
- 两台设备安装 Tailscale 并登录同一账号
-
tailscale status确认设备互联 -
gateway.tailscale.mode: "serve"已写入配置 -
gateway.controlUi.allowedOrigins已设置 -
openclaw gateway restart已执行 -
sudo tailscale serve --bg http://127.0.0.1:18789已执行 -
sudo tailscale serve status确认 URL 可用 - 客户端访问测试
- 配对审批(如需要)
- crontab 开机自启
有问题欢迎留言交流 🦞