OpenClaw 2026.3.12+ 外网访问云服务器完全指南
前言
OpenClaw 是一个强大的 AI Agent 框架,支持多渠道接入、远程控制等功能。在 2026.3.12 版本中,OpenClaw 加强了安全机制,外网访问方式发生了重要变化。本文将详细介绍四种外网访问云服务器 OpenClaw 的方法,帮助你选择最适合的方案。
版本变化说明
2026.3.12 的安全升级
在新版本中,OpenClaw 引入了 设备配对(Device Pairing)机制:
- 本地连接 (127.0.0.1, ::1):自动批准,无需配对
- 远程连接 (LAN/外网):必须先配对设备,即使配置了
dangerouslyDisableDeviceAuth: true
这意味着旧版本的外网访问配置可能不再有效,需要采用新的方案。
为什么要加强安全?
- 防止未授权设备访问
- 避免 token 泄露后的安全风险
- 符合零信任安全架构理念
四种方法对比
| 维度 | XRDP 桌面 | HTTP + 配对 | SSH 隧道 | Tailscale |
|---|---|---|---|---|
| 安全性 | ⭐⭐⭐⭐⭐ | ⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ |
| 配置复杂度 | ⭐⭐⭐⭐ | ⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐ |
| 使用便捷度 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐⭐⭐ |
| 资源占用 | 高(1-2GB) | 低 | 低 | 低 |
| 带宽要求 | 高(5M+) | 低 | 低 | 低 |
| 需要配对 | ❌ | ✅ | ❌ | ❌ |
| 需要 HTTPS | ❌ | ❌ | ❌ | ✅(自动) |
| 需要额外软件 | ❌ | ❌ | ❌ | ✅ |
| 适用场景 | 图形操作 | 临时测试 | 安全访问 | 生产环境 |
方法一:XRDP 桌面内访问(最简单)⭐⭐⭐⭐⭐
适用场景
- 已在云服务器上部署了 Ubuntu 桌面环境
- 需要图形界面操作服务器
- 追求最简单、最安全的访问方式
方案原理
通过 XRDP 远程桌面连接到云服务器,在服务器的桌面环境中直接访问 OpenClaw。由于是本地连接(127.0.0.1),OpenClaw 会自动批准,无需任何额外配置。
云服务器配置建议
最低配置
- CPU: 2核
- 内存: 2GB
- 带宽: 3M(可用,但体验一般)
推荐配置
- CPU: 4核
- 内存: 4GB 或 8GB
- 带宽: 5M+(流畅体验)
- Swap: 2GB(避免内存不足)
带宽对体验的影响
| 带宽 | 体验 | 建议 |
|---|---|---|
| 1-3M | 卡顿明显 | 仅适合文本操作 |
| 5M | 基本流畅 | 需要优化配置 |
| 10M+ | 流畅 | 推荐 |
详细步骤
1. 部署 Ubuntu 桌面 + XRDP
bash
# 更新系统
sudo apt update && sudo apt upgrade -y
# 安装 Ubuntu 桌面(GNOME)
sudo apt install -y ubuntu-desktop
# 安装 XRDP
sudo apt install -y xrdp
# 启动 XRDP 服务
sudo systemctl enable xrdp
sudo systemctl start xrdp
# 检查状态
sudo systemctl status xrdp
2. 性能优化(5M 带宽必做)
bash
# 优化 XRDP 配置
sudo sed -i 's/max_bpp=32/max_bpp=15/' /etc/xrdp/xrdp.ini
sudo sed -i 's/crypt_level=high/crypt_level=low/' /etc/xrdp/xrdp.ini
# 重启 XRDP
sudo systemctl restart xrdp
优化说明:
max_bpp=15:降低色深到 15 位,减少带宽占用约 50%crypt_level=low:降低加密级别,提高性能
3. 禁用不必要的服务
bash
# 禁用 Snap(占用资源)
sudo systemctl disable snapd
# 禁用打印服务
sudo systemctl disable cups
# 禁用蓝牙
sudo systemctl disable bluetooth
4. 配置自动会话清理
bash
# 创建清理脚本
sudo bash -c 'cat > /usr/local/bin/cleanup-xrdp-sessions.sh << "SCRIPT"
#!/bin/bash
find /tmp/.X11-unix -type s -mmin +30 -delete
SCRIPT'
sudo chmod +x /usr/local/bin/cleanup-xrdp-sessions.sh
# 添加定时任务(每 5 分钟清理一次)
echo "*/5 * * * * /usr/local/bin/cleanup-xrdp-sessions.sh" | sudo crontab -
5. 连接 XRDP
Windows 用户:
- 打开"远程桌面连接"(mstsc.exe)
- 输入服务器地址和端口(如
your-server.com:3389) - 输入用户名和密码
- 连接成功
Mac 用户:
- 下载 Microsoft Remote Desktop
- 添加 PC,输入服务器地址
- 输入凭据连接
6. 访问 OpenClaw
在 XRDP 桌面中:
- 打开浏览器(Chrome 或 Firefox)
- 访问
http://127.0.0.1:18789/(或你配置的端口) - 完成!无需 token,直接使用
优点
✅ 零配置 :不需要修改 OpenClaw 配置
✅ 最安全 :本地连接,自动批准
✅ 无需配对 :不需要设备配对流程
✅ 图形界面:可以同时操作服务器和 OpenClaw
缺点
❌ 需要桌面环境 :占用额外资源(约 1-2GB 内存)
❌ 带宽要求高 :5M 以下体验较差
❌ 初次部署复杂:需要安装桌面环境和 XRDP
适合人群
- 需要经常操作服务器的用户
- 有充足带宽的云服务器
- 追求简单易用的方案
方法二:外网 HTTP 访问 + 设备配对 ⭐⭐⭐
适用场景
- 需要从任意设备直接访问
- 临时测试或开发环境
- 不想安装额外软件
方案原理
将 OpenClaw Gateway 绑定到 LAN(0.0.0.0),允许外网访问。首次访问时需要在服务器上批准设备,之后该设备可以直接访问。
详细步骤
1. 修改 OpenClaw 配置
编辑 ~/.openclaw/openclaw.json:
json
{
"gateway": {
"port": 18787,
"bind": "lan",
"controlUi": {
"allowInsecureAuth": true,
"dangerouslyDisableDeviceAuth": true,
"dangerouslyAllowHostHeaderOriginFallback": true
},
"auth": {
"mode": "token",
"token": "your-secure-token-here"
}
}
}
配置说明:
bind: "lan":监听所有网卡(0.0.0.0),允许外网访问allowInsecureAuth:允许 HTTP 访问(非 HTTPS)dangerouslyDisableDeviceAuth:允许跳过设备认证(但仍需配对)dangerouslyAllowHostHeaderOriginFallback:允许跨域访问
2. 重启 Gateway
bash
openclaw gateway restart
3. 开放防火墙端口
云服务器安全组:
- 登录云服务商控制台
- 找到安全组设置
- 添加入站规则:TCP 18787 端口
服务器防火墙(如果有):
bash
# UFW
sudo ufw allow 18787/tcp
# iptables
sudo iptables -A INPUT -p tcp --dport 18787 -j ACCEPT
4. 首次访问
在浏览器中访问(必须带 token):
http://your-server.com:7777/?token=your-secure-token-here
页面会显示:"disconnected (1008): pairing required"
5. 批准设备
SSH 到服务器,运行:
bash
# 列出待配对设备
openclaw devices list
输出示例:
Pending (1)
┌──────────────┬────────────┬─────────────┐
│ Request ID │ IP │ User Agent │
├──────────────┼────────────┼─────────────┤
│ abc123def456 │ 1.2.3.4 │ Chrome/145 │
└──────────────┴────────────┴─────────────┘
批准设备:
bash
openclaw devices approve abc123def456
6. 刷新浏览器
刷新页面,连接成功!后续访问不需要再带 token(已保存到浏览器)。
设备管理
bash
# 列出所有已配对设备
openclaw devices list
# 撤销设备
openclaw devices revoke --device <deviceId>
# 查看设备详情
openclaw devices list --json
优点
✅ 灵活访问 :可以从任意设备访问
✅ 配对后便捷 :无需重复操作
✅ 不需要额外软件:只需浏览器
缺点
❌ 安全风险 :HTTP 明文传输 token
❌ 需要配对 :首次访问需要 SSH 到服务器
❌ 需要开放端口 :增加攻击面
❌ 配置复杂:需要修改多个配置项
安全建议
⚠️ 仅用于测试环境,生产环境请使用 HTTPS 或其他安全方案。
如果必须使用:
- 使用强 token(至少 32 字符随机字符串)
- 定期更换 token
- 限制访问 IP(安全组白名单)
- 定期检查已配对设备,撤销不需要的
方法三:SSH 隧道(最安全)⭐⭐⭐⭐
适用场景
- 需要安全的远程访问
- 不想修改 OpenClaw 配置
- 不想开放公网端口
- 对安全性要求高
方案原理
SSH 隧道(SSH Tunnel)是一种通过 SSH 连接建立加密通道的技术。它可以将远程服务器的端口"映射"到本地电脑,让你像访问本地服务一样访问远程服务。
工作流程:
你的电脑 → SSH 加密通道 → 远程服务器
本地 18787 ← 映射 ← 远程 127.0.0.1:18787
访问本地的 http://127.0.0.1:18787/ 实际上就是访问远程服务器的 18787 端口,但所有流量都经过 SSH 加密。
详细步骤
Windows 用户(PowerShell)
- 打开 PowerShell
- 运行命令:
powershell
ssh -N -L 18787:127.0.0.1:18787 root@your-server.com
- 输入服务器密码
- 保持窗口打开(不要关闭)
- 打开浏览器访问
http://127.0.0.1:18787/
参数说明:
-N:不执行远程命令,只建立隧道-L 7777:127.0.0.1:18787:本地 18787 端口映射到远程 127.0.0.1:18787root@your-server.com:SSH 连接信息
Windows 用户(PuTTY)
如果你习惯用 PuTTY:
- 打开 PuTTY
- Session 标签:
- Host Name:
your-server.com - Port:
22
- Host Name:
- Connection → SSH → Tunnels 标签:
- Source port:
18787 - Destination:
127.0.0.1:18787 - 点击 Add 按钮
- Source port:
- 回到 Session 标签,点击 Open
- 输入用户名和密码
- 保持窗口打开
- 打开浏览器访问
http://127.0.0.1:18787/
Linux/Mac 用户
bash
ssh -N -L 18787:127.0.0.1:18787 root@your-server.com
后台运行(可选):
bash
ssh -fN -L 18787:127.0.0.1:18787 root@your-server.com
使用密钥认证(推荐):
bash
ssh -N -L 18787:127.0.0.1:18787 -i ~/.ssh/id_rsa root@your-server.com
关闭隧道
- PowerShell/终端 :按
Ctrl+C - PuTTY:关闭窗口
- 后台运行 :
pkill -f "ssh.*18787"
高级用法
1. 配置 SSH 别名
编辑 ~/.ssh/config(Linux/Mac)或 C:\Users\你的用户名\.ssh\config(Windows):
Host openclaw-tunnel
HostName your-server.com
User root
LocalForward 18787 127.0.0.1:18787
ServerAliveInterval 60
使用:
bash
ssh -N openclaw-tunnel
2. 自动重连脚本
Linux/Mac:
bash
#!/bin/bash
while true; do
ssh -N -L 18787:127.0.0.1:18787 root@your-server.com
echo "隧道断开,5 秒后重连..."
sleep 5
done
Windows PowerShell:
powershell
while ($true) {
ssh -N -L 18787:127.0.0.1:18787 root@your-server.com
Write-Host "隧道断开,5 秒后重连..."
Start-Sleep -Seconds 5
}
3. 多端口映射
bash
ssh -N \
-L 18787:127.0.0.1:18787 \
-L 8080:127.0.0.1:8080 \
root@your-server.com
优点
✅ 最安全 :所有流量 SSH 加密
✅ 无需配对 :视为本地连接
✅ 无需开放端口 :只需 SSH 端口(22)
✅ 不修改配置 :OpenClaw 保持 loopback 绑定
✅ 灵活:可以映射多个端口
缺点
❌ 需要保持连接 :关闭 SSH 窗口隧道就断了
❌ 配置稍复杂 :需要理解 SSH 隧道概念
❌ 网络中断影响:SSH 断开需要重连
适合人群
- 对安全性要求高的用户
- 熟悉命令行操作
- 需要临时访问的场景
- 不想修改服务器配置
方法四:Tailscale Serve(官方推荐)⭐⭐⭐⭐⭐
什么是 Tailscale?
Tailscale 是一个基于 WireGuard 的零配置 VPN 服务,可以让你的设备组成一个安全的私有网络(Tailnet)。
核心特点:
- 零配置:不需要配置防火墙、端口转发
- 点对点:设备之间直接连接,不经过中心服务器
- 加密:基于 WireGuard,军事级加密
- 跨平台:支持 Windows、Mac、Linux、iOS、Android
什么是 Tailscale Serve?
Tailscale Serve 是 Tailscale 的一个功能,可以将本地服务安全地暴露给 Tailnet 中的其他设备,并自动提供 HTTPS。
工作原理:
你的设备 → Tailnet (加密) → 服务器
浏览器访问 https://<服务器名>.tailnet.ts.net/
详细步骤
1. 安装 Tailscale
Ubuntu/Debian:
bash
curl -fsSL https://tailscale.com/install.sh | sh
CentOS/RHEL:
bash
curl -fsSL https://tailscale.com/install.sh | sh
Windows/Mac:
- 访问 https://tailscale.com/download
- 下载并安装客户端
2. 登录 Tailscale
bash
sudo tailscale up
会显示一个登录链接,在浏览器中打开并授权。
3. 启动 OpenClaw with Tailscale Serve
bash
openclaw gateway --tailscale serve
或者修改配置文件 ~/.openclaw/openclaw.json:
json
{
"gateway": {
"tailscale": {
"mode": "serve"
}
}
}
然后启动:
bash
openclaw gateway start
4. 获取访问地址
bash
tailscale status
找到你的服务器名称,例如 my-server。
访问地址:
https://my-server.tailnet-name.ts.net/
(Tailscale 会自动分配一个 MagicDNS 域名)
5. 在其他设备上访问
- 在你的电脑/手机上安装 Tailscale
- 登录同一个账号
- 直接访问
https://my-server.tailnet-name.ts.net/ - 完成!自动 HTTPS,自动认证
Tailscale 认证机制
当配置 gateway.auth.allowTailscale: true 时:
- OpenClaw 会验证请求来自 Tailscale
- 通过
tailscale whois验证用户身份 - 不需要 token 或密码
- 基于 Tailscale 账号的信任
配置示例:
json
{
"gateway": {
"auth": {
"mode": "token",
"allowTailscale": true
}
}
}
高级功能
1. Funnel(公开访问)
如果你想让 Tailnet 外的人也能访问(公开服务):
bash
openclaw gateway --tailscale funnel
这会生成一个公开的 HTTPS 地址,任何人都可以访问(但仍需 OpenClaw 的 token 认证)。
2. 自定义域名
在 Tailscale 控制台可以配置自定义域名:
https://openclaw.yourdomain.com/
3. ACL 访问控制
在 Tailscale 控制台配置 ACL,限制哪些用户可以访问:
json
{
"acls": [
{
"action": "accept",
"src": ["user1@example.com"],
"dst": ["my-server:7777"]
}
]
}
优点
✅ 自动 HTTPS :无需配置 SSL 证书
✅ 零配置网络 :不需要配置防火墙、端口转发
✅ Tailscale 认证 :基于账号的安全认证
✅ 官方推荐 :OpenClaw 官方推荐方案
✅ 跨平台 :支持所有主流平台
✅ 点对点:低延迟,高性能
缺点
❌ 需要安装 Tailscale :所有设备都要装
❌ 需要账号 :需要注册 Tailscale 账号
❌ 学习成本 :需要理解 Tailnet 概念
❌ 依赖第三方:依赖 Tailscale 服务
适合人群
- 需要在多个设备间访问
- 追求安全和便捷的平衡
- 愿意学习新工具
- 团队协作场景
推荐方案
个人开发者
推荐:XRDP 桌面内访问 或 SSH 隧道
- 如果有充足带宽(5M+):XRDP 最方便
- 如果带宽有限:SSH 隧道最安全
团队协作
推荐:Tailscale Serve
- 多人访问
- 自动 HTTPS
- 基于账号的权限管理
临时测试
推荐:HTTP + 设备配对
- 快速配置
- 用完即走
- 记得测试后关闭外网访问
生产环境
推荐:Tailscale Serve 或 SSH 隧道
- 绝不使用 HTTP + 配对
- 必须使用加密传输
- 定期审计访问日志
常见问题
Q1: 为什么配置了 dangerouslyDisableDeviceAuth 还要配对?
A: 2026.3.12 版本加强了安全机制,外网访问必须配对设备,这是硬性要求。只有本地连接(127.0.0.1)才能自动批准。
Q2: 如何避免设备配对?
A: 使用本地连接方式:
- XRDP 桌面内访问
- SSH 隧道
- Tailscale Serve(基于 Tailscale 认证)
Q3: HTTP 访问安全吗?
A: 不安全。HTTP 明文传输 token,容易被中间人攻击。仅用于测试环境,生产环境必须使用 HTTPS 或加密隧道。
Q4: 配对后需要重复操作吗?
A: 不需要。设备配对后会记住,除非:
- 清除浏览器数据
- 更换浏览器
- 管理员撤销设备
Q5: 如何查看已配对的设备?
A:
bash
openclaw devices list
Q6: 如何撤销设备?
A:
bash
openclaw devices revoke --device <deviceId>
Q7: XRDP 太卡怎么办?
A:
- 降低色深:
max_bpp=15 - 禁用不必要服务(snapd、cups)
- 增加带宽(升级到 10M+)
- 使用轻量级桌面环境(XFCE)
Q8: SSH 隧道断开怎么办?
A:
- 使用自动重连脚本
- 配置
ServerAliveInterval保持连接 - 使用
autossh工具
Q9: Tailscale 免费吗?
A:
- 个人使用:免费(最多 100 台设备)
- 团队使用:有付费计划
- 详见:https://tailscale.com/pricing
Q10: 可以同时使用多种方法吗?
A: 可以。不同方法不冲突,可以根据场景选择:
- 日常使用:XRDP 桌面
- 外出访问:Tailscale
- 临时调试:SSH 隧道
总结
OpenClaw 2026.3.12 版本的安全升级虽然增加了配置复杂度,但大大提高了安全性。根据你的使用场景选择合适的方案:
- 追求简单:XRDP 桌面内访问
- 追求安全:SSH 隧道或 Tailscale
- 临时测试:HTTP + 设备配对
- 生产环境:Tailscale Serve
希望本文能帮助你顺利配置 OpenClaw 的远程访问!
作者 :[aiAI]
日期 :2026-03-14
版本:OpenClaw 2026.3.12+
参考资料:
- OpenClaw 官方文档:https://docs.openclaw.ai
- Tailscale 官网:https://tailscale.com
- OpenClaw GitHub:https://github.com/openclaw/openclaw