Skip to content
广告 · 本站推荐广告

远程网关搭建

本教程从零开始,手把手指导你搭建一个可远程访问的 Gateway 实例。

准备工作

你需要准备:

项目说明
云服务器至少 1 核 CPU、1 GB 内存
域名gateway.example.com
DNS 管理能修改域名 A 记录

服务器选择

Gateway 本身资源消耗很小。最小规格的云服务器即可满足个人使用需求。

第 1 步:域名配置

在你的 DNS 管理面板中添加 A 记录:

text
类型: A
名称: gateway
值:   <你的服务器公网 IP>
TTL:  300

验证 DNS 解析:

bash
nslookup gateway.example.com
# 应返回你的服务器 IP

第 2 步:安装 OpenClaw

bash
# 下载并安装
curl -fsSL https://install.openclaw.dev | bash

# 验证安装
openclaw --version

第 3 步:基础配置

bash
# 生成安全 Token
export OPENCLAW_GATEWAY_TOKEN="$(openssl rand -hex 32)"
echo "请安全保存你的 Token: $OPENCLAW_GATEWAY_TOKEN"

# 配置 Gateway 监听所有接口
openclaw config set gateway.host "0.0.0.0"
openclaw config set gateway.port 18789

# 设置日志级别
openclaw config set gateway.logLevel "info"

配置 Channel(以 OpenAI 为例):

bash
# 设置 API Key
openclaw secrets set OPENAI_API_KEY "sk-your-key-here"

# 添加 Channel
openclaw config set channels '[{"name":"openai","provider":"openai","apiKey":"${OPENAI_API_KEY}"}]'
openclaw config set models.default "gpt-4o"

第 4 步:安装 Caddy 反向代理

bash
# Ubuntu/Debian
sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
sudo apt update && sudo apt install caddy

配置 Caddy:

text
# /etc/caddy/Caddyfile
gateway.example.com {
    reverse_proxy 127.0.0.1:18789
}
bash
# 启动 Caddy(自动申请 SSL 证书)
sudo systemctl enable caddy
sudo systemctl start caddy

自动 HTTPS

Caddy 会自动为你的域名申请 Let's Encrypt 证书并自动续期,无需手动管理。

第 5 步:SSL/TLS 验证

bash
# 验证证书
curl -vI https://gateway.example.com 2>&1 | grep "SSL certificate"

# 检查证书详情
openssl s_client -connect gateway.example.com:443 -servername gateway.example.com </dev/null 2>/dev/null | openssl x509 -noout -dates

第 6 步:防火墙规则

bash
# 允许 HTTPS 入站
sudo ufw allow 443/tcp

# 允许 HTTP(Caddy 重定向用)
sudo ufw allow 80/tcp

# 禁止直接访问 Gateway 端口
sudo ufw deny 18789/tcp

# 启用防火墙
sudo ufw enable
sudo ufw status

端口安全

Gateway 端口 18789 不应对外开放。所有外部流量应通过 Caddy 反向代理的 443 端口进入。

第 7 步:启动 Gateway 服务

创建 systemd 服务文件:

ini
# /etc/systemd/system/openclaw.service
[Unit]
Description=OpenClaw Gateway
After=network.target

[Service]
Type=simple
User=openclaw
Environment=OPENCLAW_GATEWAY_TOKEN=your-token-here
ExecStart=/usr/local/bin/openclaw gateway
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target
bash
sudo systemctl daemon-reload
sudo systemctl enable openclaw
sudo systemctl start openclaw

第 8 步:安全加固

bash
# 启用严格沙箱
openclaw config set security.sandbox.mode "strict"

# 限制认证失败次数
openclaw config set gateway.auth.rateLimitAttempts 3
openclaw config set gateway.auth.rateLimitWindow 300

# 限制最大会话数
openclaw config set gateway.maxSessions 20

第 9 步:验证部署

bash
# 健康检查
curl https://gateway.example.com/health

# 运行诊断
openclaw doctor

# 从客户端连接
openclaw connect --host gateway.example.com --port 443 --tls

完整检查清单

  • [ ] DNS A 记录指向服务器 IP
  • [ ] OpenClaw 已安装并配置
  • [ ] Gateway Token 已设置并安全保存
  • [ ] Caddy 已安装并运行
  • [ ] SSL 证书有效
  • [ ] 防火墙规则已配置
  • [ ] Gateway 以 systemd 服务运行
  • [ ] 健康检查通过
  • [ ] 远程客户端可正常连接

故障排查

问题排查步骤
DNS 未解析nslookup gateway.example.com
证书错误sudo caddy validate
连接超时检查防火墙 sudo ufw status
502 Bad Gateway确认 Gateway 正在运行 openclaw status
认证失败检查 Token 环境变量

相关文档

基于MIT协议开源 | 内容翻译自 官方文档,同步更新