• 夫荣妻贵网

    中新网3月11日电 题:习近平强调,解决“要不来、买不来、讨

    手把手教你安全“养虾”:OpenClaw极简部署指南

    作者 | Jean

    OpenClaw火爆全网,“养龙虾”成为流行语。“龙虾”能自己上网、写报告、操作文档,像个不用睡觉的24小时的个人助理。

    但“龙虾”的部署并不简单,90%的小白用户会被复杂的部署拦住。而且这只“龙虾”脾气不小,大模型自带的“幻觉”毛病,加上它手里握着的高权限,搞不好就会把服务器变成黑客的“虾塘”。连工信部都拉响了警报:配置不当,就是灾难级漏洞。

    听起来很吓人?别慌。

    作为一位文科生的家长,我刚给女儿在云服务器上安全地“养”了一只龙虾。这篇教程,就是我整理出来的“养虾笔记”——不用懂Linux内核,不用背网络安全术语,全程跟着点就行。

    我们会用最土的办法(建个普通用户、扔进沙箱跑)、最稳的配置(HTTPS加密 + 密码令牌),把这只“小龙虾”伺候得服服帖帖,既能24小时干活,又把风险锁得死死的。

    如果你也想给家人、给自己配一个这样听话的AI助理,又怕翻车,这篇小龙虾安全部署指南,就是为你准备的。

    OpenClaw目前支持的国内即时通讯软件只有飞书,微信、钉钉等还不支持。因此OpenClaw中文社区就应运而生了,然后发布了OpenClaw中文社区版,目前支持飞书,微信、钉钉等即将上线。

    以下就介绍一下在云服务器上的OpenClaw的安全部署。

    01

    安装OpenClaw中文社区版

    我的云服务器装的是Ubuntu24, 云服务器上跑的绝大部分都是Linux,通过终端远程管理就可以,安全、高效、省心,所以OpenClaw火爆也会成为云服务器产业的一次机会。关键是,Linux用户管理非常周密,本篇会用普通用户openclaw来运行OpenClaw,让它运行在沙箱中,用root部署太危险了。如果是Windows用户,比如家庭电脑或笔记本电脑等,可以在Windows上装个WSL2,然后在Windws上跑起Ubuntu24,也在Linux上部署。这样比直接用Windows管理员身份运行OpenClaw要安全很多。

    1、安装Node.js 22

    OpenClaw是用Node.js开发的TypeScript(JavaScript)应用,要求Node.js 22+的版本,一般Ubuntu 24上带的Node.js,比如Anaconda建立的Python虚拟环境中,是Node.js 20,需要升级一下。比如下面我的Conda base环境中,就是Node.js 20,安装在/usr/lib64/anaconda3/bin目录下。

    (base) root@VM-12-2-ubuntu:~# which node

    /usr/lib64/anaconda3/bin/node

    (base) root@VM-12-2-ubuntu:~# node -v

    v20.17.0

    用root的身份安装Node.js 22,如果有激活Conda虚拟环境要先退出,如果有为服务器配置VPN代理也要先屏蔽VPN的设置。

    # conda deactivate

    # export http_proxy=

    # export https_proxy=

    如果都没有,就直接安装。

    # curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -

    # apt-get install -y nodejs

    装好检查一下,安装在/usr/bin目录下,注意Conda虚拟环境没有激活。

    root@VM-12-2-ubuntu:~# which node

    /usr/bin/node

    root@VM-12-2-ubuntu:~# node -v

    v22.22.0

    如果有需要,安装之前可以为Node.js设置国内的镜像,这样安装会快很多,比如设置为淘宝的镜像:

    root@VM-12-2-ubuntu:~# npm config set registry

    https://registry.npm.taobao.org

    root@VM-12-2-ubuntu:~# npm config get registry

    https://registry.npm.taobao.org

    2、安装OpenClaw中文社区版

    用root的身份安装。OpenClaw中文社区版与OpenClaw自动同步,应用的名字是openclaw-cn,多了“-cn”后缀,目前是0.1.7版,对应的应该是OpenClaw 2026.2.x或2026.3.x版,不过不一定是最新的版本,因为我发觉有些配置的选项它还不认识。

    # npm install -g openclaw-cn@latest

    验证安装:

    root@VM-12-2-ubuntu:~# which openclaw-cn

    /usr/bin/openclaw-cn

    root@VM-12-2-ubuntu:~# openclaw-cn --version

    0.1.7

    02

    配置OpenClaw网关服务

    1、创建普通用户openclaw

    这个用户将用于运行OpenClaw,以便把它限制在沙箱中,尽量减少大模型幻觉和网络入侵带来的风险,这是Linux系统固有的优点。

    # adduser openclaw

    这个命令会创建用户并提示输入并设置口令,创建home目录,设定同名用户组,指定登录后用bash。

    2、配置OpenClaw网关服务

    OpenClaw后端所有的功能都要通过网关服务来执行,它的原理图如下:

    图1 OpenClaw原理架构图

    如果按项目主页的指引,用root或其它system类型用户的身份运行下面的安装向导命令,就会在当前用户的~/.config/systemd/user/ 目录下创建openclaw-gateway.service系统服务配置文件,把网关配置为用户级的系统守护进程,但如果是root用户权限过大就太危险了。

    先用root的身份运行一次上面的安装向导命令,具体操作可以参阅后面的第三节,它会生成root的用户级系统服务/root/.config/systemd/user/openclaw-gateway.service,把它拷贝成 /etc/systemd/system/openclaw-gateway.service,然后停止root用户的OpenClaw网关,取消激活以免端口冲突。

    # openclaw-cn onboard --install-daemon

    # cp/root/.config/systemd/user/openclaw-gateway.service /etc/systemd/system/openclaw-gateway.service

    # systemctl --user stop openclaw-gateway

    # systemctl --user disable openclaw-gateway

    # systemctl --user daemon-reload

    再为普通用户openclaw配置网关服务。它没有运行用户级系统进程的权限,所以我们用root的身份把OpenClaw网关服务配置为系统级的服务,然后以用户openclaw的身份运行服务,工作目录为其HOME目录。编辑服务配置文件:

    (base) root@VM-12-2-ubuntu:~# cd /etc/systemd/system

    (base) root@VM-12-2-ubuntu:/etc/systemd/system# vi openclaw-gateway.service

    改好后内容要点如下:

    1)以用户openclaw的身份运行。

    2)工作目录为其HOME目录。

    3)用/usr/bin/node运行,这是前面安装的Node.js 22,服务端口是默认的18789。

    4)配置文件由环境变量

    OPENCLAW_CONFIG_PATH=/home/openclaw/.openclaw/openclaw.json指定,在用户openclaw的目录下。这样设定是因为这个配置文件是OpenClaw前端和后端(网关)共用的,以后可以通过Control UI修改,然后重启网关即可生效。

    5)这里设置的OPENCLAW_GATEWAY_TOKEN是用root初始化时设置的,会被openclaw.json中指定的token覆盖,也可以不设置。留下来只是看看它原来的样子。

    6)严格限制openclaw网关的权限。

    NoNewPrivileges=true

    PrivateTmp=true

    ProtectSystem=strict

    # ProtectHome=true

    ReadWritePaths=/home/openclaw

    不能设置ProtectHome,否则服务不能chdir到HOME目录,启动失败。要开放HOME目录/home/openclaw的读写权限,否则网关不能正常工作。

    完整的内容如下:

    [Unit]

    Description=Openclaw Gateway (v0.1.7)

    After=network-online.target

    Wants=network-online.target

    [Service]

    Type=simple

    User=openclaw

    Group=openclaw

    WorkingDirectory=/home/openclaw

    ExecStart="/usr/bin/node""/usr/lib/node_modules/openclaw-cn/dist/entry.js" gateway --port 18789

    Restart=always

    RestartSec=5

    KillMode=process

    Environment=OPENCLAW_CONFIG_PATH=/home/openclaw/.openclaw/openclaw.json

    Environment=HOME=/home/openclaw

    Environment="PATH=/usr/local/bin:/usr/bin:/bin"

    Environment=OPENCLAW_GATEWAY_PORT=18789

    # 注:这个token是用root安装网关时创建的,会被openclaw.json里指定的token覆盖,已失效。

    # Environment=OPENCLAW_GATEWAY_TOKEN=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

    Environment="OPENCLAW_SYSTEMD_UNIT=openclaw-gateway.serviceEnvironment=OPENCLAW_SERVICE_MARKER=openclaw

    Environment=OPENCLAW_SERVICE_KIND=gateway

    Environment=OPENCLAW_SERVICE_VERSION=0.1.7

    NoNewPrivileges=true

    PrivateTmp=true

    ProtectSystem=strict

    # ProtectHome=true

    ReadWritePaths=/home/openclaw

    [Install]

    WantedBy=multi-user.target

    激活并启动网关服务:

    # systemctl daemon-reload

    # systemctl enable openclaw-gateway

    # systemctl start openclaw-gateway

    可以另开一个终端窗口实时查看网关服务的启动日志,看看启动中有什么错误:

    journalctl -u openclaw-gateway.service -f

    这是正常启动的跟踪日志:

    Mar 06 10:56:20 VM-12-2-ubuntu systemd[1]: openclaw-gateway.service: Deactivated successfully.

    Mar 06 10:56:20 VM-12-2-ubuntu systemd[1]: Stopped openclaw-gateway.service - Openclaw Gateway (v0.1.7).

    Mar 06 10:56:20 VM-12-2-ubuntu systemd[1]: openclaw-gateway.service: Consumed 2min 44.117s CPU time, 1.3G memory peak, 0B memory swap peak.

    Mar 06 10:56:37 VM-12-2-ubuntu systemd[1]: Started openclaw-gateway.service - Openclaw Gateway (v0.1.7).

    然后可以查看服务器是否正常启动,侦听18789端口:

    (base) root@VM-12-2-ubuntu:/etc/systemd/system# ss -lntp | grep 18789

    LISTEN 0 511 0.0.0.0:18789 0.0.0.0:* users:(("clawdbot-gatewa",pid=2561966,fd=23))

    正常运行时,在所有的IP(0.0.0.0,这个后面再讲,默认是127.0.0.1,loopback地址)上监听18789端口。

    (base) root@VM-12-2-ubuntu:/etc/systemd/system# systemctl status openclaw-gateway

    ● openclaw-gateway.service - Openclaw Gateway (v0.1.7)

    Loaded: loaded (/etc/systemd/system/openclaw-gateway.service; enabled; preset: enabled)

    Active: active (running) since Fri 2026-03-06 10:56:37 CST; 14min ago

    Main PID: 2561959 (openclaw-cn)

    Tasks: 22 (limit: 9126)

    Memory: 395.9M (peak: 1.3G)

    CPU: 49.425s

    CGroup: /system.slice/openclaw-gateway.service

    ├─2561959 openclaw-cn

    └─2561966 clawdbot-gateway

    Mar 06 10:57:10 VM-12-2-ubuntu node[2561966]: ' Mode of event/callback subscription(订阅方式)\n' +

    Mar 06 10:57:10 VM-12-2-ubuntu node[2561966]: ' -> \n' +

    Mar 06 10:57:10 VM-12-2-ubuntu node[2561966]: ' Receive events/callbacks through persistent connection(使用 长连接 接收事件/回调)'

    Mar 06 10:57:10 VM-12-2-ubuntu node[2561966]: ]

    Mar 06 10:57:10 VM-12-2-ubuntu node[2561966]: 2026-03-06T02:57:10.082Z [feishu] feishu[default]: WebSocket client started

    Mar 06 10:57:10 VM-12-2-ubuntu node[2561966]: 2026-03-06T02:57:10.321Z [info]: [ '[ws]', 'ws client ready' ]

    Mar 06 10:57:11 VM-12-2-ubuntu node[2561966]: 2026-03-06T02:57:11.662Z [bonjour] gateway name conflict resolved; newName="VM-12-2-ubuntu (Clawdbot) (2)"

    Mar 06 10:57:11 VM-12-2-ubuntu node[2561966]: 2026-03-06T02:57:11.664Z [bonjour] gateway hostname conflict resolved; newHostname="VM-12-2-ubuntu-(2)"

    Mar 06 10:57:19 VM-12-2-ubuntu node[2561966]: 2026-03-06T02:57:19.570Z [ws] Proxy headers detected from untrusted address. Connection will not be treated as local>

    Mar 06 10:57:19 VM-12-2-ubuntu node[2561966]: 2026-03-06T02:57:19.597Z [ws] webchat connected conn=6b22b40d-c498-40b6-b52f-52344e1fd830 remote=127.0.0.1 client=cl>

    lines 1-21/21 (END)

    03

    运行安装向导

    这一步完成OpenClaw命令行工具(CLI)及WEB Control UI、接入渠道、LLM等的配置,以生成所有需要的配置文件,如飞书的配置等。

    以登录的方式切换到新创建的openclaw用户。

    # su -l openclaw

    运行下面的安装向导命令,注意,不带--install-daemon选项,网关服务已经配置好了。

    openclaw-cn onboard

    它会创建所有需要的配置文件以及workspace目录,所有openclaw的文件都存放在.openclaw目录下,包括配置文件openclaw.json。

    openclaw@VM-12-2-ubuntu:~/.openclaw$ ls

    agents cron exec-approvals.json feishu-dedup.db-shm identity openclaw.json update-check.json

    credentials devices feishu-dedup.db feishu-dedup.db-wal memory openclaw.json.bak workspace

    接受安全警告,选择快速开始模式,会引导你配置各种需要的部件,包括飞书接入。配置的过程如下,注意里面讲的systemd不可访问,跳过配置,是因为我们把网关服务配置成了系统级的服务,不是OpenClaw原来的用户级系统服务,脚本检测不到,但不影响使用。

    penclaw@VM-12-2-ubuntu:~$ openclaw-cn onboard

    OpenClaw-CN 0.1.7 (415f7b6) — 将"I'll reply later"变为"my bot replied instantly"。

    ░████░█░░░░░█████░█░░░█░███░░████░░████░░▀█▀

    █░░░░░█░░░░░█░░░█░█░█░█░█░░█░█░░░█░█░░░█░░█░

    █░░░░░█░░░░░█████░█░█░█░█░░█░████░░█░░░█░░█░

    █░░░░░█░░░░░█░░░█░█░█░█░█░░█░█░░█░░█░░░█░░█░

    ░████░█████░█░░░█░░█░█░░███░░████░░░███░░░█░

    每日新鲜 ��

    ┌ OpenClaw安装引导

    ◇ 安全 ─────────────────────────────────────────────────────────────╮

    │ 安全警告 — 请阅读。 │

    │ │

    │ OpenClaw是一个业余项目,仍处于测试阶段。可能会有粗糙之处。 │

    │ 如果启用了工具,此机器人可以读取文件并执行操作。 │

    │ 不良提示可能会诱使其执行不安全的操作。 │

    │ │

    │ 如果您不熟悉基本的安全和访问控制,请不要运行OpenClaw。 │

    │ 在启用工具或将系统暴露给互联网之前,请寻求有经验的人士帮助。 │

    │ │

    │ 推荐的基础设置: │

    │ - 配对/白名单 + @提及门控。 │

    │ - 沙箱 + 最低权限工具。 │

    │ - 将机密信息保留在智能体可访问的文件系统之外。 │

    │ - 对于使用工具或不受信任收件箱的机器人,请使用最强大的可用模型。 │

    │ │

    │ 定期运行: │

    │ openclaw-cn security audit --deep │

    │ openclaw-cn security audit --fix │

    │ │

    │ 必读:https://clawd.org.cn/gateway/security.html │

    ├────────────────────────────────────────────────────────────────────╯

    ◇ 我理解这很强大且本质上存在风险。继续吗?

    │ Yes

    ◇ 安装引导模式

    │ 快速开始

    ◇ 检测到现有配置 ───────────────────╮

    │ workspace: ~/.openclaw/workspace │

    │ model: zai/glm-5 │

    │ gateway.mode: local │

    │ gateway.port: 18789 │

    │ gateway.bind: lan │

    ├────────────────────────────────────╯

    ◇ 配置处理

    │ 使用现有值

    ◇ 快速开始 ───────────────╮

    │ 保留您当前的网关设置: │

    │ 网关端口:18789 │

    │ 网关绑定:局域网 │

    │ 网关认证:令牌(默认) │

    │ Tailscale暴露:关闭 │

    │ 直接到聊天频道。 │

    ├──────────────────────────╯

    ◇ 模型/认证提供商

    │ Z.AI (GLM-5)

    ◇ Z.AI (GLM-5) 认证方法

    │ Z.AI (GLM-5) API key

    ◇ Enter Z.AI API key

    │ xxxxxxxxxx

    ◇ Model configured ───────────────╮

    │ Default model set to zai/glm-5 │

    ├──────────────────────────────────╯

    ◇ 默认模型

    │ 保持当前(zai/glm-5)

    ◇ 通道状态 ─────────────────────╮

    │ Telegram: 未配置 │

    │ WhatsApp: 未配置 │

    │ Discord: 未配置 │

    │ Google Chat: 未配置 │

    │ Feishu: 已配置(插件已禁用) │

    │ Slack: 未配置 │

    │ Signal: 未配置 │

    │ iMessage: 未配置 │

    │ Feishu: 安装插件以启用 │

    ├────────────────────────────────╯

    ◇ 通道工作原理 ─────────────────────────────────────────────────────────────────╮

    │ DM安全:默认为配对;未知的私信会获得配对码。 │

    │ 批准命令:openclaw-cn pairing approve <channel> <code> │

    │ 公开私信需要dmPolicy="open" + allowFrom=["*"]. │

    │ 多用户私信:设置session.dmScope="per-channel-peer" 来隔离会话。 │

    │ 文档:start/pairing │

    │ │

    │ Telegram: 最简单的入门方式——使用 @BotFather注册一个机器人并开始使用。 │

    │ WhatsApp: 使用您自己的号码工作;建议使用独立手机 + eSIM。 │

    │ Discord: 目前支持非常好。 │

    │ Google Chat: 带有HTTP webhook的Google Workspace聊天应用。 │

    │ Feishu: 飞书/Lark机器人集成 (WebSocket)。 │

    │ Slack: 已支持(Socket模式)。 │

    │ Signal: signal-cli链接设备;更多设置(David Reagans说:"加入Discord吧。")。 │

    │ iMessage: 这仍然是一个正在进行的工作。 │

    ├────────────────────────────────────────────────────────────────────────────────╯

    ◇ 选择通道(快速开始)

    │ Feishu (Lark Open Platform)

    ◇ 安装Feishu插件?

    │ 使用本地插件路径

    03:52:31 [plugins] feishu_doc: Registered feishu_doc, feishu_app_scopes

    03:52:31 [plugins] feishu_drive: Registered feishu_drive tool

    03:52:31 [plugins] feishu_wiki: Registered feishu_wiki tool

    03:52:31 [plugins] feishu_im: Registered feishu_im_list_chats, feishu_im_get_chat, feishu_im_list_members, feishu_im_send_message, feishu_im_reply_message, feishu_im_get_messages, feishu_im_create_chat

    03:52:31 [plugins] feishu_task: Registered feishu_task tool (8 actions)

    03:52:31 [plugins] feishu_calendar: Registered feishu_calendar tool (8 actions)

    03:52:31 [plugins] feishu_sheets: Registered feishu_sheets tool (7 actions)

    [feishu] plugins registered: 9 modules loaded

    ◇ Feishu已经配置。您想要进行什么操作?

    │ 修改设置

    ◇ 选择平台 / Select platform

    │ 飞书(国内版)

    ◇ 已选通道 ─────────────────────────────────────────────────╮

    │ Feishu — 飞书/Lark enterprise messaging. 文档: │

    │ feishu │

    ├────────────────────────────────────────────────────────────╯

    Config overwrite: /home/openclaw/.openclaw/openclaw.json (sha256 6bfc049a9d315f90c88b131fdf82d072a495e4cff91199d4f3a5307c72ca776c -> 867f76512e58effcf20bb0121f1cb0a37d3740eb86843682196e375410185776, backup=/home/openclaw/.openclaw/openclaw.json.bak)

    Updated ~/.openclaw/openclaw.json

    工作区正常:~/.openclaw/workspace

    会话正常:~/.openclaw/agents/main/sessions

    ◇ 技能状态 ──────────╮

    │ 符合条件:51 │

    │ 缺少需求:0 │

    │ 被允许列表阻止:0 │

    ├─────────────────────╯

    ◇ 现在配置技能?(推荐)

    │ No

    ◇ 钩子 ───────────────────────────────────────────╮

    │ 钩子让您能够在代理命令发出时自动执行操作。 │

    │ 例如:在您发出/new时将会话上下文保存到内存中。 │

    │ │

    │ 了解更多:https://docs.clawd.bot/hooks │

    ├──────────────────────────────────────────────────╯

    ◇ 启用钩子?

    │ 暂时跳过

    Config overwrite: /home/openclaw/.openclaw/openclaw.json (sha256 867f76512e58effcf20bb0121f1cb0a37d3740eb86843682196e375410185776 -> f248f7b04215fdd25bd87889613f690a8dd2198a5fcb447e99af04596fe6b1b5, backup=/home/openclaw/.openclaw/openclaw.json.bak)

    ◇ Systemd ───────────────────────────────────────────────────────────────────────────────╮

    │ Systemd user services are unavailable. Skipping lingering checks and service install. │

    ├─────────────────────────────────────────────────────────────────────────────────────────╯

    Feishu: ok

    Agents: main (default)

    Heartbeat interval: 30m (main)

    Session store (main): /home/openclaw/.openclaw/agents/main/sessions/sessions.json (1 entries)

    - agent:main:main (1m ago)

    ◇ 可选应用 ───────────────────╮

    │ 为额外功能添加节点: │

    │ - macOS应用(系统+通知) │

    │ - iOS应用(相机/画布) │

    │ - Android应用(相机/画布) │

    ├──────────────────────────────╯

    ◇ 控制界面 ─────────────────────────────────────────────────────────────────────────────────╮

    │ 网页界面:http://127.0.0.1:18789/ │

    │ 网页界面(带令牌):http://127.0.0.1:18789/?token=xxxxxxxx │

    │ xxxxxxxx │

    │ 网关WS:ws://127.0.0.1:18789 │

    │ 网关:可访问 │

    │ 文档:https://docs.clawd.bot/web/control-ui │

    ├────────────────────────────────────────────────────────────────────────────────────────────╯

    ◇ 启动TUI(最佳选项!) ────────────────────╮

    │ 这是定义性的操作,使您的智能体成为您的。 │

    │ 请慢慢来。 │

    │ 您告诉它的越多,体验就会越好。 │

    │ 我们将发送:"醒来吧,我的朋友!" │

    ├────────────────────────────────────────────╯

    ◇ 令牌 ──────────────────────────────────────────────────────────────────────────────╮

    │ 网关令牌:网关+控制界面的共享认证。 │

    │ 存储在:~/.openclaw/openclaw.json(gateway.auth.token)或OPENCLAW_GATEWAY_TOKEN。 │

    │ 网页界面在此浏览器的localStorage中存储副本(clawdbot.control.settings.v1)。 │

    │ 随时获取带令牌的链接:openclaw-cn dashboard --no-open │

    ├─────────────────────────────────────────────────────────────────────────────────────╯

    ◇ 您想如何孵化您的机器人?

    │ 在TUI中孵化(推荐)

    ◇ 工作区备份 ────────────────────────────────────────────╮

    │ 备份您的智能体工作区。 │

    │ 文档:https://docs.clawd.bot/concepts/agent-workspace │

    ├─────────────────────────────────────────────────────────╯

    ◇ 安全 ──────────────────────────────────────────────────────────────────────────────╮

    │ 在您的计算机上运行智能体是有风险的——加强您的设置:https://docs.clawd.bot/security │

    ├─────────────────────────────────────────────────────────────────────────────────────╯

    ◇ 网络搜索(可选) ───────────────────────────────────────────────╮

    │ 如果希望您的智能体能够搜索网络,则需要API密钥。 │

    │ │

    │ Clawdbot使用Brave Search作为`web_search`工具。没有Brave Search │

    │ API密钥,网络搜索将无法工作。 │

    │ │

    │ 交互式设置: │

    │ - 运行:openclaw-cn configure --section web │

    │ - 启用web_search并粘贴您的Brave Search API密钥 │

    │ │

    │ 替代方案:在网关环境中设置BRAVE_API_KEY(无需更改配置)。 │

    │ 文档:https://docs.clawd.bot/tools/web │

    ├──────────────────────────────────────────────────────────────────╯

    ◇ 接下来 ─────────────────────────────────────────────────────╮

    │ 接下来:https://clawd.bot/showcase("人们正在构建什么")。 │

    ├──────────────────────────────────────────────────────────────╯

    └ 安装引导完成。使用上面的带令牌仪表盘链接控制Clawdbot。

    openclaw-cn tui - ws://127.0.0.1:18789 - agent main - session main session agent:main:main

    这是配置好的openclaw.json文件,不能直接用这个文件替换,因为安装向导还会生成上述目录中的其它配置文件。配好后则可以直接改这个配置文件。要点如下:

    1、模型配了用智谱AI最新的旗舰模型GLM-5,api_key在配置的过程中粘贴进去,会保存进上面列出的文件中(具体在哪还没有研究)。

    2、工作区在/home/openclaw/.openclaw/workspace目录下。

    3、渠道配置了飞书,这个后面第四节再具体讲。这里配置飞书渠道和飞书开放平台配置飞书应用要交叉进行。这里要填入飞书开放平台创建的飞书应用的App ID与App Secret,然后OpenClaw会创建一个到飞书开放平台的长连接,然后飞书应用配置中才可以继续配置第6步:配置事件订阅。

    4、gateway一节,告诉网关服务怎样启动,前面配置了网关服务使用这里的定义。这里的配置跟后面WEB Control UI的访问方式有关。

    1)mode为local,只接受本地(即本机IP)访问,后面通过配置Nginx反向代理来用域名从公网上访问它。

    2)bind为lan,绑定到服务器所有的IP地址,以便可以接收来自网络的访问。它默认的是localhost,或127.0.0.1,不会接受来自网络的访问。改成0.0.0.0也可以。

    3)allowInsecureAuth为true,允许不安全的来访,来自网络上浏览器不安全的来访先要能够通过网络层的过滤,才能走到后面身份绑定和权限管理的步骤。

    4)网关验证的方式是token,每次配置时会生成不同的随机长token,这比口令要强。配好后,会通过https://jeanye.cn/?token=xxxxxxxx这样的方式去访问WEB Control UI,通过HTTPS保护明文传输的token,通过长token保护WEB Control UI不会被非授权的人访问。

    5)tailscale设置为off,我们通过HTTPS+token的方式来访问WEB Control UI,安全性有保证,不走tailscale的方式(因为配置可能繁琐,我也不熟悉)。

    5、plugins一节,飞书的插件是OpenClaw中文社区版自带的,安装时已装好,不要再从网上(remote)下载,否则会报一大串警告信息,说检测到重复的插件ID。在配置飞书时选择使用本地的插件即可。

    {

    "meta": {

    "lastTouchedVersion":"0.1.7",

    "lastTouchedAt":"2026-03-05T08:58:00.259Z"

    },

    "wizard": {

    "lastRunAt":"2026-03-05T08:58:00.246Z",

    "lastRunVersion":"0.1.7",

    "lastRunCommand":"configure",

    "lastRunMode":"local"

    },

    "auth": {

    "profiles": {

    "zai:default": {

    "provider":"zai",

    "mode":"api_key"

    }

    },

    "order": {

    "zai": [

    "zai:default"

    ]

    }

    },

    "agents": {

    "defaults": {

    "model": {

    "primary":"zai/glm-5"

    },

    "models": {

    "zai/glm-5": {

    "alias":"GLM-5"

    }

    },

    "workspace":"/home/openclaw/.openclaw/workspace",

    "compaction": {

    "mode":"safeguard"

    },

    "maxConcurrent": 4,

    "subagents": {

    "maxConcurrent": 8

    }

    }

    },

    "messages": {

    "ackReactionScope":"group-mentions"

    },

    "commands": {

    "native":"auto",

    "nativeSkills":"auto"

    },

    "channels": {

    "feishu": {

    "accounts": {

    "default": {

    "appId":"cli_xxxxxx",

    "appSecret":"xxxxxxxx",

    "domain":"feishu",

    "enabled": true

    }

    }

    }

    },

    "gateway": {

    "port": 18789,

    "mode":"local",

    "bind":"lan",

    "controlUi": {

    "allowInsecureAuth": true

    },

    "auth": {

    "mode":"token",

    "token":"xxxxxxxx"

    },

    "tailscale": {

    "mode":"off",

    "resetOnExit": false

    }

    },

    "plugins": {

    "load": {

    "paths": [

    "/usr/lib/node_modules/openclaw-cn/extensions/feishu"

    ]

    },

    "entries": {

    "feishu": {

    "enabled": true

    }

    }

    }

    }

    04

    安装配置飞书应用

    具体可以参阅这篇网文《Openclaw 最细部署指南》第6章《进阶配置篇》中飞书的配置,篇幅较长,此处不重复赘述。其中关键的一点是,配置飞书渠道和配置飞书应用要交叉进行,因为配置飞书应用时,要等渠道配置这边创建了一个到飞书开放平台的长连接,才可以继续配置事件订阅。而配置渠道时,又要用配置应用时创建的App ID与App Secret。

    Step 5:启用机器人能力

    第三部分(插在这里):先在OpenClaw中配置飞书渠道并启动网关

    方式一:通过配置向导(推荐)

    启动网关,确认运行状态

    保存配置后,启动(或重启)OpenClaw网关:

    Step 6(回到飞书):配置事件订阅

    在左侧菜单点击"事件订阅"。

    接收事件的方式,选"使用长连接接收事件"(WebSocket模式)。

    选好之后,在下方"添加事件"里搜索并添加:

    可以把im:message的权限都选上,至少需要im.message.receive_v1权限。

    应用配置好后,要发布,每次应用配置有变化都要发布应用,然后才会起作用。

    飞书应用的权限可以按需要授予,你可以询问小龙虾某项工作需要飞书应用的什么权限,再授权,方便起见,我把云文档和多维表格,还有用户信息的权限都给了。因为执行的结果输出到云文档,在飞书App里直接就可以打开看和下载。

    05

    测试飞书APP

    打开飞书(App或网页版),在应用搜索栏里搜索你创建的飞书应用名称。

    图2 飞书App中搜索飞书应用

    点击该应用,发送一个打招呼的消息,OpenClaw会返回一条要求绑定(批准)设备的回复,否则不能继续访问:

    图3 从飞书应用向OpenClaw发送指令

    在openclaw用户下执行上面的命令完成设备配对,每个飞书账户只需要执行一次:

    $ openclaw-cn pairing approve feishu APQ4GMTH

    配对完成后,现在再在飞书APP中让OpenClaw执行一个测试的命令:

    图4 OpenClaw返回工作的结果

    可以看到,OpenClaw以用户openclaw的身份运行,工作目录是/home/openclaw/.openclaw/workspace,这正是安全的沙箱运行方式,即使大模型出错,或被入侵,爆炸影响的范围会仅限于其HOME目录下的文件,风险要小很多。

    现在可以愉快地和小龙虾玩耍啦。

    06

    配置从公网访问WEB Control UI

    对于IT专业人士来说,通过文本终端界面远程管理OpenClaw是很方便,但对应于非IT专业人士,还是WEB Control UI图形界面方便易用很多,安装配置好了,直接交付使用即可。

    1、配置Nginx反向代理

    因为OpenClaw网关配置为local模式,它只能从本地访问,所以配置Nginx反向代理来从公网访问WEB Control UI。

    vi /etc/nginx/nginx.conf

    配置要点:

    1)map配置以支持web-socket连接,OpenClaw Contorl UI是个Vite框架的JavaScript应用,它通过WebSocket协议直接访问服务器(ws://127.0.0.1:18789)。

    2)转发的URI定位到根目录,因为OpenClaw Contorl UI里对WebSocket的访问URL是程序中写死的/(ws://127.0.0.1:18789),不支持反向代理到子目录。反向代理占用根目录的问题,也可以通过子域名来解决,就是为OpenClaw申请一个专用的子域名(要付费),然后在Let's Encrypt中签个带子域名的数字证书。子域名和主域名都映射到同一个IP,由Nginx去分流。这里简单起见直接占用根目录了,因为在我的服务器上根目录原来就是个欢迎页,也没有别的用途。

    3) 除了根URI外,其它反向代理的设置不受影响,比如这里VPN服务器mihomo Dashboard的反向代理。

    4)反向代理中最关键的一句是:

    proxy_set_header Origin http://127.0.0.1:18789;

    浏览器的访问请求到达OpenClaw时,都带有Origin header,因为网关配置为local模式,OpenClaw不会接收其它IP来源的访问,直接就返回403 Forbidden错误,在WEB Control UI页面上就会显示与后端网关的连接是(见Issue#19248):

    disconnected (1006): no reason

    这个设置让Nginx替换所有浏览器请求的Origin hearder为loopback地址,OpenClaw就会认为是本地访问,予以通过。

    反向代理的具体配置如下,配在https server下,用Lets's Encrypt免费的数字证书。

    ......

    http {

    ......

    # Support proxying of web-socket connections

    map $http_upgrade $connection_upgrade {

    default upgrade;

    '' close;

    }

    ......

    # Server on http:443 http2

    server {

    listen 443 ssl;

    listen [::]:443 ssl;

    server_name jeanye.cn;

    # Let's Encrypt's cert & key

    ssl_certificate /etc/letsencrypt/live/jeanye.cn/fullchain.pem;

    ssl_certificate_key /etc/letsencrypt/live/jeanye.cn/privkey.pem;

    # / 根目录让给了OpenClaw,因为它的WebSocket要连接WSS://jeanye.cn根目录

    # location / {

    # root /srv/nginx;

    # index index.html;

    # autoindex on;

    # }

    ......

    location / {

    proxy_pass http://127.0.0.1:18789;

    proxy_http_version 1.1;

    proxy_set_header Upgrade $http_upgrade;

    proxy_set_header Connection $connection_upgrade;

    proxy_set_header Host $host;

    proxy_set_header X-Real-IP $remote_addr;

    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

    proxy_set_header Origin http://127.0.0.1:18789;

    proxy_read_timeout 86400;

    proxy_send_timeout 86400;

    proxy_buffering off;

    }

    # Reverse proxy for mihomo dashboard

    rewrite ^/mihomo$ $scheme://$http_host/mihomo/ permanent;

    location /mihomo/ {

    rewrite ^/mihomo/(.*)$ /$1 break;

    proxy_pass http://localhost:9090/;

    proxy_redirect / $scheme://$http_host/mihomo/;

    proxy_http_version 1.1;

    proxy_set_header Upgrade $http_upgrade;

    proxy_set_header Connection $connection_upgrade;

    proxy_read_timeout 20d;

    proxy_buffering off;

    }

    }

    }

    2、从浏览器访问OpenClaw Control UI

    输入地址https://jeanye.cn/?token=xxxxxxxx访问WEB Control UI,这个token就是前面配置网关时指定的访问token,比口令要长,有足够的复杂性可以保护Control UI免受非授权的访问。因为token是作为参数明文传输的,所以要在https加密连接下使用,有关用Let's Encrypt免费数字证书配置Nginx,请参阅我的知乎文章《在HTTS中使用Let's Encrypt的数字证书》。

    图5 OpenClaw的Dashboard

    Control UI中可以直接和OpenClaw对话,指挥它干活,这样对于电脑上输入数据很方便,可以直接从磁盘选择、打开、拷贝然后粘贴进去。

    图6 在OpenClaw Dashboard中直接发送执行任务

    07

    交付

    把小龙虾交付给用户,需要为飞书应用添加新成员。在飞书App中点击右上角的“+”按钮,选择“添加企业成员”,再选择“输入手机号”,输入手机号和新成员姓名,点击“添加成员”,会发送一条消息到对方的飞书App,对方确认即可。

    图7 添加飞书App新成员

    然后是在飞书应用中添加新成员。点击“成员管理”,“添加协作人员”,输入成员名字选中添加,并设定新成员的角色。

    图8 飞书应用添加新成员

    我在飞书应用中创建发布版本时设置了可用范围是所有员工,新成员在搜索应用时才可以看到这个飞书应用,新成员只能看到企业中Ta能看到的飞书应用,也可以设定飞书应用只有部分成员可见,然后选择可见成员的名单。

    新成员搜到飞书应用后,在飞书App中向小龙虾发出指令,小龙虾会像前面一样要求应用所有者进行设备绑定(批准)。

    图9 新成员也需要进行设备绑定

    然后就可以正常使用了,这是女儿要求小龙虾生成了一个Excel报表,发回她的飞书App中浏览、下载,这样完整的任务流程就执行完成了。

    图10 小龙虾创建了执行结果并写入到云文档

    图11 小龙虾生成云文档的分享链接并返回到飞书App

    全流程跑通,女儿现在拥有了一个24小时在线的小龙虾打工人,慢慢饲养调教即可。

    Done。

    08

    总结

    这个安全饲养小龙虾的方案,可以总结为几个要点。

    1、 不用root运行Gateway

    •用普通用户openclaw启动,运行在 沙箱环境

    •避免了OpenClaw或Node.js被利用时对系统的全局权限

    •防止潜在漏洞被用来提权或篡改系统文件

    ✅ 这比官方文档里直接用root 启动安全得多

    2、公网访问通过HTTPS + token

    •HTTPS:保证浏览器 ↔ Nginx ↔ Gateway 通信加密,防止中间人抓包token

    •token:避免任何没有授权的人直接访问Gateway

    •Origin header:模拟 local-origin,使 Gateway 在 local 模式下允许 WebSocket 连接

    ✅ 完全解决403/1006/1008断连问题,又保证安全

    3、Gateway 运行在 local 模式 + Nginx 反向代理

    •local 模式限制浏览器访问必须模拟 local-origin

    •反向代理确保公网访问不会直接暴露18789

    •长超时 + proxy_buffering off 保证 WebSocket 长连接稳定

    ✅ 结合 HTTPS + token,是当前最稳定的生产方案

    这个部署方案在安全性和稳定性上是当前最优实践:普通用户运行、沙箱隔离、HTTPS + token、Nginx 反向代理、local 模式 + Origin 伪装。

    访客,请您发表评论:

    网站分类
    热门文章
    友情链接