2026 年 OpenClaw 阿里云部署保姆级教程:从零到可用,含 HTTPS + 双 Agent + Skill 配置

2026 年 OpenClaw 阿里云部署保姆级教程:从零到可用,含 HTTPS + 双 Agent + Skill 配置
折腾了整整一个周末终于在阿里云轻量服务器上把 OpenClaw 跑通了。说实话整个部署过程踩的坑比我想象中多得多——国内服务器拉镜像慢、容器权限报错、ICP 备案导致 80 端口被拦截、ACME 证书签不下来……每一个问题单拿出来都能让人卡半天。网上现有的教程要么太简略要么版本已经过时很多关键细节比如 docker compose run 和 docker compose exec 的区别、DNS-01 验证的正确姿势根本没人提。所以我决定把自己的完整部署过程记录下来写成这篇保姆级教程希望能帮你少走弯路。本教程面向的读者有基本的 Linux 操作经验但不熟悉 Docker / Nginx / HTTPS 证书配置。每一步我都会给出可以直接复制粘贴的完整命令。一、前置准备1.1 服务器要求项目推荐配置说明服务器阿里云轻量应用服务器ECS 也行轻量更便宜内存2GB 以上实测 1.87GB 也能跑但比较紧张系统Alibaba Cloud Linux 3 / Ubuntu 22.04本教程以 Alibaba Cloud Linux 3 为例带宽3Mbps太低会影响 Web 界面响应1.2 你还需要一个域名已经解析到服务器公网 IPA 记录DeepSeek API Key或其他 OpenClaw 支持的模型 Key一个 SSH 工具推荐 Windows Terminal / MobaXterm / 阿里云控制台自带的 Web Terminal1.3 域名解析在你的域名服务商控制台比如阿里云 DNS 控制台添加一条 A 记录主机记录: 或你想要的子域名前缀如 claw 记录类型: A 记录值: 你的服务器公网 IP解析生效一般需要几分钟可以用ping 你的域名验证。二、安装基础环境SSH 登录服务器后先检查当前环境docker --version node --version nginx -v2.1 安装 Docker如果没有# Alibaba Cloud Linux / CentOS yum install -y docker启动并设置开机自启systemctl start docker systemctl enable docker验证docker --versionUbuntu 用户用apt install -y docker.io或者通过 Docker 官方脚本安装。2.2 安装 Docker Compose 插件阿里云的 Docker 包通常自带 compose 插件。如果没有# 验证是否有 compose docker compose version如果没有手动安装插件mkdir -p /usr/local/lib/docker/cli-plugins curl -SL https://github.com/docker/compose/releases/latest/download/docker-compose-linux-x86_64 \ -o /usr/local/lib/docker/cli-plugins/docker-compose chmod x /usr/local/lib/docker/cli-plugins/docker-compose⚠️国内服务器下载 GitHub Release 可能很慢。如果卡住可以用南京大学镜像。2.3 安装 Nginxyum install -y nginx systemctl start nginx systemctl enable nginx2.4 安装 Node.js 20可选OpenClaw 本身在 Docker 里运行宿主机不强制要求 Node.js。但如果你想在宿主机上调试或使用 CLI 工具curl -fsSL https://rpm.nodesource.com/setup_20.x | bash - yum install -y nodejs node --version # 应该显示 v20.x.x三、部署 OpenClaw Docker 容器3.1 创建项目目录mkdir -p /opt/openclaw/data/config cd /opt/openclaw3.2 生成 Gateway Tokenopenssl rand -hex 16输出类似a3f8c2d1e9b0456781234567890abcde把它保存好后面多处要用。3.3 编写 docker-compose.ymlcat /opt/openclaw/docker-compose.yml EOF services: openclaw-gateway: image: ghcr.nju.edu.cn/openclaw/openclaw:latest container_name: openclaw-gateway restart: unless-stopped ports: - 127.0.0.1:18789:18789 - 127.0.0.1:18790:18790 volumes: - ./data/config:/home/node/.openclaw environment: - OPENCLAW_GATEWAY_TOKEN替换为你的token - TZAsia/Shanghai - DEEPSEEK_API_KEY替换为你的key - TERMxterm-256color stdin_open: true tty: trueopenclaw-cli: image: ghcr.nju.edu.cn/openclaw/openclaw:latest volumes: - ./data/config:/home/node/.openclaw environment: - OPENCLAW_GATEWAY_TOKEN替换为你的token - TZAsia/Shanghai - DEEPSEEK_API_KEY替换为你的key stdin_open: true tty: true profiles: - cli EOF⚠️镜像源说明这里用的是南京大学镜像ghcr.nju.edu.cn/openclaw/openclaw:latest国内服务器拉 GitHub Container Registry 的镜像非常慢南大镜像是 ghcr.io 的国内代理。⚠️安全说明端口绑定的是127.0.0.1外部无法直接访问。所有外部流量必须经过 Nginx 反向代理。3.4 修复目录权限超级重要chown -R 1000:1000 /opt/openclaw/data⚠️ OpenClaw 容器内部使用 node 用户UID 1000而 root 创建的目录归属 rootUID 0。不修复会导致 EACCES 错误。3.5 拉取镜像并启动cd /opt/openclaw docker compose pull docker compose up -d openclaw-gateway查看容器状态和日志确认启动成功docker compose ps docker compose logs -f openclaw-gateway四、初始配置⚠️必须用docker compose run --rm -T openclaw-cli ...不要用docker compose execrun 创建临时容器执行命令后自动销毁exec 会连到正在运行的 gateway 进程导致卡死。4.1 设置 Gateway 模式docker compose run --rm -T openclaw-cli node dist/index.js config set gateway.mode local4.2 设置 AI 模型docker compose run --rm -T openclaw-cli node dist/index.js config set model deepseek/deepseek-v4-flash4.3 设置允许的访问来源docker compose run --rm -T openclaw-cli node dist/index.js config set allowedOrigins [https://你的域名]4.4 关闭设备认证可选docker compose run --rm -T openclaw-cli node dist/index.js config set dangerouslyDisableDeviceAuth true4.5 重启并验证docker compose restart openclaw-gateway docker compose run --rm -T openclaw-cli node dist/index.js config list五、配置 Nginx 反向代理5.1 创建 Nginx 配置文件cat /etc/nginx/conf.d/openclaw.conf EOF server { listen 80; server_name 你的域名; return 301 https://$host$request_uri; }server { listen 443 ssl http2; server_name 你的域名;ssl_certificate /etc/nginx/ssl/你的域名.cer; ssl_certificate_key /etc/nginx/ssl/你的域名.key; ssl_protocols TLSv1.2 TLSv1.3;location / { proxy_pass http://127.0.0.1:18789; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection upgrade; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_buffering off; proxy_cache off; proxy_read_timeout 600s; proxy_send_timeout 600s; } } EOF三个关键WebSocket 支持Upgrade/Connection、关闭 proxy_buffering流式响应、超时 600s。六、签发 HTTPS 证书DNS-016.1 安装 acme.sh 并切换 CAcurl https://get.acme.sh | sh -s email你的邮箱 source ~/.bashrc acme.sh --set-default-ca --server letsencrypt6.2 DNS-01 手动验证acme.sh --issue -d 你的域名 --dns --yes-I-know-dns-manual-mode-enough-go-ahead-please按提示在 DNS 控制台添加 TXT 记录等待生效后acme.sh --renew -d 你的域名 --yes-I-know-dns-manual-mode-enough-go-ahead-please6.3 安装证书并重载 Nginxacme.sh --install-cert -d 你的域名 \ --cert-file /etc/nginx/ssl/你的域名.cer \ --key-file /etc/nginx/ssl/你的域名.key \ --fullchain-file /etc/nginx/ssl/fullchain.cer \ --reloadcmd systemctl reload nginxnginx -t systemctl reload nginx七、验证访问访问https://你的域名输入 Gateway Token 登录发送消息确认 AI 正常回复。常用运维命令cd /opt/openclaw docker compose ps # 查看状态 docker compose logs -f openclaw-gateway # 查看日志 docker compose restart openclaw-gateway # 重启 docker compose pull docker compose up -d openclaw-gateway # 更新