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:8080SSH 访问
# 通过 Tailscale SSH 访问服务器
tailscale ssh my-server
# 或者启用 Tailscale SSH
sudo tailscale up --ssh高级配置
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-serverSubnet 路由
# 如果需要访问服务器所在的整个内网
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: