【AI 业务流架构师】02-OpenClaw国产云端部署实战:从零安装到内外网穿透

【AI 业务流架构师】02-OpenClaw国产云端部署实战:从零安装到内外网穿透 OpenClaw 国产云端部署实战从零安装到内外网穿透引言上一篇文章聊了 Agentic AI 的范式转移和 OpenClaw 的三层架构最后在本地跑通了第一个 Agent。但本地运行有一个致命问题笔记本一合盖就休眠Agent 也跟着变成朝九晚五。要让数字员工真正 7×24 不间断工作就必须把它搬上云服务器。这是一份从零开始的实战指南怎么选服务器、怎么部署、怎么让 Agent 永不下线以及最关键的——怎么在不暴露任何公网端口的前提下安全地访问它。先纠正一个认知Local-First 不等于跑在笔记本上很多人听到 Local-First第一反应是把 Agent 跑在自己的电脑上。其实 Local-First 是一种主权架构而不是物理位置只要数据存储在你掌控的硬件上就算这台机器是你租来的云服务器它也属于你自己的基础设施。Local-First 真正的对立面不是云服务器而是闭源的 SaaS Agent 平台——后者的数据躺在别人的服务器集群里你说了不算。想清楚这一点要不要上云就不再是选择题。笔记本部署其实存在三个天花板合盖即休眠心跳引擎中断Agent 变成朝九晚五家用网络 NAT 层级深IM 平台的回调根本进不来家庭 IP 动态变化消息渠道的地址无法固定。而云服务器恰好把这些问题一次性解决7×24 不间断运行、心跳永不休眠、固定网络出口、离大模型 API 节点更近推理延迟更低。服务器怎么选四个参数别多花一分钱选服务器只需要盯住四个参数参数建议理由CPU2 核足够瓶颈在大模型 API不在本地算力内存4GB 是安全线见下方拆解磁盘40GB SSD 起SSD 的 IOPS 直接影响记忆读写带宽5M 固定带宽直接决定 IM 渠道的响应体验内存是最关键的一项。跑一套 OpenClaw 到底要多少粗略拆一下账Ubuntu 系统本身约 300MBDocker Engine 约 200MBOpenClaw 的 Node.js 进程约 300–500MBSQLite-vec 向量库约 100–200MB系统缓冲再占约 500MB——合计约 1.5–2GB。所以 2GB 内存需要开 swap 才能跑、不适合生产4GB 是推荐的最低安全线如果还想顺带跑本地小模型比如 Ollama 加 Qwen2.5-3B那就直接上 8GB。另外注意使用云端 LLM API 无需 GPU省下的预算可以花在更强的推理模型上。三大国产厂商的入门套餐对比如下厂商规格带宽 / 磁盘年价特点火山引擎2C4G ECS5M 固定 / 40GB SSD约 99 元性价比最高不限制月流量阿里云2C4G u1 ECS5M / 80GB ESSD约 199 元生态最成熟、文档最全腾讯云2C4G 轻量服务器5M(500GB) / 60GB SSD约 188 元界面简洁注意流量超额计费这笔账值不值假设 Agent 替代的是初级运营实习生每天 2 小时的人工月薪约 4000 元一年人力成本约 1.8 万元而云服务器加 API 年成本仅数百到两千元投入产出比约 600% 以上日均不到一块钱。十分钟级部署流程推荐使用一键部署脚本setup-openclaw.sh它把流程打包成六步下单后核心安装约十分钟完整端到端含穿透配置约半小时购买并初始化云服务器自动更新系统安装 Node.js 与 OpenClawnpm 全局安装Node 低于 v24 会自动升级配置 API Key 并启动 Gateway安装 Tailscale配置 Tailscale Serve 与 Dashboard 访问这一步需要手动开启 Tailscale SSH 并关闭公网 SSH可选加固。购买要点地域选离 API 节点近的规格 2C4G镜像 Ubuntu 24.04 LTS带宽 5M 固定安全组只保留 22/SSH 端口。下单后上传脚本chmod x setup-openclaw.sh sudo ./setup-openclaw.sh即可。不借助脚本手动流程也很简单装 Node.js v24 → npm 全局装 OpenClaw → 写环境变量 → 建 systemd 服务 → 启动。Docker 部署要点Docker 方式适合服务器部署内存要求 2GB 起几个要点端口映射务必收紧写成127.0.0.1:18789:18789让 18789 只绑到 loopback而不是 0.0.0.0——这是安全的第一道物理闸门容器策略restart: unless-stopped保证重启后自动拉起日志做好日志 rotation避免磁盘被日志灌满国内 IM 生态社区有预装飞书/钉钉/企微/QQ 全套插件的 Docker 整合镜像一条docker compose up -d就能起一个支持多 Agent 路由、可随意切换 AI 后端的环境适合要同时对接多个国内 IM 的场景。配置文件与模型接入OpenClaw 的关键配置集中在/opt/openclaw.env这个环境变量文件里。API Key 由 systemd 通过 EnvFile 注入而不是写死在 service 文件或命令行里——敏感信息不会暴露在进程列表里。文件权限记得chmod 600。模型接入采用 OpenAI 兼容格式脚本内置了 6 个选项序号提供商说明1DeepSeek国内性价比之选2豆包火山引擎 ark 服务3通义千问阿里系4Kimi月之暗面5OpenAI海外6自定义 BaseURL任意 OpenAI 兼容接口想换模型改一行配置即可——这正是 Local-First 架构零供应商锁定的体现。systemd service 文件里三个关键配置决定 Agent 是否永不掉线EnvironmentFile/opt/openclaw.env密钥与配置隔离ExecStartopenclaw gateway --port 18789默认绑定 127.0.0.1只允许本机访问是安全的第一道防线RestartalwaysRestartSec5无论进程因什么原因退出崩溃、OOM、意外终止5 秒后自动拉起配合systemctl enable实现开机自启。日常运维命令速查systemctl enable/start/stop/restart/status openclaw、journalctl -u openclaw -f实时日志、openclaw doctor健康检查、openclaw update升级版本。安全穿透为什么应该是零公网 IP部署到这里很多教程会叫你直接把 18789 端口暴露到公网。但 2026 年初的一场安全事件给出了惨痛教训一度有约 13.5 万个 OpenClaw 实例暴露在公网上波及 80 多个国家其中约六成没有配置任何认证泄露的内容包括明文 API Key、Bot Token、OAuth 凭据和私人聊天记录。攻击链条其实只有五步按旧教程默认绑定 0.0.0.0 且无认证 → 安全组放通端口 → Shodan/Censys 这类扫描引擎 24/7 全球扫描 → 被发现 → 窃取凭据、盗刷额度。事发后即便大规模清理仍有数万实例存活。这件事的结论不是配置没做好而是架构上就不该暴露端口。传统思路是在攻击面上层层设防防火墙、WAF、认证零信任思路是压根不暴露——没有端口可打扫描引擎根本看不见你从根源上消灭整类漏洞。市面上常见的穿透工具不少自建 frp、Cloudflare Tunnel 等各有适用场景而本课程方案选择的是Tailscale一个基于 WireGuard 的零配置组网工具。所有设备自动组成加密的私有网络tailnet不需要公网 IP也不用配置端口转发免费层支持 100 台设备、3 个用户MagicDNS 自动给每台设备分配设备名.tailnet.ts.net域名。Tailscale 的两个核心能力要分清能力性质用途Tailscale Serve私有访问仅 tailnet 内部可达你和团队成员访问 Agent DashboardTailscale Funnel公网可达仅 443/8443/10000 端口经中继服务器代理让 IM 平台能回调 Webhook且真实 IP 永不泄露Serve 模式下每个请求还会携带 Tailscale-User-Login 身份头天然带身份识别适合仅团队可见的访问控制。安全基线部署完成不等于安全完成装好只是开始。对照下面这份基线逐项打勾才算真正把安全做对了。网络层云厂商安全组关闭所有入站端口连 22 都可以关改走 Tailscale SSHOpenClaw 绑定 127.0.0.1ss -tlnp | grep 18789应显示 127.0.0.1 而不是 0.0.0.0Docker 端口映射写成127.0.0.1:18789:18789。认证层gateway.auth.mode设为 token用openclaw doctor生成强令牌allowInsecureAuth设为 falsegateway.controlUi.allowedOrigins必须把 Tailscale 域名写进去否则浏览器访问会报 origin not allowed设备配对首次访问 Dashboard 会要求配对服务器上执行openclaw devices listopenclaw devices approve ID批准后重连。运维层systemd 托管并 enableDocker 用restart: unless-stopped日志 rotation 已配置。高危漏洞防范CVE-2026-25253 的教训是即便默认绑定 localhost攻击者仍可能诱导你访问恶意网页用 JS 静默连向本机 WebSocket 窃取认证令牌。“本地绑定不等于绝对安全”要勤更新版本外部访问一律走带认证的隧道。域名与 HTTPSTailscale 的 MagicDNS 已经帮你解决了域名问题每台设备都有设备名.tailnet.ts.net的 HTTPS 域名。开启 Serve 后用tailscale cert 域名预取 HTTPS 证书可以避免首次访问超时。然后执行openclaw dashboard --no-open把输出地址里的 127.0.0.1 替换成 Tailscale 域名就得到了一条只有 tailnet 内设备能访问、全程 HTTPS 加密的安全链路。常见坑端口占用ss -tlnp | grep 18789定位冲突进程处理掉再启动。systemd 启动失败journalctl -u openclaw --no-pager -n 30看最近的错误日志。Dashboard 报 origin not allowedallowedOrigins没配好把 Tailscale 域名加进去并重启 Gateway。Tailscale 连不上检查本机代理工具如 Clash需要给ts.net域名和100.64.0.0/10网段加直连规则别让代理拦截了隧道流量。总被扫描到检查安全组是不是放开了不该放的端口——回顾五步沦陷链入站端口一律不留。小结从选服务器、跑通一键部署到 systemd 守护、Tailscale 零公网 IP 穿透再到逐项对照安全基线你现在拥有的是一台7×24 不掉线、公网不可见、带强认证、全程加密的私有 Agent 服务器——总成本可能不到一百块数据主权完全在自己手里。下一步就是把这个数字员工接进微信、飞书这些日常 IM让它真正开始干活。