为什么使用 Tailscale
Tailscale 基于 WireGuard 协议,创建加密的虚拟专用网络,让分布在不同网络中的设备可以安全互联。将 Tailscale 与 OpenClaw 集成后,你可以:
- 无需公网 IP 即可远程访问 Gateway
- 所有通信自动加密
- 精细的访问控制(ACL)
- 避免暴露端口到公网
安装 Tailscale
Linux
curl -fsSL https://tailscale.com/install.sh | sh
sudo tailscale up
macOS
brew install tailscale
tailscale up
Docker
docker run -d \
--name tailscale \
--cap-add NET_ADMIN \
--cap-add NET_RAW \
-v /dev/net/tun:/dev/net/tun \
-v tailscale-state:/var/lib/tailscale \
-e TS_AUTHKEY=tskey-auth-your-key \
tailscale/tailscale
配置 OpenClaw 监听 Tailscale 接口
安装 Tailscale 后,你的机器会获得一个 Tailscale IP(100.x.x.x)。配置 OpenClaw 只监听这个接口:
{
"gateway": {
"host": "100.64.0.1",
"port": 3000
}
}
或者监听所有接口,但通过防火墙限制只允许 Tailscale 网段访问:
# 只允许 Tailscale 网段访问 3000 端口
sudo iptables -A INPUT -p tcp --dport 3000 -s 100.64.0.0/10 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 3000 -j DROP
使用 Tailscale Funnel 暴露服务
如果需要让频道 Webhook(如 Telegram)能够访问你的 Gateway,可以使用 Tailscale Funnel:
# 将本地 3000 端口通过 Funnel 暴露
tailscale funnel 3000
这会给你一个公网可访问的 URL:
https://your-machine.tail1234.ts.net:443
将这个 URL 配置为 Webhook 回调地址:
{
"gateway": {
"baseUrl": "https://your-machine.tail1234.ts.net"
},
"channels": {
"telegram": {
"webhookUrl": "https://your-machine.tail1234.ts.net/webhook/telegram"
}
}
}
使用 Tailscale Serve 反向代理
Tailscale Serve 可以为本地服务添加 HTTPS:
tailscale serve https / http://127.0.0.1:3000
这样通过 Tailscale 网络访问时会自动使用 HTTPS,证书由 Tailscale 自动管理。
ACL 访问控制
在 Tailscale 管理界面配置 ACL,限制哪些设备可以访问 OpenClaw:
{
"acls": [
{
"action": "accept",
"src": ["group:admins"],
"dst": ["tag:openclaw:3000"]
},
{
"action": "accept",
"src": ["group:users"],
"dst": ["tag:openclaw:3000"]
}
],
"tagOwners": {
"tag:openclaw": ["group:admins"]
}
}
为 OpenClaw 服务器添加标签:
tailscale up --advertise-tags=tag:openclaw
Docker Compose 集成
将 Tailscale 和 OpenClaw 一起用 Docker Compose 管理:
version: "3"
services:
tailscale:
image: tailscale/tailscale
cap_add:
- NET_ADMIN
- NET_RAW
volumes:
- /dev/net/tun:/dev/net/tun
- tailscale-state:/var/lib/tailscale
environment:
- TS_AUTHKEY=tskey-auth-your-key
- TS_STATE_DIR=/var/lib/tailscale
network_mode: host
openclaw:
image: openclaw/openclaw:latest
network_mode: host
depends_on:
- tailscale
volumes:
tailscale-state:
MagicDNS 使用
启用 Tailscale MagicDNS 后,可以使用机器名访问:
{
"gateway": {
"baseUrl": "https://openclaw-server.tail1234.ts.net"
}
}
不再需要记住 IP 地址。
多节点部署
结合 Remote Gateway 功能,通过 Tailscale 网络连接多个 OpenClaw 节点:
{
"gateway": {
"mode": "remote",
"primaryUrl": "https://primary.tail1234.ts.net:3100",
"authToken": "{{REMOTE_AUTH_TOKEN}}"
}
}
所有节点间通信通过 Tailscale 的 WireGuard 隧道加密传输。
故障排查
# 检查 Tailscale 连接状态
tailscale status
# 测试到目标节点的连通性
tailscale ping openclaw-server
# 查看 Tailscale 网络诊断
tailscale netcheck
总结
Tailscale 为 OpenClaw 提供了零配置的安全网络层,无需处理端口转发、动态 DNS 或 VPN 服务器搭建。特别适合家庭服务器、NAS 上部署的 OpenClaw 实例需要远程访问的场景。