🌐 OpenClaw 远程访问完全指南

凌晨2点43分,你在咖啡馆突然想查看AI任务的进度,但你家的电脑在千里之外...

这篇文章教你配置OpenClaw的远程访问,让你的AI Agent触手可及。

访问方式概览

方式 难度 安全性 适用场景
Tailscale(推荐) ⭐⭐⭐⭐⭐ 个人使用、多设备互联
SSH隧道 ⭐⭐ ⭐⭐⭐⭐ 技术人员、临时访问
公网暴露 ⭐⭐⭐ ⭐⭐ 需要公网访问的场景
Cloudflare Tunnel ⭐⭐ ⭐⭐⭐⭐ 无需公网IP的公网访问

方案一:Tailscale(强烈推荐)

Tailscale是一个零配置的VPN服务,让你的所有设备组成一个虚拟局域网。

安装配置

1. 在Gateway机器上安装

# Linux
curl -fsSL https://tailscale.com/install.sh | sh

# macOS
brew install tailscale

# Windows
# 从 https://tailscale.com/download 下载安装

2. 连接Tailscale

# 登录并连接
sudo tailscale up

# 显示本机的Tailscale IP
tailscale ip
# 输出: 100.x.y.z

3. 配置Gateway监听

// openclaw.json
{
  "gateway": {
    "host": "0.0.0.0",  // 监听所有接口
    "port": 18789,
    "tailscale": {
      "enabled": true
    }
  }
}

4. 在手机/其他设备访问

# 同样安装并登录Tailscale
# 然后访问Gateway的Tailscale IP
http://100.x.y.z:18789
💡 Tailscale的优势
  • 零配置:不需要端口转发、不需要公网IP
  • 安全:端到端加密,流量不经过第三方
  • 快速:基于WireGuard,延迟极低
  • 免费:个人使用免费,支持100台设备

高级配置:子路由器

# 让Tailscale网络中的设备能访问Gateway所在局域网
sudo tailscale up --advertise-routes=192.168.1.0/24

# 在管理后台启用子路由器功能

方案二:SSH隧道

本地端口转发

# 在远程机器上执行
ssh -L 18789:localhost:18789 user@gateway-host

# 然后访问本地端口
http://localhost:18789

反向隧道

# 在Gateway机器上执行,将端口暴露到公网服务器
ssh -R 18789:localhost:18789 user@public-server

# 然后通过公网服务器访问
http://public-server:18789
⚠️ SSH隧道注意
  • 需要保持SSH连接,断开后无法访问
  • 建议使用autossh保持连接
  • 反向隧道需要在SSH服务器启用GatewayPorts

方案三:公网暴露

🚨 安全警告

公网暴露OpenClaw Gateway存在安全风险,必须配置严格的访问控制!

配置步骤

1. 端口转发

# 在路由器上配置端口转发
# 外部端口 18789 → 内网IP:18789

2. 配置防火墙

# UFW示例
sudo ufw allow 18789/tcp
sudo ufw enable

3. 配置访问控制(必须)

// openclaw.json
{
  "security": {
    "allowList": [
      "your-ip-address",
      "trusted-ip-range/24"
    ],
    "blockList": [
      "known-bad-ips"
    ],
    "rateLimit": {
      "enabled": true,
      "requestsPerMinute": 60
    }
  },
  "auth": {
    "tokens": {
      "enabled": true,
      "required": true
    }
  }
}

4. 启用HTTPS(推荐)

# 使用Let's Encrypt
sudo certbot certonly --standalone -d your-domain.com

// 配置OpenClaw使用证书
{
  "gateway": {
    "tls": {
      "enabled": true,
      "cert": "/etc/letsencrypt/live/your-domain.com/fullchain.pem",
      "key": "/etc/letsencrypt/live/your-domain.com/privkey.pem"
    }
  }
}

方案四:Cloudflare Tunnel

没有公网IP也能暴露服务,且自带DDoS防护和HTTPS。

配置步骤

1. 安装cloudflared

# Linux
curl -L https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64 -o cloudflared
chmod +x cloudflared
sudo mv cloudflared /usr/local/bin/

2. 登录Cloudflare

cloudflared tunnel login
# 会打开浏览器进行授权

3. 创建隧道

# 创建隧道
cloudflared tunnel create openclaw-gateway

# 输出:
# Tunnel credentials written to ~/.cloudflared/xxx.json

4. 配置路由

# 将域名路由到隧道
cloudflared tunnel route dns openclaw-gateway openclaw.your-domain.com

5. 运行隧道

cloudflared tunnel --url http://localhost:18789 run openclaw-gateway

# 或作为服务运行
sudo cloudflared service install
sudo systemctl start cloudflared
💡 Cloudflare Tunnel优势
  • 无需公网IP和端口转发
  • 自动HTTPS
  • DDoS防护
  • 访问控制(可选)

安全最佳实践

1. Token认证

// 生成token
openclaw tokens create --name "mobile-access" --expire 365d

// 在请求中携带
Authorization: Bearer your-token-here

2. IP白名单

{
  "security": {
    "allowList": [
      "192.168.1.0/24",    // 本地网络
      "100.x.y.z",          // Tailscale IP
      "your-office-ip/32"   // 办公室IP
    ]
  }
}

3. 速率限制

{
  "security": {
    "rateLimit": {
      "enabled": true,
      "requestsPerMinute": 60,
      "burst": 10
    }
  }
}

4. 审计日志

{
  "logging": {
    "audit": {
      "enabled": true,
      "path": "~/.openclaw/audit.log",
      "retentionDays": 30
    }
  }
}

方案对比

特性 Tailscale SSH隧道 公网暴露 Cloudflare
需要公网IP
需要配置 极少 中等 中等
自动HTTPS
DDoS防护
适合场景 个人/小团队 临时访问 需要公网 生产环境
🎓 小结

远程访问方案选择建议:

  • 个人使用 → Tailscale,简单安全
  • 临时访问 → SSH隧道,快速建立
  • 团队/生产 → Cloudflare Tunnel,功能全面
  • 特殊需求 → 公网暴露,务必配置安全控制

世界上最远的距离,是没有配置好远程访问的电脑和手机...