安全!在云服务器上部署openclaw,实现全自动飞书 AI 助理
Openclaw的安全问题不容忽视,但我们还离不开这个好用的助手!
于是我研究了如何在云服务器上安装部署一个Openclaw,让它远离我们真实的设备,只在安全沙盒中运行,我选用的是阿里云ecs云服务器(现在新用户可以免费领取300元的额度)+VScode

我选用的是4核8GB,操作系统选的是Ubuntu 22.04,预装应用Docker。
接下来进入正题:
第一步:阿里云 ECS 预处理 (放行端口)
OpenClaw 启动后会提供一个 Web 控制台(Control UI),默认运行在 18789 端口。需要先去阿里云放行这个端口。
-
登录阿里云控制台,进入你的 ECS 实例详情。
-
点击左侧的 安全组 -> 配置规则。
-
添加一条入方向规则:协议选 TCP,端口填
18789,授权对象填0.0.0.0/0(或者为了安全,只填你当前电脑的公网 IP)。
第二步:在服务器上部署 OpenClaw
在VScode中使用SSH 登录到你的 Ubuntu 22.04 服务器,按照以下步骤拉取并启动:注意!所有命令行都是在VScode终端输入!
1. 克隆官方仓库
git clone https://github.com/openclaw/openclaw.git
cd openclaw
2. 运行官方初始化脚本OpenClaw 提供了一键脚本,会自动拉取镜像、处理目录权限并运行配置向导:
./docker-setup.sh
到这一步可能会报错,
ERROR: failed to build: failed to solve: process "/bin/sh -c curl -fsSL https://bun.sh/install | bash" did not complete successfully: exit code: 1
接下来按照以下步骤操作:
1. 编辑 Dockerfile在你的终端里(确保当前在 openclaw 目录下),输入以下命令打开文件:
nano Dockerfile
①替换 Bun 的安装方式(换国内源)在文件前半部分,找到这行:
Dockerfile文件中找到以下字段
RUN curl -fsSL https://bun.sh/install | bash
把它整行删掉(或加 # 注释),替换成
RUN npm config set registry https://registry.npmmirror.com \
&& npm install -g bun \
&& mkdir -p ~/.bun/bin \
&& ln -s $(which bun) ~/.bun/bin/bun \
&& echo'[install]\nregistry = "https://registry.npmmirror.com/"' > ~/.bunfig.toml
②修改 pnpm 安装参数(解除锁定 + 限制并发防止死机)在文件后半部分,找到包含 --frozen-lockfile 的那一段(注意它可能有多行,重点看最后面):
RUN --mount=type=cache,id=openclaw-pnpm-store,target=/root/.local/share/pnpm/store,sharing=locked \
NODE_OPTIONS=--max-old-space-size=2048 pnpm install --frozen-lockfile
把它替换成下面这样:
RUN --mount=type=cache,id=openclaw-pnpm-store,target=/root/.local/share/pnpm/store,sharing=locked \
NODE_OPTIONS=--max-old-space-size=2048 pnpm install --no-frozen-lockfile
到这一步还需要在上面②这行代码上面插入一个字段,强制 Git 走 HTTP/1.1 协议:
RUN git config --global url."https://github.com/".insteadOf ssh://git@github.com/ \
&& git config --global url."https://github.com/".insteadOf git+ssh://git@github.com/ \
&& git config --global http.version HTTP/1.1
插入后,那段代码看起来应该是这样的:
# (上面其他的代码...)
COPY --from=ext-deps /out/ ./extensions/
RUN git config --global url."https://github.com/".insteadOf ssh://git@github.com/ \
&& git config --global url."https://github.com/".insteadOf git+ssh://git@github.com/ \
&& git config --global http.version HTTP/1.1
RUN --mount=type=cache,id=openclaw-pnpm-store,target=/root/.local/share/pnpm/store,sharing=locked \
NODE_OPTIONS=--max-old-space-size=4096 pnpm install --no-frozen-lockfile
保存并重试
-
按
Ctrl + O保存,按Enter确认。 -
按
Ctrl + X退出。 -
再次运行安装脚本:
./docker-setup.sh这样就没什么问题了,运行安装结束就会出现openclaw的配置界面,按照自己的需求配置即可!
配置过程中可能会报错,容器在无限重启:
Error response from daemon: cannot join network namespace of container: Container bdc6d58310f018d7f7227e5f7965faec33f331xxxx1 is restarting, wait until the container is running
解决方法是
在终端(确保在 ~/openclaw 目录下)依次复制粘贴执行以下三条命令:
修改绑定地址为 lan (允许所有外部 IP 访问)
echo "OPENCLAW_GATEWAY_BIND=lan" >> .env
Bash 停止并移除处于无限重启状态的错误容器
docker compose down
-
Bash 重新在后台启动正确的容器 docker compose up -d - 使用以下代码确认docker容器是否在工作:
docker ps
1.如果 STATUS 这一列写着类似 Up 3 minutes,说明程序运行得非常完美,问题100%出在网络防火墙或者 Ubuntu 自身的 ufw 上。
2.如果写着 Restarting,说明我们刚才修改的 .env 文件没有被正确加载,容器还在无限重启。
但一般情况下是没有问题了。有问题检查以上哪步出错再修改一下即可!
如果通过,你会在VScode终端看到这个:
Current runtime bind: lan
Gateway token: ecd8b8ddb6d75xxxx
这个时候打开你电脑的浏览器,复制并访问下面这个专属链接(注意把 <你的阿里云ECS公网IP> 替换成你真实的 IP 地址),这就是你访问openclaw ui的网址:
http://<阿里云ECS公网IP>:18789/#token=ecd8b8ddb6d75xxxx
但接下来OpenClaw 的安全机制发出了警报,需要一个修复脚本,直接在VScode终端运行即可:
python3 -c '
import json, os
path = os.path.expanduser("~/.openclaw/openclaw.json")
with open(path, "r") as f:
data = json.load(f)
if "gateway" not in data:
data["gateway"] = {}
if "controlUi" not in data["gateway"]:
data["gateway"]["controlUi"] = {}
data["gateway"]["controlUi"]["dangerouslyAllowHostHeaderOriginFallback"] = True
with open(path, "w") as f:
json.dump(data, f, indent=2)
print("✅ 安全策略已成功放行!")
'
看到输出 ✅ 安全策略已成功放行! 后,直接执行重启命令:
docker restart openclaw-openclaw-gateway-1
但是!这个时候注意了,浏览器和本地网络限制可能还让你无法打开openclaw ui,这就需要一个简单操作了:
在你电脑自带的终端(CMD、PowerShell 或 Terminal)里粘贴并回车运行这行命令:
ssh -L 18789:localhost:18789 root@<你的阿里云公网IP>
(运行后,它会像平时一样要求你输入阿里云服务器的密码。登录成功后,你就把这个黑框框挂在后台,不要关掉它。)
这个时候再打开这个网址就会出现openclaw 的ui了!
http://<阿里云ECS公网IP>:18789/#token=ecd8b8ddb6d75xxxx

刚进来可能是无连接的,需要在上面这个网关访问的网管令牌这里再输入一次你的token:
Current runtime bind: lan
Gateway token: ecd8b8ddb6d75xxxx
点击连接就能连上!
但是还可能有问题:
pairing required
此设备需要网关主机的配对批准。
这个是安全机制在作用,防止你的 Token 泄漏,只需要按照以下方法:
第一步:查看待批准的设备列表
在终端输入以下命令(注意我们要通过 docker 去执行):
docker exec -it openclaw-openclaw-gateway-1 openclaw devices list
运行后,你会看到一行列表,里面会有一个处于 pending(待处理)状态的请求,并且前面有一串类似 req_123456... 或者几位数字的 ID (requestId)。请把这个 ID 复制下来。
第二步:批准你的电脑浏览器
拿到 ID 后,运行下面这条命令批准它(把 <requestId> 替换成你刚才复制的真实 ID,注意不要带尖括号):
docker exec -it openclaw-openclaw-gateway-1 openclaw devices approve <requestId>
只要终端提示 Approved 或者 Success,你再切回你的电脑浏览器看一眼——那个配对的拦截页面会自动消失
到这里基本完成了,只需要你去连接飞书之类的就可以使用了!
完结撒花!

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐


所有评论(0)