【教程】OpenClaw 周边怎么搭:CLI Proxy API + 模型接入 + Telegram + 反代(0 基础能上手)

这篇写给 0 基础同学:你已经把 OpenClaw 跑起来了(或准备跑),但还不知道“模型怎么接入、Telegram 怎么配、控制台怎么安全访问、CLI Proxy API 怎么搭”。我按从 0 到能用的顺序写一遍,照着做基本就能跑通。


🧾 你需要什么

  • 一台 Linux 服务器(Ubuntu/Debian 都可)
  • 建议配置:2H4G 起步
  • 一个 Telegram 账号(可选,但强烈建议)
  • (可选)域名 + Nginx/宝塔:你想从外网打开 Control UI 才需要

⚠️ 注意注意注意(安全 & 合规)

  • 管理面板不要裸奔公网。不管是 OpenClaw 还是 CLI Proxy API,都建议只监听 127.0.0.1,再用反代加认证。
  • 如果你的网络环境访问某些上游服务失败,请使用合规的网络/服务提供商。本文不提供绕过封锁、规避访问限制的落地步骤。

🚀 第一部分:先把 CLI Proxy API 搭起来(Docker 方式)

1)装 Docker

# Ubuntu/Debian
apt update -y
apt install -y ca-certificates curl gnupg

# 官方 Docker 源(以 Debian/Ubuntu 官方文档为准)
# 也可以直接装系统仓库的 docker.io(版本可能旧一点)

apt install -y docker.io
systemctl enable docker --now

docker version

2)准备目录 + 配置文件

这里我给一个最小可用的配置模板(注意:下面的密码/key 只是示意,你自己换成强密码)。

mkdir -p /root/cliproxy
mkdir -p /root/cliproxy/auth-dir

cat > /root/cliproxy/config.yaml << 'EOF'
port: 8317
management:
  password: "你的面板密码(强密码)"

# auth-dir 用来存 OAuth/授权文件
auth-dir: "/root/.cli-proxy-api"
api-keys:
  - kpi_你的API密钥

# 建议先开 debug,跑通后再关
debug: true
usage-statistics-enabled: true
EOF

我个人建议:

  • management.password:这是管理面板密码(不要用太简单)
  • api-keys:这是给 /v1 接口用的 key(给 OpenClaw 用)
  • auth-dir:一定要挂出来,不然容器重启授权丢了你会很崩溃

3)启动容器

如果你不需要公网暴露,建议只绑定到本机回环:

docker run -d 
  --name cliproxy 
  --restart always 
  -p 127.0.0.1:8317:8317 
  -v /root/cliproxy/config.yaml:/CLIProxyAPI/config.yaml 
  -v /root/cliproxy/auth-dir:/root/.cli-proxy-api 
  eceasy/cli-proxy-api:latest

# 看日志
docker logs -n 50 cliproxy --tail 50

验证 /v1/models:

curl -sS http://127.0.0.1:8317/v1/models 
  -H "Authorization: Bearer kpi_你的API密钥" | jq .

4)管理面板怎么访问(建议走反代)

面板通常在:

  • http://127.0.0.1:8317/management.html

如果你一定要远程打开面板,建议用 Nginx 反代 + BasicAuth + IP 白名单(而不是直接把 8317 暴露公网)。


🦞 第二部分:OpenClaw 怎么接入 CLI Proxy API(核心是 openclaw.json)

1)安装 OpenClaw

npm install -g openclaw@latest
openclaw --version

2)配置 models provider(cliproxy)

你需要把 OpenClaw 的 provider 指到 CLI Proxy API 的 /v1

{
  "models": {
    "mode": "merge",
    "providers": {
      "cliproxy": {
        "baseUrl": "http://127.0.0.1:8317/v1",
        "apiKey": "kpi_你的API密钥",
        "api": "openai-completions"
      }
    }
  },
  "agents": {
    "defaults": {
      "model": {
        "primary": "cliproxy/gpt-5.2",
        "fallbacks": ["cliproxy/gpt-5.3-codex"]
      },
      "timeoutSeconds": 1800
    }
  }
}

改完记得验证:

openclaw config validate

🤖 第三部分:Telegram 接入(最常用、最顺手)

1)创建 Bot

  • Telegram 搜索 @BotFather
  • /newbot 创建一个 bot
  • 拿到 bot token(类似:123:ABC...

2)写入 OpenClaw 配置

{
  "channels": {
    "telegram": {
      "enabled": true,
      "botToken": "你的BotToken",
      "dmPolicy": "pairing"
    }
  }
}

3)配对(pairing)

给你的 bot 发一句话,它会回一个配对码,然后在服务器上 approve:

openclaw pairing approve telegram <配对码>

小坑:如果你把 Telegram 群消息策略设成 allowlist,记得填 allowFrom/groupAllowFrom,不然会出现“群消息静默丢弃”的情况。


🌐 第四部分:Control UI 安全远程访问(我最推荐的做法)

如果你需要在浏览器远程打开 Control UI,我建议走:

  • Nginx BasicAuth(挡住外网)
  • OpenClaw 启用 trusted-proxy(解决 WebSocket 授权)

Nginx 关键片段(示意):

location / {
  auth_basic "OpenClaw";
  auth_basic_user_file /path/to/htpasswd;

  proxy_pass http://127.0.0.1:18789;

  proxy_http_version 1.1;
  proxy_set_header Host $host;
  proxy_set_header X-Forwarded-Proto $scheme;
  proxy_set_header X-Forwarded-Host $host;
  proxy_set_header x-forwarded-user $remote_user;

  proxy_set_header Upgrade $http_upgrade;
  proxy_set_header Connection "upgrade";
}

重点:X-Forwarded-Host / X-Forwarded-Proto 不要漏,不然会看到 1008 unauthorized。


🧯 最后:我建议你按这个顺序排障

  1. OpenClaw 能不能本机打开控制台:http://127.0.0.1:18789/
  2. CLI Proxy API 的 /v1/models 能不能 200(带 key)
  3. OpenClaw 是否能正常请求模型(看日志是否 timeout)
  4. 再做反代(Nginx)和 trusted-proxy

按这个顺序走,基本不会“一上来就一团乱”。

发表评论