OpenClaw + Tailscale 远程访问配置教程

7 阅读3分钟

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 connectTailscale 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 开机自启

有问题欢迎留言交流 🦞