文章目录
目录
- 背景
- 环境
- 第一步:OpenClaw 主机安装并登录 Tailscale
- 第二步:配置 OpenClaw Gateway
- 第三步:启动 Tailscale Serve(关键步骤)
- 第四步:客户端配对
- 第五步:设置开机自启
- 第六步:从客户端访问
- 常见问题排查
- 安全建议
- 配置 Checklist
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-server)
# 安装 Tailscale
curl -fsSL https://tailscale.com/install.sh | sh
# 启动并登录(会输出认证 URL)
sudo systemctl enable --now tailscaled
sudo tailscale up
# 浏览器打开认证链接,用同一 Tailscale 账号登录
确认连接成功:
tailscale status
如果看到所有设备都在列表里,说明它们已经处于同一私有网络中。
编辑 ~/.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
这是最容易踩坑的一步。OpenClaw 的 Tailscale 自动配置在当前版本存在 bug,不会自动调用 tailscale serve,必须手动执行。
sudo tailscale serve --bg http://127.0.0.1:18789
这是最容易踩坑的一步。OpenClaw 的 Tailscale 自动配置在当前版本存在 bug,不会自动调用 tailscale serve,必须手动执行。
参数说明:
--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 内的设备,对公网不可见,安全性较高
gateway.auth.mode: "none" + tailscale.mode: "serve",这会将 Gateway 无密码暴露给整个 Tailnetgateway.auth.mode: "token" 不要关闭
- 两台设备安装 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 开机自启
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 可用以上就是OpenClaw+Tailscale远程访问配置的完整教程的详细内容,更多关于OpenClaw+Tailscale远程访问配置的资料请关注风君子博客其它相关文章!