ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

OpenClaw 汉化版部署手册:Docker 容器化 + SSH 隧道打通多端访问

OpenClaw 汉化版部署手册:Docker 容器化 + SSH 隧道打通多端访问 1. 为什么要把 OpenClaw 汉化版塞进 Docker 再配 SSH 隧道OpenClaw 汉化版是一款基于 Claude Code 生态的第三方开源中文发行版把原本英文界面的 AI 编程助手做了完整的中文化适配菜单、提示、报错信息都换成了中文对刚接触命令行 AI 助手的同学友好很多。它能做的事情和原版一致读写项目文件、执行终端命令、跑测试、做代码审查区别在于你不用再对着满屏英文猜每个选项是什么意思。但直接在本机跑 OpenClaw 汉化版会遇到几个绕不开的麻烦。第一是环境依赖Node 版本、系统库、权限配置稍有不对就启动失败换台电脑又要重来一遍。第二是设备绑定装在哪台机器上就只能在哪台机器用台式机配好了想在笔记本上接着写得重新装。第三是远程访问如果你把它放在一台常开的服务器上默认只监听本地回环地址外面根本连不进来。我试过的组合方案是用 Docker 把 OpenClaw 汉化版的运行环境整个封装成容器镜像里该有的依赖一次装好之后不管换什么机器只要有 Docker 就能一键拉起来。再用 SSH 隧道把远程服务器的端口映射到本地浏览器访问127.0.0.1就等于访问服务器上的服务全程走加密通道不用把端口直接暴露到公网。这套方案适合三类人手里有一台闲置服务器或云主机、想让 AI 助手 7×24 小时常驻的开发者需要在公司电脑和家里电脑之间共享同一套配置和会话记录的人以及不想折腾系统依赖、只想复制几条命令就跑起来的小白。下面从零开始把 Docker 编排、SSH 隧道、多端验证三步全部走一遍。2. 部署前的环境准备与 TaoToken 接入配置2.1 服务器与软件的最低要求先确认你的机器够不够用。OpenClaw 汉化版本身不重但容器加上模型请求转发配置别压得太低。配置项最低要求推荐配置操作系统Ubuntu 20.04 LTSUbuntu 22.04 LTSCPU1 核2 核及以上内存1 GB2 GB 及以上硬盘10 GB 可用20 GB 及以上网络可访问外网具备公网 IP远程访问场景必要软件Docker、SSHDocker、SSH、端口 18789 开放如果只在局域网内用普通内网服务器就够要从外部公网访问就需要一台带公网 IP 的云服务器并按第 3 节配置 SSH 隧道。2.2 安装 Docker 并配置镜像加速Ubuntu 上装 Docker 的完整命令如下逐条执行即可sudo apt-get update sudo apt-get upgrade -y sudo apt-get install -y ca-certificates curl gnupg lsb-release curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add - sudo add-apt-repository deb [archamd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable sudo apt-get install -y docker-ce docker-ce-cli containerd.io sudo docker version最后一条能打印出 Client 和 Server 两段版本信息说明 Docker 装好了。接着配置镜像加速编辑/etc/docker/daemon.json{ registry-mirrors: [ https://docker.mirrors.ustc.edu.cn, https://hub-mirror.c.163.com ], log-driver: json-file, log-opts: { max-size: 50m, max-file: 3 } }保存后重启 Docker 让配置生效sudo systemctl daemon-reload sudo systemctl restart docker sudo systemctl enable docker2.3 接入 TaoToken 获取模型能力OpenClaw 汉化版负责界面和交互真正干活的模型能力需要接一个兼容接口。TaoToken 提供统一的 API 入口把 Base URL 指向它就能调用多种模型。先去控制台创建一个 API Key控制台入口https://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentconsoleAPI Key 管理https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentapi-keys创建好 Key 之后OpenClaw 汉化版的模型配置需要三件套Base URL、API Key、Model ID。Base URL 填https://taotoken.net/apiAPI Key 填你刚生成的那串Model ID 按你实际要用的模型名填。这三项在后面的容器环境变量里会用到先记下来。如果你打算长期跑编码任务或 Agent 工作流可以看下 Coding Plan 的额度方案https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentcoding-plan3. Docker 容器化编排与 SSH 隧道配置3.1 用 docker-compose 编排 OpenClaw 汉化版手动敲一长串docker run容易漏参数用 compose 文件管理更清晰。新建目录并创建docker-compose.ymlmkdir -p ~/openclaw cd ~/openclaw写入以下内容version: 3.8 services: openclaw: image: ghcr.io/1186258278/openclaw-zh:nightly container_name: openclaw restart: unless-stopped ports: - 18789:18789 volumes: - openclaw-data:/root/.openclaw environment: - OPENCLAW_GATEWAY_MODElocal - OPENCLAW_GATEWAY_BINDlan - OPENCLAW_AUTH_TOKEN换成你自己的访问令牌 - ANTHROPIC_BASE_URLhttps://taotoken.net/api - ANTHROPIC_API_KEY换成你的TaoToken密钥 - ANTHROPIC_MODEL换成你的ModelID command: openclaw gateway run volumes: openclaw-data:几个关键点说明一下。ports把容器内的 18789 映射到宿主机同端口这是 OpenClaw 网关的默认端口。volumes用命名卷持久化/root/.openclaw容器删了重建配置和会话记录还在。OPENCLAW_GATEWAY_BINDlan让服务监听所有网卡否则只绑回环地址SSH 隧道转发过来也连不上。ANTHROPIC_BASE_URL指向 TaoToken 的 API 地址配合 Key 和 Model ID 完成模型接入。3.2 初始化数据卷并首次启动第一次启动前先跑一次初始化生成默认配置docker volume create openclaw-data docker run --rm -v openclaw-data:/root/.openclaw \ ghcr.io/1186258278/openclaw-zh:nightly openclaw setup docker run --rm -v openclaw-data:/root/.openclaw \ ghcr.io/1186258278/openclaw-zh:nightly openclaw config set gateway.mode local docker run --rm -v openclaw-data:/root/.openclaw \ ghcr.io/1186258278/openclaw-zh:nightly openclaw config set gateway.bind lan docker run --rm -v openclaw-data:/root/.openclaw \ ghcr.io/1186258278/openclaw-zh:nightly openclaw config set gateway.auth.token 你的密码然后正式拉起容器docker compose up -d docker compose logs -f openclaw日志里出现网关监听 18789 的提示就说明容器起来了。按CtrlC退出日志跟踪容器仍在后台运行。3.3 配置 SSH 隧道打通远程访问如果 OpenClaw 跑在远程服务器上本地浏览器没法直接访问服务器的 18789 端口。用 SSH 本地端口转发把服务器的端口映射到本地ssh -N -L 18789:127.0.0.1:18789 useryour-server-ip参数含义-N表示只做端口转发不执行远程命令-L指定本地转发规则格式是本地端口:目标地址:目标端口。user换成你登录服务器的用户名your-server-ip换成服务器 IP 或域名。回车后输入服务器密码光标停住没有输出是正常的说明隧道已经建立这个终端窗口别关。想让它更稳一点可以加上保活参数ssh -N -L 18789:127.0.0.1:18789 \ -o ServerAliveInterval30 \ -o ServerAliveCountMax3 \ useryour-server-ip这样每 30 秒发一次心跳网络抖动时不容易断。如果你本地是 Windows用 PowerShell 或 Windows Terminal 执行同样的命令即可OpenSSH 客户端现在系统自带。4. 三步验证容器启动、隧道连通、多端页面加载4.1 第一步确认容器状态正常在服务器上执行docker ps --filter nameopenclaw能看到openclaw容器状态是Up端口映射显示0.0.0.0:18789-18789/tcp就对了。如果状态是Restarting或Exited用docker compose logs openclaw看报错。4.2 第二步确认隧道连通在本地机器上另开一个终端窗口测试本地端口是否被隧道接管curl -I http://127.0.0.1:18789返回 HTTP 响应头哪怕是 401 或 302就说明隧道通了。如果提示Connection refused检查 SSH 隧道那个窗口是不是还开着或者服务器上容器是否真的在监听。4.3 第三步多端页面加载与令牌获取浏览器打开http://127.0.0.1:18789应该能看到 OpenClaw 汉化版的中文界面。首次进入需要初始化docker exec -it openclaw openclaw onboard按提示走完引导。然后获取网关令牌docker exec -it openclaw openclaw dashboard --no-open这条命令会输出一个带 token 的 URL形如http://127.0.0.1:18789/#tokenxxxx。把整段复制到浏览器打开。如果提示设备被拦截查看待批准列表docker exec -it openclaw openclaw devices list找到被拦截的 requestId执行批准docker exec -it openclaw openclaw devices approve requestId把requestId换成实际显示的 ID。批准后刷新页面就能正常进入。多端访问时每台设备都通过各自的 SSH 隧道连到同一台服务器会话和配置是共享的手机上用 Termius 之类的 SSH 客户端建隧道也能访问。5. 部署常见报错排查401、隧道失败与设备拦截5.1 报错 401 Unauthorized浏览器或 API 请求返回 401通常是令牌不对或没带上。检查两处一是OPENCLAW_AUTH_TOKEN环境变量和你在 URL 里填的 token 是否一致二是 TaoToken 的 API Key 是否有效。如果模型请求报 401重点看ANTHROPIC_API_KEY有没有填错以及ANTHROPIC_BASE_URL是不是https://taotoken.net/api。三件套Base URL、Key、Model ID缺一个都会认证失败。5.2 local proxy failed 或连接被拒日志里出现local proxy failed或connection refused多半是gateway.bind没设成lan。默认只绑127.0.0.1SSH 隧道转发到服务器时服务器上的服务只认回环地址外部转发进来的连接就被拒了。重新执行docker run --rm -v openclaw-data:/root/.openclaw \ ghcr.io/1186258278/openclaw-zh:nightly openclaw config set gateway.bind lan docker compose restart5.3 reading choices 相关解析错误如果日志里出现reading choices之类的字段解析失败一般是模型返回格式和客户端预期不匹配。先确认 Model ID 填的是 TaoToken 支持的模型名别填了不存在的名字。其次检查 Base URL 末尾有没有多余的斜杠https://taotoken.net/api后面不要再加/v1之类路径拼错会导致返回体结构异常。5.4 OAuth 与设备授权问题OpenClaw 汉化版首次连接会走设备授权流程如果卡在 OAuth 或一直提示未授权用openclaw devices list看有没有 pending 的请求有就 approve。如果列表是空的但页面还是进不去检查浏览器 URL 里的 token 参数有没有被截断完整格式是#tokenxxxx少一个字符都不行。5.5 容器反复重启docker ps看到状态在Restarting循环先看日志定位。常见原因是端口 18789 被占用用sudo lsof -i:18789查一下有别的进程就换端口或停掉它。另一个原因是数据卷权限问题删掉卷重建docker compose down docker volume rm openclaw-data docker volume create openclaw-data然后重新走一遍 3.2 的初始化步骤。6. 把 OpenClaw 汉化版用起来模型对话与长期编码部署跑通只是第一步真正用起来还得把模型能力接顺。验证模型是否正常工作可以直接在模型对话页面发一条测试消息https://taotoken.net/chat?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentchat如果对话能正常返回中文回答说明 Base URL、Key、Model ID 三件套配置无误。接入文档里有各客户端的详细配置示例遇到参数不确定的时候可以对照https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentdoc对于需要长期跑编码任务、Agent 自动化的场景普通按量调用可能不够划算Coding Plan 提供了更适合持续使用的额度方案配置方式和普通 API 一致只是计费模型不同https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentcoding-plan最后提醒一个实操细节SSH 隧道窗口关掉后远程访问就断了如果你希望开机自动建立隧道可以把ssh -N -L命令写进 systemd service 或本地启动脚本。服务器上的容器因为设了restart: unless-stopped重启后会自动拉起不用手动干预。整套链路跑顺之后你在任何一台能建 SSH 隧道的设备上打开浏览器就能接着上次的会话继续写代码。
返回列表