1. 项目概述:为什么选择这个方案?

最近几年,AI 助手从云端走向本地和私有化部署的趋势越来越明显。无论是出于数据隐私的考虑,还是为了获得更低的调用成本和更快的响应速度,很多开发者和技术爱好者都开始尝试自己搭建专属的 AI 助手。OpenClaw 作为一个开源的、功能强大的 AI 助手框架,支持接入多种大语言模型,并能通过技能(Skill)扩展实现自动化任务,成为了一个非常热门的选择。

然而,在个人电脑上 7x24 小时运行这样一个服务,不仅耗电,还可能影响电脑的其他用途。这时候,一台稳定、低成本且独立的服务器就显得尤为重要。腾讯云推出的轻量应用服务器,特别是那款年付仅 99 元的配置,就完美地击中了这个痛点。它提供了一个纯净的 Linux 环境、公网 IP 和稳定的网络,相当于我们拥有了一个全年无休、随时在线的“AI 大脑”主机。

这个方案的核心价值在于“性价比”和“可控性”。用极低的成本,获得一个专属的、可高度定制的 AI 助手服务。无论是用来处理日常的文本工作、作为编程辅助,还是通过技能实现自动化(比如定时汇报、信息聚合),它都能成为一个得力的数字伙伴。接下来,我将详细拆解从零开始,在这台 99 元的服务器上部署和配置 OpenClaw 的全过程,包括你可能遇到的所有坑和我的解决经验。

2. 前期准备:服务器选购与基础环境配置

2.1 腾讯云轻量服务器选购与初始化

首先,你需要在腾讯云官网找到“轻量应用服务器”产品页面。通常促销活动中的 99 元/年套餐,配置是 1核 CPU、2GB 内存、40GB SSD 云硬盘和 300GB 月流量包。对于运行 OpenClaw 和一个小型语言模型(如 7B 参数的模型)来说,这个配置是入门的最低门槛,可以流畅运行基础功能。

购买时,镜像选择是关键。我强烈推荐选择 Ubuntu 22.04 LTS 。LTS 代表长期支持,系统更稳定,社区支持和完善的教程也最多,能避免很多兼容性问题。在购买页面的“应用镜像”里,直接选择“系统镜像”中的 Ubuntu 22.04 即可,不要选那些预装了宝塔、WordPress 的应用镜像,我们需要一个干净的系统。

服务器创建成功后,第一件事不是急着登录,而是去控制台的防火墙(安全组)设置。默认可能只开放了 22(SSH)、80(HTTP)、443(HTTPS)端口。OpenClaw 的 Web 管理界面默认运行在 10080 端口,我们需要手动添加一条规则:协议 TCP,端口范围 10080,来源 0.0.0.0/0(允许所有 IP 访问,生产环境建议限制为你的 IP)。同时,如果你计划使用其他技能或服务,可能还需要开放诸如 8000、7860 等端口,可以后续按需添加。

注意:首次登录后,立即使用 sudo apt update && sudo apt upgrade -y 命令更新系统软件包,这是一个好习惯,可以修复已知的安全漏洞。

2.2 系统基础环境与依赖安装

通过 SSH 连接到你的服务器后(Windows 用户可使用 PowerShell 或 PuTTY,Mac/Linux 用户直接用终端),我们就开始搭建基础环境。OpenClaw 的部署方式多样,但为了隔离性和便于管理,使用 Docker 是最推荐的方式。

1. 安装 Docker 与 Docker Compose Docker 能保证环境一致性,避免“在我机器上好好的”这种问题。执行以下命令安装 Docker:

# 卸载旧版本(如果有)
sudo apt-get remove docker docker-engine docker.io containerd runc

# 安装依赖包
sudo apt-get update
sudo apt-get install -y ca-certificates curl gnupg lsb-release

# 添加 Docker 官方 GPG 密钥
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

# 设置稳定版仓库
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# 安装 Docker Engine
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin

# 验证安装
sudo docker run hello-world

安装成功后,运行 hello-world 镜像如果能看到欢迎信息,说明 Docker 安装正确。为了避免每次运行 docker 命令都要加 sudo ,可以将当前用户加入 docker 组: sudo usermod -aG docker $USER 操作完成后,需要完全退出 SSH 会话再重新登录,这个权限变更才会生效。

2. 安装 Python 与 Pip(部分技能可能依赖) 虽然 Docker 化了,但有些宿主机级别的工具管理还是需要 Python。Ubuntu 22.04 默认安装了 Python3,我们确保 pip 已安装并更新至最新:

sudo apt install -y python3-pip
pip3 install --upgrade pip

3. 准备项目目录与配置文件 为 OpenClaw 创建一个独立的工作目录,所有相关文件都放在这里,便于管理。

mkdir -p ~/openclaw
cd ~/openclaw

在这个目录下,我们将存放 Docker 配置、环境变量文件以及后续可能用到的数据卷映射目录。

3. OpenClaw 核心部署与配置详解

3.1 通过 Docker Compose 一键部署 OpenClaw

OpenClaw 官方提供了 Docker 镜像,使用 Docker Compose 来定义和运行多容器应用是最清晰的方式。在 ~/openclaw 目录下,创建一个 docker-compose.yml 文件:

version: '3.8'

services:
  openclaw:
    image: ghcr.io/openclaw-ai/openclaw:latest
    container_name: openclaw
    restart: unless-stopped
    ports:
      - "10080:10080" # 将容器内的10080端口映射到宿主机的10080端口
    volumes:
      - ./data:/app/data # 持久化存储数据,如配置、对话历史
      - ./logs:/app/logs # 持久化存储日志
    environment:
      - TZ=Asia/Shanghai # 设置容器时区
      - OPENCLAW_HOST=0.0.0.0 # 监听所有网络接口
      - OPENCLAW_PORT=10080
    # 如果服务器内存较小,可以限制容器资源使用
    # deploy:
    #   resources:
    #     limits:
    #       memory: 1.5G
    #       cpus: '1.0'

这个配置做了几件事:拉取最新版镜像,设置容器自动重启,映射端口,将数据和日志目录挂载到宿主机防止丢失,并设置了一些基础环境变量。

保存文件后,在同一个目录下运行启动命令:

docker-compose up -d

-d 参数代表后台运行。首次执行会从 GitHub 容器仓库拉取镜像,可能需要一些时间。拉取完成后,容器会自动启动。你可以使用 docker-compose logs -f 来实时查看启动日志,确认没有报错。

3.2 初始访问与基础配置

当看到日志显示服务已在 10080 端口启动后,就可以通过浏览器访问了。访问地址是: http://你的服务器公网IP:10080

首次访问,通常会进入一个初始化设置页面。你可能需要设置管理员账号、密码,并配置初始的大模型连接。这里有一个常见的“坑”:如果你的服务器位于国内,直接连接 OpenAI 或 Anthropic 的官方 API 可能会因网络问题失败。OpenClaw 支持配置反向代理或使用国内可访问的 API 中转服务。

在初始化配置的“模型提供商”部分,如果你有可用的 OpenAI API Key,可以在 Base URL 处填写一个国内可访问的反代地址(如果有的话),并填入你的 API Key。如果暂时没有,也可以先跳过,OpenClaw 内置了一些基础的示例技能和对话能力,完成初始化后我们再来详细配置模型。

完成初始化,登录进入 OpenClaw 的主控制台。界面通常分为技能库、对话窗、工作流、模型配置等几个主要部分。我们先进入“模型设置”或类似的菜单。

3.3 配置核心:接入你的大语言模型

OpenClaw 的强大之处在于它能对接多种后端模型。对于个人使用,性价比最高的方案是部署本地模型。这里我推荐使用 Ollama 来在服务器本地运行开源模型。

1. 在服务器上部署 Ollama Ollama 是一个简化本地大模型运行的工具。我们在宿主机上安装它,而不是放在 Docker 里,这样模型文件管理更方便,且可以被多个服务调用。

# 一键安装脚本
curl -fsSL https://ollama.com/install.sh | sh
# 安装完成后,启动ollama服务
ollama serve &
# 注意:这样启动会在前台运行,建议配置为系统服务,下文会讲。

2. 拉取并运行一个轻量级模型 2GB 内存的服务器,运行 7B 参数的量化模型是可行的。例如,Llama 3 的 8B 指令微调版,或者 Qwen 的 7B 版本。以 Llama 3 8B 的 4-bit 量化版为例:

ollama pull llama3.1:8b-instruct-q4_K_M
# 拉取完成后,运行这个模型
ollama run llama3.1:8b-instruct-q4_K_M

首次 run 会进行一些初始化,你可以在交互式命令行里测试一下模型是否正常响应。测试成功后,按 Ctrl+C 退出交互模式,模型服务会在后台继续运行(默认在 11434 端口)。

3. 将 Ollama 模型配置到 OpenClaw Ollama 提供了兼容 OpenAI API 的接口。在 OpenClaw 的模型配置页面,添加一个新的模型:

  • 模型类型:选择 “OpenAI Compatible” 或 “Custom”。
  • 模型名称:自定义,如 “Local-Llama3-8B”。
  • API 地址:填写 http://host.docker.internal:11434/v1 。这里有个关键点:如果 OpenClaw 运行在 Docker 容器内,要访问宿主机的服务,不能直接用 127.0.0.1 localhost ,因为那指向的是容器内部。 host.docker.internal 这个特殊域名可以解析到宿主机的内部 IP。 如果这个域名不生效(在某些 Linux 环境下),你需要先使用 docker network inspect bridge 命令查看 Docker 网桥的网关 IP(通常是 172.17.0.1),然后将 API 地址改为 http://172.17.0.1:11434/v1
  • API Key:Ollama 默认不需要 API Key,留空即可。
  • 模型名称:填写你在 Ollama 中拉取的实际模型名,如 llama3.1:8b-instruct-q4_K_M

保存后,在 OpenClaw 的对话界面选择这个新配置的本地模型,就可以开始对话了。响应速度取决于服务器 CPU 性能和模型大小,第一次生成可能会慢一些,后续会有缓存加速。

实操心得:对于 2GB 内存的轻量服务器,运行 7B/8B 的 Q4_K_M 量化模型是极限。在模型生成文本时,使用 htop 命令观察,内存使用会接近占满。建议在 docker-compose.yml 中为 OpenClaw 容器设置内存限制(如 1.5G),为 Ollama 和系统本身留出一点余量,避免因内存不足(OOM)导致容器被系统杀死。

4. 进阶配置:持久化、优化与技能拓展

4.1 配置系统服务与持久化

为了让 Ollama 和 OpenClaw 在服务器重启后能自动运行,我们需要将它们配置为系统服务。

1. 配置 Ollama 为系统服务 Ollama 安装脚本通常会尝试创建服务。如果没有,可以手动创建。创建文件 /etc/systemd/system/ollama.service

[Unit]
Description=Ollama Service
After=network-online.target

[Service]
Type=simple
User=root
ExecStart=/usr/local/bin/ollama serve
Restart=always
RestartSec=3
Environment="OLLAMA_HOST=0.0.0.0" # 如果需要被外部访问(如同局域网的其它服务),可修改此项
Environment="OLLAMA_MODELS=/root/.ollama/models" # 模型存储路径

[Install]
WantedBy=multi-user.target

然后启用并启动服务:

sudo systemctl daemon-reload
sudo systemctl enable ollama
sudo systemctl start ollama
sudo systemctl status ollama # 查看状态

2. 确保 Docker Compose 服务自启 Docker Compose 本身可以通过 restart: unless-stopped 策略实现自启,但 Docker 服务必须在系统启动时运行。Docker 安装后默认已配置为自启。我们只需确保项目目录的 docker-compose.yml 在正确位置。更规范的做法是使用 systemd 来管理 Compose 项目,但对于个人小项目,上面的配置已足够可靠。

3. 数据备份 我们之前通过 volumes 映射了 ./data ./logs 目录。定期备份 ~/openclaw 整个目录即可。可以使用 cron 定时任务配合 tar rsync 将目录压缩并传输到其他存储位置。

4.2 性能优化与监控

轻量服务器资源紧张,优化很有必要。

1. Ollama 模型参数调整 运行 Ollama 时,可以指定并行处理数和上下文长度来平衡性能。编辑 ~/.ollama/config.json (如果不存在则创建):

{
  "num_parallel": 1, // 并行数,CPU核心少就设为1
  "num_ctx": 2048     // 上下文长度,降低可减少内存占用
}

修改后重启 Ollama 服务: sudo systemctl restart ollama

2. 使用 Swap 空间(虚拟内存) 当物理内存不足时,Swap 可以防止进程崩溃。为 2GB 内存的服务器添加 2GB 的 Swap 是合理的。

# 创建Swap文件
sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
# 永久生效,编辑 /etc/fstab,末尾添加一行
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
# 查看Swap状态
swapon --show

注意:Swap 使用硬盘空间,速度远慢于内存,这只是应急方案,不能替代物理内存。

3. 基础监控 安装 htop 可以直观查看 CPU、内存、Swap 使用情况: sudo apt install htop ,然后运行 htop 。关注 OpenClaw 和 Ollama 进程的资源消耗。

4.3 技能(Skill)探索与配置

OpenClaw 的 Skill 是其自动化能力的灵魂。它允许 AI 助手调用外部工具或 API。

1. 内置技能 OpenClaw 通常自带一些基础技能,如:

  • 网页搜索 :需要配置 Serper 或 SerpAPI 的 Key。
  • 天气预报 :需要配置和风天气等服务的 Key。
  • 计算器 时间 等基础工具。

你可以在技能商店或设置页面查看并启用它们,按照提示填入必要的 API 密钥即可。

2. 自定义技能进阶 对于开发者,可以编写自定义技能。这通常需要一些 Python 编程知识。技能本质是一个 HTTP 服务,接收 OpenClaw 的请求,执行特定操作(如调用某个内部系统 API、处理数据等),并返回结果。 OpenClaw 的文档会提供技能开发 SDK 和示例。基本流程是:

  • 在 OpenClaw 后台注册技能,填写技能名称、描述和 endpoint URL。
  • 在你的服务器上(或另一个容器内)用 Python Flask/FastAPI 编写一个服务,监听特定端口。
  • 实现技能逻辑,并确保其接口符合 OpenClaw 的技能调用规范。
  • 将你的技能服务地址(如 http://你的技能服务IP:端口 )配置到 OpenClaw 中。

例如,你可以写一个技能,让 AI 助手在接到指令时,去查询你服务器上的某个日志文件,或者触发一个备份脚本。

5. 安全加固、故障排查与日常维护

5.1 基础安全设置

服务器暴露在公网,安全是重中之重。

1. 修改 SSH 端口并禁用密码登录 编辑 SSH 配置文件: sudo nano /etc/ssh/sshd_config

  • 找到 #Port 22 ,取消注释并将 22 改为一个 1024-65535 之间的随机端口,如 Port 23456
  • 找到 PasswordAuthentication yes ,改为 PasswordAuthentication no 这步的前提是你已经将 SSH 公钥上传到服务器,否则会被锁在外面!
  • 找到 PermitRootLogin ,建议设置为 PermitRootLogin prohibit-password no

修改后重启 SSH 服务: sudo systemctl restart sshd 务必在重启前,用新的端口和密钥方式测试连接是否成功,保持当前连接窗口不要关闭,新开一个终端窗口测试。

2. 配置防火墙(UFW) Ubuntu 自带 UFW 防火墙,简化 iptables 操作。

sudo ufw allow 23456/tcp # 允许新的SSH端口
sudo ufw allow 10080/tcp # 允许OpenClaw Web端口
sudo ufw allow 11434/tcp # 如果Ollama需要被外部访问(通常不需要)
sudo ufw enable # 启用防火墙,默认拒绝所有入站
sudo ufw status verbose # 查看规则

3. 为 OpenClaw 配置反向代理与 HTTPS(可选但推荐) 直接通过 IP:10080 访问不够安全,也显得不专业。你可以使用 Nginx 或 Caddy 作为反向代理,并利用 Let‘s Encrypt 申请免费 SSL 证书,实现 HTTPS 加密访问。 以 Nginx 为例,安装后创建一个站点配置文件(如 /etc/nginx/sites-available/openclaw ):

server {
    listen 80;
    server_name your-domain.com; # 替换为你的域名

    location / {
        proxy_pass http://127.0.0.1:10080;
        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 X-Forwarded-Proto $scheme;
    }
}

然后启用站点并配置 SSL。如果你没有域名,这一步可以跳过,但务必确保 OpenClaw 的访问密码足够复杂。

5.2 常见问题与故障排查

在部署和使用过程中,你可能会遇到以下问题:

1. 访问 http://IP:10080 连接被拒绝或超时。

  • 检查防火墙 :确保服务器安全组和 UFW 都放行了 10080 端口。
  • 检查容器状态 :运行 docker-compose ps 查看 OpenClaw 容器是否处于 “Up” 状态。如果不是,运行 docker-compose logs 查看具体错误日志。
  • 检查端口映射 :确认 docker-compose.yml 中的端口映射是 "10080:10080" ,并且容器内的应用确实监听在 10080 端口。

2. OpenClaw 无法连接 Ollama 模型,报错 “Connection refused” 或 “Timeout”。

  • 检查 Ollama 服务状态 sudo systemctl status ollama
  • 检查网络连通性 :在 OpenClaw 容器内测试是否能访问宿主机的端口。可以进入容器: docker exec -it openclaw /bin/bash ,然后尝试 curl http://host.docker.internal:11434 。如果失败,尝试用宿主机的实际内网 IP(如 172.17.0.1)替换 host.docker.internal
  • 检查 Ollama 监听地址 :确保 Ollama 服务监听在 0.0.0.0 127.0.0.1 。如果是 127.0.0.1 ,则容器无法访问,需要修改 Ollama 启动环境变量 OLLAMA_HOST=0.0.0.0

3. 模型响应速度极慢,或对话中途中断。

  • 检查服务器资源 :运行 htop ,看是否是内存或 CPU 跑满。2GB 内存运行 7B 模型非常紧张,生成长文本时极易触发 OOM。考虑换用更小的模型(如 3B 参数),或使用更低比特的量化版本(如 Q2_K)。
  • 检查模型是否加载 :在宿主机运行 ollama list 查看模型是否已下载。运行 ollama run <模型名> 测试模型本身生成是否正常。
  • 查看日志 :分别查看 OpenClaw 容器日志 ( docker-compose logs openclaw ) 和 Ollama 服务日志 ( sudo journalctl -u ollama -f ),寻找错误信息。

4. 忘记 OpenClaw 管理员密码。 如果数据目录( ./data )是持久化的,密码信息通常存储在里面的数据库文件中。最直接的方法是重置。可以尝试删除或重命名 ./data 目录下的特定文件(如 sqlite.db ),然后重启 OpenClaw 容器,会重新进入初始化流程。 注意:这会丢失所有对话历史和配置! 操作前请备份 ./data 目录。

5.3 日常维护与升级

1. 日志查看

  • OpenClaw 应用日志: docker-compose logs -f openclaw
  • Ollama 日志: sudo journalctl -u ollama -f
  • 系统资源监控:定期运行 htop

2. 版本升级

  • OpenClaw :修改 docker-compose.yml 中的镜像标签为最新版本号(如 ghcr.io/openclaw-ai/openclaw:v1.2.0 ),然后运行 docker-compose pull && docker-compose up -d 。建议先查看官方 Release Notes,了解是否有不兼容的变更。
  • Ollama :升级命令很简单: ollama upgrade 。它会更新 Ollama 本体和所有已拉取的模型到最新版本。

3. 成本与资源监控 腾讯云轻量服务器 300GB 月流量,对于纯文本交互的 AI 助手来说完全够用,主要流量消耗在于拉取 Docker 镜像和模型文件。日常使用几乎不耗流量。关注服务器续费提醒,避免服务中断。

这个 99 元/年的 OpenClaw AI 助手方案,搭建起来后就是一个完全属于你、随时待命的智能伙伴。从技术探索到生产力工具,它的可玩性和实用性都非常高。最关键的是,整个过程你完全掌控,数据私密,成本可控。遇到问题多查日志、善用搜索引擎和社区,大部分坑都能跨过去。

更多推荐