在VPS上安全部署OpenClaw

3 分钟阅读·Matthieu|

在VPS上安装并加固OpenClaw,配置网关认证、TLS反向代理、Docker沙箱、防火墙加固和systemd隔离。每个步骤都包含验证命令。

OpenClaw是一个开源、自托管的AI助手,可连接消息应用(WhatsApp、Telegram、Discord、Slack、Signal)和AI模型提供商。它在你的服务器上运行Gateway(网关)进程,接收消息,使用工具执行代理动作,并发送响应。所有数据都保留在你的基础设施上。

本指南介绍如何在运行Ubuntu 24.04的VPS上进行安全优先的部署。你将加固操作系统、安装OpenClaw、配置网关认证、使用Nginx和TLS设置反向代理、修复Docker/UFW防火墙绕过问题、启用Docker sandboxing(Docker沙箱)、锁定工具策略,并将网关作为加固的systemd服务运行。

为什么VPS上的OpenClaw安全性很重要?

OpenClaw运行的AI代理可以在你的服务器上执行shell命令、读取文件和浏览网页。配置不当的实例会让攻击者获得同样的能力。这不是理论推测。

2026年初,研究人员发现超过42,000个OpenClaw实例暴露在公共互联网上。63%存在远程利用漏洞。CVE-2026-25253(CVSS 8.8)允许通过恶意链接窃取认证令牌实现一键远程代码执行。攻击者可以窃取网关令牌、通过WebSocket连接、禁用确认提示、逃逸Docker沙箱并执行任意命令。

修复已在版本2026.1.29中发布,但仅打补丁是不够的。安全需要层层防护:网络隔离、认证、TLS、沙箱和工具限制协同工作。缺少任何一层(例如有网关认证但没有防火墙)都会留下直接被攻破的路径。

开始之前需要准备什么?

需求 详情
VPS Ubuntu 24.04,4+ vCPU,至少8 GB RAM
域名 A记录指向你的VPS IP(例如openclaw.example.com)
SSH访问 已配置密钥认证
AI提供商API密钥 Anthropic、OpenAI或Google Gemini
Node.js 22或更新版本
Docker Engine 20+,带Compose插件

如果你需要VPS配置或SSH密钥设置方面的帮助,请参阅Secure a Linux VPS

安装OpenClaw之前如何加固VPS?

安装任何东西之前,先锁定操作系统。如果你已经按照Secure a Linux VPSSSH Security Configuration完成了配置,跳到下一节。

创建专用用户

以root运行服务是不必要的风险。创建一个openclaw系统用户:

sudo useradd -r -m -s /bin/bash openclaw

这会创建一个带主目录的系统账户。OpenClaw将配置存储在~/.openclaw中,因此需要主目录。

配置UFW

在暴露任何服务之前安装并启用防火墙:

sudo apt update && sudo apt install -y ufw
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 22/tcp comment 'SSH'
sudo ufw allow 80/tcp comment 'HTTP'
sudo ufw allow 443/tcp comment 'HTTPS'
sudo ufw enable

验证规则:

sudo ufw status verbose

你应该看到三个允许的端口和默认拒绝入站流量的策略。端口18789(OpenClaw网关)故意不在列表中。网关只绑定到localhost,通过Nginx访问。

安装fail2ban

sudo apt update && sudo apt install -y fail2ban
sudo systemctl enable --now fail2ban

验证它正在运行:

sudo systemctl status fail2ban

输出应显示active (running)。fail2ban监控SSH日志并在多次登录失败后封禁IP。

如何在Ubuntu上安装OpenClaw?

OpenClaw支持两种安装方式:npm(直接安装)和Docker。两种方式都在下面介绍。选择其中一种。Docker推荐用于VPS部署,因为容器隔离可以在代理进程被攻破时限制影响范围。

选项A:Docker安装(推荐)

如果尚未安装Docker:

sudo apt install -y ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin

openclaw用户添加到docker组:

sudo usermod -aG docker openclaw

注意:Docker组成员资格等同于主机上的root访问权限。OpenClaw的Docker功能需要这一权限,但这意味着openclaw用户可以控制系统上的所有容器。下面的systemd加固和沙箱隔离限制了OpenClaw进程的实际能力。

切换到openclaw用户并设置OpenClaw:

sudo -u openclaw -i

克隆仓库并使用官方预构建镜像运行安装:

git clone https://github.com/openclaw/openclaw.git ~/openclaw-src
cd ~/openclaw-src
OPENCLAW_IMAGE=ghcr.io/openclaw/openclaw:latest ./docker-setup.sh

设置OPENCLAW_IMAGE会告诉脚本从GitHub Container Registry拉取预构建镜像,而不是从源码构建。脚本会运行onboarding(引导配置)并通过Docker Compose启动网关。

容器内的网关默认绑定到所有接口(lan模式)。这对Docker部署来说是正确的,因为Docker的端口映射需要访问容器内的网关。外部访问通过主机级别的DOCKER-USER iptables规则阻止(下文介绍)。

验证网关正在运行:

curl -fsS http://127.0.0.1:18789/healthz

200 OK响应确认网关已启动。/readyz端点确认它已准备好接受连接:

curl -fsS http://127.0.0.1:18789/readyz

选项B:npm安装

使用NodeSource安装Node.js 22:

curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -
sudo apt install -y nodejs

验证版本:

node --version

输出应显示v22.x.x或更新版本。

切换到openclaw用户并安装:

sudo -u openclaw -i
npm install -g openclaw@latest

运行引导配置:

openclaw onboard

绑定模式选择loopback。引导向导会生成网关认证令牌并将其存储在~/.openclaw/openclaw.json中。

启动网关:

openclaw gateway start

验证:

curl -fsS http://127.0.0.1:18789/healthz

验证网关绑定

检查网关的监听地址:

ss -tulpn | grep 18789

npm安装: 输出应显示127.0.0.1:18789,而不是0.0.0.0:18789。如果看到0.0.0.0,停止网关并在openclaw.json中将gateway.bind设为"loopback"

Docker安装: 你会看到docker-proxy进程的0.0.0.0:18789。这是预期行为。Docker的端口映射在所有主机接口上发布端口,以便localhost流量能到达容器。DOCKER-USER iptables规则(在下面的防火墙部分介绍)在网络层阻止外部访问。

锁定文件权限

配置文件包含你的认证令牌和API密钥:

chmod 700 /home/openclaw/.openclaw
chmod 600 /home/openclaw/.openclaw/openclaw.json

验证:

ls -la /home/openclaw/.openclaw/openclaw.json

你应该看到-rw-------。npm安装时所有者是openclaw。Docker安装时所有者可能显示为uid 1000(容器内的node用户)。这是正常的,容器需要此权限来读取配置。

如何配置网关认证?

OpenClaw的网关默认要求认证。如果未配置令牌或密码,网关会拒绝WebSocket连接(fail-closed,即默认拒绝)。引导向导会自动生成令牌。

OpenClaw支持三种认证模式:

模式 工作原理 适用场景
token 每个请求中携带共享bearer令牌 单用户VPS(推荐)
password 基于密码的认证 多设备场景
trusted-proxy 将认证委托给反向代理 企业/SSO场景

设置强令牌

如果你想替换自动生成的令牌,生成一个新的:

openssl rand -base64 32

将其存储为环境变量,而不是硬编码在配置文件中。创建环境文件:

sudo mkdir -p /etc/openclaw
sudo tee /etc/openclaw/env > /dev/null << 'EOF'
OPENCLAW_GATEWAY_TOKEN=your-generated-token-here
EOF
sudo chmod 600 /etc/openclaw/env
sudo chown openclaw:openclaw /etc/openclaw/env

编辑~/.openclaw/openclaw.json来引用环境变量:

{
  gateway: {
    bind: "loopback",  // use "loopback" for npm, keep default for Docker
    port: 18789,
    auth: {
      mode: "token",
      token: "${OPENCLAW_GATEWAY_TOKEN}"
    }
  }
}

OpenClaw在其JSON5配置中支持${VARIABLE}替换,因此令牌在启动时从环境变量读取。Docker安装时,在openclaw-src目录内的.env文件中设置OPENCLAW_GATEWAY_TOKEN变量。docker-setup.sh脚本会自动生成此文件。

重启网关并测试未认证的请求是否被拒绝:

curl -s -o /dev/null -w "%{http_code}" http://127.0.0.1:18789/healthz

健康检查端点不需要认证就返回200(它是健康检查)。要测试WebSocket端点的认证强制执行,检查网关日志:

systemd/npm安装:

journalctl -u openclaw-gateway --no-pager -n 20

Docker安装:

cd ~/openclaw-src && docker compose logs openclaw-gateway --tail 20

查找auth requiredconnection rejected条目以确认默认拒绝行为。

如何为OpenClaw设置Nginx TLS反向代理?

网关绑定到localhost。Nginx在前端终止TLS并将WebSocket连接代理到网关。这样你可以获得加密连接而不暴露网关端口。

关于Nginx反向代理的背景知识,参阅Nginx Reverse Proxy。关于Let's Encrypt的TLS设置,参阅Nginx SSL/TLS with Let's Encrypt

安装Nginx和Certbot

sudo apt install -y nginx certbot python3-certbot-nginx

获取TLS证书

sudo certbot --nginx -d openclaw.example.com

openclaw.example.com替换为你的实际域名。Certbot会配置自动续期。

配置反向代理

创建Nginx server block:

sudo tee /etc/nginx/sites-available/openclaw.conf > /dev/null << 'NGINX'
server {
    listen 443 ssl;
    listen [::]:443 ssl;
    server_name openclaw.example.com;

    ssl_certificate /etc/letsencrypt/live/openclaw.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/openclaw.example.com/privkey.pem;
    include /etc/letsencrypt/options-ssl-nginx.conf;
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;

    # Hide Nginx version
    server_tokens off;

    # WebSocket proxy to OpenClaw gateway
    location / {
        proxy_pass http://127.0.0.1:18789;

        # WebSocket support
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";

        # Overwrite X-Forwarded-For, do not append
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header Host $host;

        # Timeouts for long-running agent sessions
        proxy_read_timeout 86400s;
        proxy_send_timeout 86400s;
    }
}

server {
    listen 80;
    listen [::]:80;
    server_name openclaw.example.com;
    return 301 https://$host$request_uri;
}
NGINX

注意:proxy_set_header X-Forwarded-For $remote_addr使用的是$remote_addr(覆写),而不是$proxy_add_x_forwarded_for(追加)。这是有意为之。追加模式允许客户端在header中注入伪造IP。OpenClaw文档明确推荐使用覆写方式。

启用站点并测试配置:

sudo ln -s /etc/nginx/sites-available/openclaw.conf /etc/nginx/sites-enabled/
sudo nginx -t

输出应显示syntax is oktest is successful。重新加载Nginx:

sudo systemctl reload nginx

配置OpenClaw信任代理

通过在~/.openclaw/openclaw.json中添加trustedProxies来让网关信任Nginx的转发header:

{
  gateway: {
    bind: "loopback",  // use "loopback" for npm, keep default for Docker
    port: 18789,
    trustedProxies: ["127.0.0.1"],
    auth: {
      mode: "token",
      token: "${OPENCLAW_GATEWAY_TOKEN}"
    }
  }
}

重启网关以应用更改。从你的本地机器(不是服务器)验证TLS是否正常工作:

curl -I https://openclaw.example.com/healthz

你应该收到通过HTTPS的200响应。更多Nginx安全加固内容,请参阅Nginx安全加固指南(即将发布)。

如何修复Docker和UFW防火墙绕过问题?

Docker直接操作iptables,完全绕过UFW。如果你使用Docker运行OpenClaw并发布了端口,即使UFW阻止了该端口,它也可以从互联网访问。这是Docker部署中最常见的配置错误之一。

关于此问题的完整解释,参阅Docker UFW Firewall Fix

修复方法使用DOCKER-USER链,Docker在将流量转发到容器之前会先处理此链。

阻止所有外部访问Docker端口

sudo iptables -I DOCKER-USER -i eth0 -j DROP

这会丢弃来自外部接口(eth0)的所有流量,这些流量本会被Docker转发到容器。如果你的接口名不同,请调整(用ip link show检查)。

允许回环流量

同一主机上的Nginx需要通过localhost访问网关容器:

sudo iptables -I DOCKER-USER -i lo -j ACCEPT

允许已建立的连接

sudo iptables -I DOCKER-USER -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

持久化规则

sudo apt install -y iptables-persistent
sudo netfilter-persistent save

验证规则

sudo iptables -L DOCKER-USER -n -v

你应该看到回环和已建立连接的ACCEPT规则在eth0的DROP规则之上。顺序很重要:iptables从上到下处理规则。

从外部机器测试网关端口不可达:

nmap -p 18789 your-server-ip

端口18789应显示filteredclosed,而不是open

如何为OpenClaw启用Docker sandboxing(Docker沙箱)?

Docker sandboxing(Docker沙箱)在隔离容器中运行代理工具执行。当代理运行shell命令或写入文件时,操作发生在一次性容器中,而不是在主机上。

~/.openclaw/openclaw.json中添加沙箱配置:

{
  agents: {
    defaults: {
      sandbox: {
        mode: "all",
        scope: "session",
        workspaceAccess: "none",
        docker: {
          image: "openclaw-sandbox:bookworm-slim",
          network: "none",
          user: "1000:1000",
          memory: "1g",
          cpus: 1
        }
      }
    }
  }
}

各设置含义:

设置 效果
mode "all" 每个会话都在沙箱中运行,无例外
scope "session" 每个聊天会话获得独立容器
workspaceAccess "none" 沙箱无法看到代理工作区
network "none" 沙箱无网络访问(防止数据泄露)
memory "1g" 容器RAM上限1 GB
cpus 1 容器CPU上限1核

构建沙箱镜像:

cd ~/openclaw-src
scripts/sandbox-setup.sh

验证沙箱配置:

openclaw sandbox explain

Docker安装时,通过compose运行:

cd ~/openclaw-src && docker compose exec openclaw-gateway node dist/index.js sandbox explain

此命令输出生效的沙箱模式、作用域、工作区访问权限、工具策略和任何覆盖项。确认输出中显示mode: allnetwork: none

如果你需要特定工具的网络访问(例如web_search),按代理单独授权,而不是修改全局默认值。参阅下面的工具策略部分。

OpenClaw默认阻止危险的bind mount来源:/var/run/docker.sock/etc/proc/sys/dev都被拒绝。不要用自定义bind mount重新暴露它们。如果沙箱容器需要访问主机数据,使用带有明确路径的只读挂载:

{
  agents: {
    defaults: {
      sandbox: {
        docker: {
          binds: ["/home/openclaw/shared-data:/data:ro"]
        }
      }
    }
  }
}

:ro后缀确保容器可以读取数据但不能修改。

如何锁定OpenClaw工具策略?

工具策略控制代理可以使用哪些工具。沙箱有独立于代理级权限的工具过滤器。拒绝(deny)始终优先于允许(allow)。

默认拒绝策略

~/.openclaw/openclaw.json中设置限制性默认值:

{
  tools: {
    deny: ["exec", "write", "edit", "browser"],
    allow: ["read", "web_search"]
  }
}

这默认阻止命令执行、文件写入、文件编辑和浏览器访问。代理仍然可以读取文件和搜索网页。

按代理配置

为需要更多权限的特定代理覆盖默认值。在agents.list下添加配置:

{
  agents: {
    list: [
      {
        name: "coding-agent",
        tools: {
          allow: ["exec", "read", "write", "edit"],
          deny: ["browser"]
        },
        sandbox: {
          mode: "all",
          docker: {
            network: "none"
          }
        }
      },
      {
        name: "messaging-agent",
        tools: {
          allow: ["read", "web_search"],
          deny: ["exec", "write", "edit", "browser"]
        }
      }
    ]
  }
}

coding-agent可以执行命令,但只能在无网络的沙箱容器中执行。messaging-agent可以读取和搜索,但不能执行任何操作。

禁用elevated模式

Elevated模式(提权模式)允许代理直接在网关主机上运行命令,绕过沙箱。禁用它:

{
  tools: {
    elevated: {
      enabled: false
    }
  }
}

如果保持elevated模式启用,任何能与代理聊天的用户都可能运行主机命令。在VPS上,这就是远程代码执行。

多用户DM隔离

如果多人会向你的OpenClaw实例发送消息,启用per-peer DM作用域。默认情况下,所有DM共享一个主会话。这意味着用户A可以看到用户B的对话上下文。

{
  session: {
    dmScope: "per-peer"
  }
}

这让每个发送者拥有独立的会话,具有隔离的上下文和沙箱容器。

如何将OpenClaw作为加固的systemd服务运行?

在systemd下运行OpenClaw意味着它会在启动时自动运行、崩溃时自动重启,并通过加固指令获得进程隔离。

创建服务单元

Docker安装时,创建以下unit文件:

sudo tee /etc/systemd/system/openclaw-gateway.service > /dev/null << 'EOF'
[Unit]
Description=OpenClaw Gateway
After=network-online.target docker.service
Wants=network-online.target
Requires=docker.service

[Service]
Type=simple
User=openclaw
Group=openclaw
WorkingDirectory=/home/openclaw/openclaw-src
EnvironmentFile=/etc/openclaw/env
ExecStart=/usr/bin/docker compose up --no-log-prefix openclaw-gateway
ExecStop=/usr/bin/docker compose down
Restart=always
RestartSec=10

# Security hardening
NoNewPrivileges=yes
PrivateTmp=yes
ProtectSystem=strict
ProtectHome=read-only
ReadWritePaths=/home/openclaw/.openclaw
CapabilityBoundingSet=
ProtectKernelTunables=yes
ProtectKernelModules=yes
ProtectControlGroups=yes
RestrictSUIDSGID=yes
MemoryMax=4G

[Install]
WantedBy=multi-user.target
EOF

npm安装时,替换ExecStartExecStop行:

ExecStart=/usr/bin/openclaw gateway start --foreground
ExecStop=/usr/bin/openclaw gateway stop

并删除Requires=docker.service行。

各加固指令的作用:

指令 防护效果
NoNewPrivileges 防止进程通过setuid/setgid获取额外权限
PrivateTmp 给服务提供独立的/tmp,对其他进程不可见
ProtectSystem=strict 将整个文件系统挂载为只读,除了明确的ReadWritePaths
ProtectHome=read-only 防止向任何主目录写入,除了允许的路径
CapabilityBoundingSet= 删除所有Linux capabilities(空集)
ProtectKernelTunables 阻止写入/proc/sys/sys
ProtectKernelModules 防止加载内核模块
MemoryMax=4G 服务超过4 GB RAM时会被终止,防止主机OOM

启用并启动

sudo systemctl daemon-reload
sudo systemctl enable --now openclaw-gateway

enable使其在启动时自动运行。--now立即启动。

验证它正在运行:

sudo systemctl status openclaw-gateway

输出应显示active (running)。检查日志中是否有错误:

journalctl -u openclaw-gateway -f --no-pager -n 50

如何验证完整部署的安全性?

部署后按照此清单逐项检查,确认每层防护都在工作。

1. 运行OpenClaw内置安全审计

npm安装:

sudo -u openclaw openclaw security audit --deep

Docker安装:

cd ~/openclaw-src && docker compose exec openclaw-gateway node dist/index.js security audit --deep

这会标记常见的配置错误:未认证的网络暴露、提权工具权限、文件权限问题。在继续之前修复所有警告。

2. 确认网关绑定

ss -tulpn | grep 18789

npm安装: 预期127.0.0.1:18789。不应是0.0.0.0:18789

Docker安装: 预期docker-proxy0.0.0.0:18789。这是正常的。外部访问被DOCKER-USER iptables规则阻止。

3. 外部端口扫描

从你的本地机器(不是服务器):

nmap -p 18789 your-server-ip

预期结果:filteredclosed

4. 验证TLS

curl -I https://openclaw.example.com/healthz

预期:通过HTTPS收到200,证书有效。

5. 测试认证强制执行

curl -s -o /dev/null -w "%{http_code}" https://openclaw.example.com/

网关应该要求非健康检查端点进行认证。

6. 检查沙箱隔离

npm安装:

sudo -u openclaw openclaw sandbox explain

Docker安装:

cd ~/openclaw-src && docker compose exec openclaw-gateway node dist/index.js sandbox explain

确认mode: allnetwork: none,且没有elevated覆盖。

7. 验证文件权限

ls -la /home/openclaw/.openclaw/openclaw.json
ls -la /etc/openclaw/env

两者都应显示600权限。env文件的所有者是openclaw。Docker安装时,openclaw.json的所有者可能是uid 1000(容器的node用户)。

8. 检查systemd加固

systemd-analyze security openclaw-gateway

这会对服务的安全属性评分。目标是5.0左右或更低(越低越安全)。基于Docker的服务通常在5.0-5.5之间,因为Docker需要访问命名空间和设备接口。上面的加固指令将评分从默认的约9.6降到约5.2。

9. 验证UFW和DOCKER-USER规则

sudo ufw status
sudo iptables -L DOCKER-USER -n -v

UFW应只显示端口22、80和443。DOCKER-USER链应丢弃外部流量。

10. 检查暴露的服务

ss -tulpn

应只出现SSH(22)、Nginx(80、443)和OpenClaw(npm为127.0.0.1:18789,Docker为通过docker-proxy的0.0.0.0:18789)。

如何保持OpenClaw更新和备份?

版本隐藏

隐藏网关响应中的OpenClaw版本。版本泄露帮助攻击者针对已知漏洞。在~/.openclaw/openclaw.json中:

{
  gateway: {
    exposeVersion: false
  }
}

结合Nginx配置中已有的server_tokens off;指令,这可以防止对反向代理和应用程序的指纹识别。

更新

OpenClaw发布频繁。检查当前版本:

openclaw --version

Docker安装:

cd ~/openclaw-src && docker compose exec openclaw-gateway node dist/index.js --version

更新Docker安装:

cd ~/openclaw-src
git pull
docker compose pull
docker compose up -d openclaw-gateway

更新npm安装:

npm update -g openclaw

更新后,重启网关并重新运行安全审计:

sudo systemctl restart openclaw-gateway

npm:

sudo -u openclaw openclaw security audit

Docker:

cd ~/openclaw-src && docker compose exec openclaw-gateway node dist/index.js security audit

升级前阅读发布说明。配置格式的破坏性变更确实会发生。版本2026.3.7在同时存在tokenpassword时引入了必需的gateway.auth.mode字段。升级后缺少此字段会将你锁在网关外面。

备份

备份配置目录:

sudo tar czf /root/openclaw-backup-$(date +%Y%m%d).tar.gz /home/openclaw/.openclaw

将备份存储在服务器之外。配置目录包含你的认证令牌、代理配置和对话状态。像保护生产配置一样保护备份:用gpg加密或存储在加密卷中。

日志管理

实时查看日志:

journalctl -u openclaw-gateway -f

OpenClaw日志可能包含对话片段。设置日志保留时间以限制暴露:

sudo tee /etc/systemd/journald.conf.d/openclaw.conf > /dev/null << 'EOF'
[Journal]
MaxRetentionSec=7d
MaxFileSec=1d
EOF
sudo systemctl restart systemd-journald

遇到问题?

症状 可能原因 修复方法
网关拒绝启动 端口18789已被占用 ss -tulpn | grep 18789查找冲突进程
WebSocket连接通过Nginx失败 缺少UpgradeConnection header 检查Nginx配置中的proxy_set_header指令
沙箱容器启动失败 Docker socket权限 确保openclaw用户在docker组中并重新登录
openclaw security audit显示警告 更新后配置漂移 查看审计输出并应用推荐修复
网关可从外部IP访问 Docker/UFW绕过 按上文添加DOCKER-USER iptables规则
TLS证书错误 Certbot续期失败 运行sudo certbot renew --dry-run诊断
VPS上的OOM kill systemd unit缺少MemoryMax [Service]部分添加MemoryMax=4G

Copyright 2026 Virtua.Cloud. All rights reserved.

准备好亲自尝试了吗?

几秒内部署您自己的服务器。支持 Linux、Windows 或 FreeBSD。

查看 VPS 方案
在VPS上安全部署OpenClaw(2026指南)