教程 · 部署
云服务器部署 OpenClaw:买机器、安装到远程访问
把龙虾装在自己电脑上,电脑一关机它就停了。搬到云服务器,它可以一直开着,手机也能连,定时任务不用等你的电脑开机。这里的做法全程不开公网端口,控制台用 SSH 隧道或 Tailscale 访问。
- 系统
- Linux 云服务器
- 发布日期
- 更新日期

云服务器买多大:看接云端 API 还是本地跑模型
买多大看你走哪条路:
- 走云端 API(推荐):模型在服务商那边算,这台机器只跑龙虾本体。官方安装页的系统要求只列了 Node 版本(24.16+ 或 26.1+)和操作系统,没有给内存和 CPU 的数。所以从最小一档买起,装好后用
free -h看内存余量,不够再升配。打算用 Docker 并在本机从源码构建镜像的例外:官方 Docker 文档写这种构建至少要 6 GB 内存,用现成镜像没有这条要求。 - 本机本地跑大模型:配置要按模型大小另算,见本地部署AI大模型最低配置要求。第一次部署不建议走这条。
系统建议选 Ubuntu LTS。选地域时要确认那里连得上你要接的模型接口,买好后用 curl 测一下,测法见 连不上模型/API 怎么排里 timeout 那一条。
SSH 连上服务器,装 Node 和 OpenClaw
买好后用 SSH 连进去(控制台一般给你 IP 和初始密码或密钥):
ssh root@你的服务器IP
进去先更新一下系统,再装 Node——OpenClaw 是 Node.js 项目,官方推荐 Node 26:
apt update && apt upgrade -y
curl -fsSL https://deb.nodesource.com/setup_26.x | bash -
apt install -y nodejs
然后用官方脚本装龙虾。别用 root 跑龙虾。root 壳只负责装环境,再建一个普通用户来持有龙虾的状态和服务:
# 装 OpenClaw,先不跑引导(引导留给普通用户做)
curl -fsSL https://openclaw.ai/install.sh | bash -s -- --no-onboard
# 建普通用户,给它 sudo,并允许它的服务在没人登录时也跑
adduser openclaw
usermod -aG sudo openclaw
loginctl enable-linger openclaw
su - openclaw
openclaw --version
切到 openclaw 用户后跑引导,接大脑就在这一步完成。向导会让你选服务商、填 API key,并发一次真实请求确认连得通;命令里带的 --install-daemon 负责把 Gateway 装成后台服务:
openclaw onboard --install-daemon
向导之外想手动改:密钥在 ~/.openclaw/.env(也就是 /home/openclaw/.openclaw/.env),注意是按服务商分开命名的,没有通用的 API_KEY,例如 ANTHROPIC_API_KEY=sk-ant-你的密钥;模型名不在 .env 里,在同目录的 openclaw.json,写在 agents.defaults.model.primary 下面,格式是“服务商/模型名”,例如 "anthropic/claude-opus-5-5"。
free -h 里可用内存见底,或者进程被系统杀掉过的机器,加一块 swap 应急。下面建的是 2G,按磁盘余量改大小:
sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
确认 OpenClaw 在后台常驻,关掉 SSH 也不停
上面 --install-daemon 那个参数已经把龙虾注册成了 systemd 用户级服务(单元名 openclaw-gateway.service),开机自启、崩了自动拉起。前面那句 loginctl enable-linger 就是为它准备的:没有它,用户级服务会在你退出 SSH 后被系统收掉,“关掉 SSH 龙虾就停了”有一种就是这个原因(另一种是没装服务、直接在前台跑)。验证一下:
openclaw gateway status
systemctl --user status openclaw-gateway.service
journalctl --user -u openclaw-gateway.service -f # 盯日志,Ctrl+C 退出
如果引导时跳过了装服务,事后补一条 openclaw gateway install 即可。从此 SSH 断不断都不影响。
不开公网端口,怎么从外面访问控制台
龙虾的 Gateway 默认只听本机回环地址的 18789 端口,公网是摸不到的——这是有意的安全默认,不要改成对外监听。下面两种访问方式都不需要开公网端口:
方式 A:SSH 隧道(最简单)。在你自己的电脑上执行,然后浏览器开 http://localhost:18789,用引导时配的 token(或密码)登录:
ssh -L 18789:localhost:18789 openclaw@你的服务器IP
方式 B:Tailscale Serve。服务器装 Tailscale 加入你的 tailnet,再让龙虾走 Serve 模式,之后 tailnet 里任何设备(包括手机)都能开 https://<你的 MagicDNS 名>/,证书和身份都由 Tailscale 管:
curl -fsSL https://tailscale.com/install.sh | sudo sh
sudo tailscale up
openclaw config set gateway.tailscale.mode serve
openclaw gateway restart
想挂自己的域名、用 Caddy / Nginx 反代到 localhost:18789 也行,但那属于进阶玩法:Gateway 的 token 认证必须留着,控制台还要配好允许的来源(gateway.controlUi.allowedOrigins)。新手先用隧道,跑顺了再折腾公网域名。
安全组、控制台 token 和 SSH 登录怎么收紧
就算没开公网端口,这几件事也要做:
- 安全组只放行该放的端口:对外只开你的 SSH 端口(用 Tailscale 的话连 SSH 都可以收进 tailnet)。龙虾的 18789 别直接暴露到公网,让它只在本机听。
- 控制台的 token 别外泄:控制台靠引导时配的 token(或密码)登录,Gateway 只听本机回环,按上一节用隧道或 Tailscale 访问就不会暴露到公网。挂了域名走反代的,token 认证要留着,再加一层 IP 白名单。控制台能读写文件、跑命令,别人登进去就等于拿到了这台机器。
- SSH 改成密钥登录、关掉密码登录:先把公钥放上去,确认用密钥能登录,再关密码。
厂商开机时只给密钥、本来就没开密码登录的机器,公钥已经在服务器上,跳过下面的 ssh-copy-id,直接去改配置。其余情况在自己电脑上做,本机还没有密钥的先生成一对:
# 本机还没有密钥的先生成(已经有的跳过这一条)
ssh-keygen -t ed25519
# 把公钥放到服务器(macOS / Linux)
ssh-copy-id openclaw@你的服务器IP
Windows 自带的 OpenSSH 没有 ssh-copy-id。在 Windows 上打开 .ssh 目录里的 id_ed25519.pub,把里面那一行公钥复制下来,登录服务器后追加到 openclaw 用户的 ~/.ssh/authorized_keys 末尾(文件不存在就新建,一把公钥占一行)。
用密钥能登录之后,在服务器上编辑 /etc/ssh/sshd_config,把这两项改成:
PasswordAuthentication no
PermitRootLogin no
保存后重启 SSH 服务,再让 sshd 报出实际生效的值:
sudo systemctl restart ssh
sudo sshd -T | grep -Ei 'passwordauthentication|permitrootlogin'
两项都显示 no 才算关掉了。仍显示 yes 的,去改 /etc/ssh/sshd_config.d/ 目录下那份同名设置:云镜像常在这个目录里另放一份配置,主文件改了也会被它盖过去。改完再重启、再查一遍。
重启 SSH 后先别关当前这个窗口,另开一个终端用密钥登一次 openclaw 用户,登得上再退出旧窗口。
常见问题
- 跑龙虾的云服务器要多大配置?
- 走云端 API 的话,模型在服务商那边算,这台机器只跑龙虾本体。官方安装页的系统要求只列了 Node 24.16+ 或 26.1+ 和操作系统,没有给内存和 CPU 的数,所以从最小一档买起,装好后用 free -h 看内存余量,不够再升配。用 Docker 并在本机从源码构建镜像的,官方 Docker 文档写至少要 6 GB 内存。要在同一台机器上本地跑大模型,按模型大小另算。
- 为什么我关掉 SSH 龙虾就停了?
- 两种情况:要么是在前台跑的,进程绑在 SSH 会话上,会话一断就被杀;要么装成了 systemd 用户级服务,但没给用户开
loginctl enable-linger,你一退出登录系统就把它收了。用openclaw onboard --install-daemon装服务,再开 linger。 - 一定要配域名和 HTTPS 吗?
- 不一定。Gateway 默认只听本机 18789 端口,可以用 SSH 隧道或 Tailscale Serve 访问控制台,两者都不需要开公网端口,也不用自己签证书。想挂域名走反代是进阶玩法,token 认证必须留着。