Tailscale 部署

使用 Tailscale 安全远程访问

概述

Tailscale 是一个基于 WireGuard 的零配置 VPN 服务。 通过 Tailscale,你可以安全地从任何地方访问部署在内网的 OpenClaw, 无需配置端口转发或公网 IP。

端到端加密

WireGuard 加密,安全可靠

零配置

无需配置防火墙和路由

随处访问

任何网络都能连接

使用场景

  • 家庭服务器 - 在家运行 OpenClaw,外出时访问
  • 办公内网 - 安全访问公司内部的 OpenClaw
  • 多设备同步 - 多台设备共享同一个 OpenClaw
  • 隐私保护 - 无需暴露公网端口

安装配置

在服务器上安装 Tailscale

# Linux (Ubuntu/Debian)
curl -fsSL https://tailscale.com/install.sh | sh

# macOS
brew install tailscale

# 启动并登录
sudo tailscale up

验证连接

# 查看 Tailscale IP
tailscale ip -4

# 查看状态
tailscale status

在客户端安装

  • macOS/Windows: 从 官网下载
  • iOS/Android: 从 App Store/Play Store 下载
  • Linux: 同上安装命令

连接 OpenClaw

配置 OpenClaw Gateway

# 在运行 OpenClaw 的服务器上配置
# ~/.openclaw/config.yaml

gateway:
  # 监听 Tailscale IP
  host: 0.0.0.0
  port: 8080

  # 或者只监听 Tailscale 网络
  # host: 100.x.x.x  # 你的 Tailscale IP

启动 Gateway

openclaw gateway

从客户端访问

# 获取服务器的 Tailscale IP
tailscale status

# 连接到 OpenClaw
# 假设服务器 Tailscale IP 是 100.100.100.1
curl http://100.100.100.1:8080/health

远程访问

使用 MagicDNS

Tailscale 提供 MagicDNS,可以用设备名访问:

# 启用 MagicDNS(在 Tailscale Admin Console)
# 然后可以用设备名访问
curl http://my-server:8080/health

# 或者使用完整域名
curl http://my-server.tailnet-name.ts.net:8080/health

配置远程 Gateway

# 在客户端配置 OpenClaw
# ~/.openclaw/config.yaml

gateway:
  remote:
    enabled: true
    url: http://my-server:8080
    # 或使用 Tailscale IP
    # url: http://100.100.100.1:8080

SSH 访问

# 通过 Tailscale SSH 访问服务器
tailscale ssh my-server

# 或者启用 Tailscale SSH
sudo tailscale up --ssh

共享访问

邀请其他用户

  1. 登录 Tailscale Admin Console
  2. 进入 "Users" 页面
  3. 点击 "Invite users"
  4. 输入对方邮箱

共享特定设备

# 使用 Tailscale Share 功能
# 在 Admin Console 中设置设备共享

# 或使用 ACL 控制访问
{
  "acls": [
    {
      "action": "accept",
      "src": ["group:family"],
      "dst": ["my-server:8080"]
    }
  ]
}

使用 Funnel(公开访问)

# 如果需要公开访问(不推荐用于 OpenClaw)
tailscale funnel 8080

# 会生成一个公开的 HTTPS URL
# https://my-server.tailnet-name.ts.net/

高级配置

ACL 访问控制

// 在 Tailscale Admin Console 配置 ACL
{
  "acls": [
    // 只允许特定用户访问 OpenClaw
    {
      "action": "accept",
      "src": ["[email protected]"],
      "dst": ["openclaw-server:*"]
    },
    // 阻止其他访问
    {
      "action": "deny",
      "src": ["*"],
      "dst": ["openclaw-server:*"]
    }
  ],
  "tagOwners": {
    "tag:server": ["[email protected]"]
  }
}

Exit Node(全局代理)

# 将服务器设为 Exit Node
sudo tailscale up --advertise-exit-node

# 客户端使用 Exit Node
tailscale up --exit-node=my-server

Subnet 路由

# 如果需要访问服务器所在的整个内网
sudo tailscale up --advertise-routes=192.168.1.0/24

# 在 Admin Console 中批准路由

与 Docker 集成

# docker-compose.yml
version: '3'
services:
  tailscale:
    image: tailscale/tailscale
    hostname: openclaw
    environment:
      - TS_AUTHKEY=tskey-xxx
      - TS_STATE_DIR=/var/lib/tailscale
    volumes:
      - tailscale-state:/var/lib/tailscale
    cap_add:
      - NET_ADMIN
    network_mode: host

  openclaw:
    image: openclaw/openclaw
    network_mode: service:tailscale
    depends_on:
      - tailscale

volumes:
  tailscale-state: