1. 百元 NAS 跑 24h 微信 AI 助理,卡在哪一步
OpenClaw 是一个轻量级 AI 助理部署工具,能在 ARM 架构的 NAS、N1 盒子这类低配设备上跑起来,接入微信、飞书等社交平台,背后可以挂 MiniMax、Qwen、硅基流动等多家大模型。它解决的核心问题是:把原本需要一台常开服务器才能干的活,压缩到一台功耗几瓦、内存占用不到 200M 的百元设备上。适合谁?手里有吃灰 N1 盒子、飞牛 NAS 的数码玩家,以及想低成本搞一个 24 小时在线微信自动回复机器人的开发者。
但真正动手你会发现,部署本身只是第一关。OpenClaw 装好、微信扫码绑定成功之后,日常运维才是高频痛点:换模型要改配置、更新版本要重启服务、机器人不回复要看日志。这些操作都得 SSH 进 NAS 敲命令。如果 NAS 和你在同一个局域网,那没问题;可你人在公司、在出差路上,局域网就成了堵墙,你连不上家里那台盒子,只能干着急。
cpolar 内网穿透就是拆这堵墙的工具。它把局域网内的 SSH 端口映射到一个公网 TCP 地址,你在任何有网络的地方,一条 ssh 命令就能连回 NAS,改配置、重启服务、看日志,和坐在家里操作没区别。这套组合的完整链路是:N1 盒子刷飞牛 fnOS → 装 Node.js 环境 → 部署 OpenClaw → 接入微信 → cpolar 穿透 SSH → 公网远程运维。
下面按可复制的步骤走一遍。我试过在 N1 盒子上从零装到微信收发消息跑通,中间踩了几个坑,都会在对应位置标出来。你跟着做,重点是把每一步的验证结果对上,别跳步。
2. TaoToken 前置:给 OpenClaw 配一个稳定的大模型入口
OpenClaw 本身不带模型,它是个调度层,需要你给它一个兼容 OpenAI 接口的 Base URL 和 API Key。你可以直接接硅基流动、Qwen 这些平台,也可以走 TaoToken 这类聚合入口,把多家模型统一到一个地址下管理。对 NAS 这种低配设备来说,好处是换模型不用改代码,只改配置里的 Model ID 就行。
TaoToken 的定位是 AI 模型 API 聚合与分发,兼容 OpenAI 的 chat/completions 协议。OpenClaw 在 onboard 阶段会让你填 API Base URL、API Key、Model ID 三件套,TaoToken 正好对上这个格式。官网地址是 https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= ,API 入口是 https://taotoken.net/api ,注意 API 地址不带 UTM 参数,配置时直接填这个。
你需要先去控制台拿 Key。打开 https://taotoken.net/console?utm_source=taotoken_aicg_blog_end&utm_content=console&utm_campaign=rewrite ,登录后进 API Keys 页面新建一个密钥,复制出来备用。这个 Key 就是后面填进 OpenClaw 配置里的凭证。如果你还没决定用哪个模型,可以先到模型对话页面 https://taotoken.net/chat?utm_source=taotoken_aicg_blog_end&utm_content=model_chat&utm_campaign=rewrite 试几个,看看哪个响应速度和效果符合你的微信助理场景。
这里有个关键点:OpenClaw 的 onboard 流程里,Provider 选择界面会列出 MiniMax、Qwen、硅基流动等预设项,也有 Custom Provider 自定义项。走 TaoToken 就选 Custom Provider,然后 Base URL 填 https://taotoken.net/api ,API Key 填你刚复制的,Endpoint 类型选 OpenAI-compatible,Model ID 填你在 TaoToken 上选定的模型标识。这样 OpenClaw 就把所有请求转发到 TaoToken,由它路由到具体模型。
为什么建议 NAS 场景走聚合入口?因为 N1 盒子性能有限,你不太可能在上面跑本地模型,必须依赖云端 API。而云端 API 各家有各家的额度、限流、计费方式,聚合入口能让你在一个地方管理 Key 和用量,换模型时只改一个 Model ID 字符串,不用重新走一遍 onboard。对 24 小时在线的微信助理来说,稳定性比什么都重要,聚合层能在某个模型限流时快速切到另一个。
如果你打算长期跑 coding 或 Agent 类任务,可以看下 Coding Plan https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_content=coding_plan&utm_campaign=rewrite ,它针对高频调用场景做了额度优化。微信助理这种 24 小时待命的用法,调用量不会小,提前规划好额度能避免半夜机器人突然不回消息。
3. 可复制配置:NAS 端 OpenClaw + cpolar 隧道
这一节是核心操作区,每一步都给完整命令和验证方式。假设你的飞牛 NAS 用户名是 n1,局域网 IP 是 192.168.50.228,你按自己的实际情况替换。
3.1 开启 SSH 并连接 NAS
登录飞牛 NAS 的 Web 后台,进【系统设置】→【SSH】,启用 SSH 服务。然后在电脑上按 Win+X 打开终端(管理员),执行:
ssh n1@192.168.50.228第一次连接会提示确认指纹,输入 yes,然后输入 NAS 登录密码。连上后你应该看到命令提示符变成 n1@fnOS 之类的样子。
3.2 安装 Node.js 环境
OpenClaw 依赖 Node.js,N1 的 ARM 架构需要走 nvm 安装。先创建家目录并修正权限:
sudo mkdir -p /home/$(whoami) && sudo chown -R $(whoami):$(id -gn) /home/$(whoami) && sudo chmod 755 /home/$(whoami) && ll /home然后进入用户目录,创建基础配置文件:
cd ~ && touch .bashrc && ls -a安装 nvm:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash刷新配置让 nvm 生效:
source ~/.bashrc export NVM_DIR="$HOME/.nvm" [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"安装 Node.js LTS 版:
nvm install --lts验证:
node -v能输出版本号就说明 Node.js 装好了。这一步在 N1 上大概需要 1-2 分钟,ARM 设备编译慢,耐心等。
3.3 安装 Git
git --version如果没有版本输出,执行:
sudo apt install git -y3.4 安装 OpenClaw
先看可用版本:
npm view openclaw versions | tail -n 10N1 这种低配 ARM 设备不建议追最新版,推荐装 2026.3.13 这个稳定版:
npm i -g openclaw@2026.3.13安装过程在 N1 上实测约 6 分钟,ARM 编译慢是正常的,别以为卡死了。
3.5 配置 OpenClaw 并接入模型
执行新手引导:
openclaw onboard --install-daemon按提示操作:同意条款选 YES → 选 QuickStart → 到 AI 大脑供应商页面选 Custom Provider → API Base URL 填 https://taotoken.net/api → 粘贴你的 TaoToken API Key → Endpoint 类型选 OpenAI-compatible → Model ID 填你选定的模型标识 → 验证通过后 Endpoint ID 直接回车 → 模型别名随意或留空 → channel 先跳过 → Search provider 跳过 → 技能配置选 No → Enable hooks 建议全选(包含命令历史和记忆功能)。
引导完成后会启动 Gateway 服务,输出访问地址和 token。
3.6 接入微信
在手机微信里打开 OpenClaw 插件页面,复制插件安装命令,回到 NAS 终端执行:
npx -y @tencent-weixin/openclaw-weixin-cli@latest install安装完成后终端会显示二维码,用手机微信扫码,绑定 openclaw-bot 机器人账号。提示连接成功后,在微信里发消息测试:
你好,你是谁,你当前运行在什么操作系统上,接入的是什么模型?能收到回复就说明链路通了。
3.7 安装 cpolar 并穿透 SSH
一键安装:
sudo curl https://get.cpolar.sh | sh查看服务状态:
sudo systemctl status cpolar看到 active (running) 即为正常。然后在浏览器访问 http://192.168.50.228:9200/ 进入 cpolar Web UI,用注册好的账号登录。进【隧道管理】→【隧道列表】,默认会有一个 ssh 隧道指向 22 端口。到【状态】→【在线隧道列表】查看公网地址,格式类似 tcp://1.tcp.nas.cpolar.cn:11225。
新开一个终端窗口测试远程连接:
ssh n1@1.tcp.nas.cpolar.cn -p 11225能连上就说明穿透成功。现在你在任何网络环境下都能 SSH 回 NAS。
3.8 固定 TCP 地址(可选但推荐)
默认地址 24 小时变一次,建议升级套餐后配置固定地址。进 https://dashboard.cpolar.com/reserved ,在【预留】页面填写地区和描述,保留一个 TCP 地址。然后回【隧道列表】编辑 ssh 隧道,端口类型改为【固定TCP端口】,填入保留的地址,更新。之后用固定地址连接:
ssh n1@6.tcp.cpolar.top -p 14729这样 SSH 命令不用每次改,复制粘贴就能连。
4. 验证请求:从微信发消息到 NAS 日志全链路
配置完成后,验证要分层做,别一上来就发微信消息,出问题你不知道是哪一层断的。
第一层,验证 OpenClaw 服务在跑。在 NAS 终端执行:
openclaw status应该看到 Gateway 运行中、模型连接正常的输出。如果显示未运行,用openclaw start启动。
第二层,验证模型 API 通。在 NAS 上直接 curl 你的 TaoToken 入口:
curl https://taotoken.net/api/v1/chat/completions \ -H "Authorization: Bearer 你的Key" \ -H "Content-Type: application/json" \ -d '{"model":"你的Model ID","messages":[{"role":"user","content":"ping"}]}'返回 JSON 里 choices 数组有内容,说明 Key 和模型都正常。这一步能排除掉大部分 401 和模型不存在的问题。
第三层,验证微信通道。在微信里发一条消息,然后回 NAS 看 OpenClaw 日志:
openclaw logs --follow你应该能看到收到消息、调用模型、返回回复的完整日志流。如果微信发了但日志没动静,说明微信插件没绑好,重新扫码。
第四层,验证 cpolar 穿透。从外网(比如手机开热点,电脑连热点)执行:
ssh n1@你的cpolar地址 -p 端口能连上并执行openclaw status,说明远程运维链路完整。
实测下来,这四层验证做完,整套系统就算真正跑通了。微信侧收发消息的完整链路是:微信消息 → openclaw-weixin 插件 → OpenClaw Gateway → TaoToken API → 模型返回 → Gateway → 插件 → 微信回复。任何一环断了,日志里都能定位到。
5. 本篇常见错排查:401、local proxy failed、reading choices、OAuth
这一节对照真实报错给排查路径。你在部署过程中大概率会碰到下面几个。
401 Unauthorized。最常见,出现在模型调用阶段。原因通常是 API Key 填错、Key 过期、或者 Base URL 和 Key 不匹配。排查:先确认 OpenClaw 配置里的 Base URL 是 https://taotoken.net/api ,然后去 TaoToken 控制台 https://taotoken.net/api-keys?utm_source=taotoken_aicg_blog_end&utm_content=api_keys&utm_campaign=rewrite 确认 Key 还在有效期内。如果 Key 没问题,用第 4 节的 curl 命令单独测一次,排除 OpenClaw 配置层的问题。
local proxy failed。这个报错通常出现在 OpenClaw 启动或模型请求时,意思是本地代理层连接失败。在 NAS 场景下,多半是网络出口问题或者 DNS 解析失败。排查:在 NAS 上执行curl -I https://taotoken.net/api看能不能通。如果不通,检查 NAS 的网络配置,确认能正常访问外网。另外检查 OpenClaw 配置里有没有误设 proxy 相关字段,有的话清掉。
reading choices 报错。典型信息是Cannot read properties of undefined (reading 'choices')。这说明 API 返回的 JSON 结构里没有 choices 字段,通常是返回了错误信息但代码没正确处理。根因一般是模型 ID 填错,或者 API 返回了非标准格式。排查:用 curl 直接请求,看返回的原始 JSON。如果返回的是{"error":...},那就是模型 ID 或 Key 的问题。确认 Model ID 和 TaoToken 上列出的完全一致,大小写敏感。
OAuth 相关报错。如果你在配置过程中选了需要 OAuth 的 Provider,或者微信插件绑定环节出现 OAuth 失败,检查两点:一是系统时间是否准确,OAuth 对时间偏差敏感,NAS 上执行date确认;二是回调地址是否可达,微信插件绑定需要手机和 NAS 在同一网络下完成首次握手。
微信扫码后无响应。插件安装成功、二维码也出来了,但扫码后机器人不回消息。排查顺序:先看openclaw logs --follow有没有收到消息事件;如果没有,说明插件没绑上,重新执行安装命令;如果有收到但没回复,看模型调用是否报错,回到 401 排查路径。
cpolar 隧道连不上。ssh命令超时或拒绝连接。检查 cpolar 服务状态sudo systemctl status cpolar,确认在线隧道列表里的地址和端口没变。如果用的是免费版,地址 24 小时会变,需要重新查。建议配固定 TCP 地址,一劳永逸。
CC Switch / Cline MCP / Codex auth.json 场景补充。如果你在 NAS 上同时还跑 Cline 或 Codex 这类工具,配置时同样要写全三件套:Base URL 填 https://taotoken.net/api ,Key 填 TaoToken 的 Key,Model ID 填对应模型标识。Codex 的 auth.json 里字段名是OPENAI_BASE_URL和OPENAI_API_KEY,别填错位置。Cline MCP 配置里注意 endpoint 路径要带 /v1。
6. 把百元盒子变成随身 AI 服务器
整套流程走下来,核心就三件事:NAS 端把 OpenClaw 跑起来并接入模型,微信端扫码绑定机器人,cpolar 把 SSH 映射到公网实现远程运维。N1 盒子功耗几瓦、内存占用不到 200M,24 小时开机成本几乎可以忽略,但换来的是一个随时在线、能自动回复、能识别图片的微信 AI 助理。
几个实用技巧收尾。第一,模型选择上,微信助理场景优先选响应快的,视觉识别能力按需,不必追最大参数。第二,cpolar 固定地址建议早配,省得每次远程都要查新地址。第三,NAS 密码一定要强,SSH 暴露公网后弱密码等于开门。第四,OpenClaw 日志用--follow模式挂着,出问题第一时间能看到。第五,换模型只改 Model ID,不用重走 onboard,这是走聚合入口的最大好处。
如果你还想在 NAS 上跑更多 Agent 类任务,可以看下 Coding Plan https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_content=coding_plan&utm_campaign=rewrite 的额度方案。接入文档在 https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_content=doc&utm_campaign=rewrite ,遇到配置格式问题可以对照查。Claude Code 用户如果想把 NAS 上的 OpenClaw 和本地开发流打通,参考 https://taotoken.net/claude-code?utm_source=taotoken_aicg_blog_end&utm_content=claude_code&utm_campaign=rewrite 的接入方式。
这台角落里的 N1 盒子,现在不挑网线、不挑地点,只要有网就能管。折腾的乐趣就在这。