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 ComposeDocker 能保证环境一致性,避免“在我机器上好好的”这种问题。执行以下命令安装 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 pip3. 准备项目目录与配置文件为 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. 在服务器上部署 OllamaOllama 是一个简化本地大模型运行的工具。我们在宿主机上安装它,而不是放在 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 模型配置到 OpenClawOllama 提供了兼容 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 助手方案,搭建起来后就是一个完全属于你、随时待命的智能伙伴。从技术探索到生产力工具,它的可玩性和实用性都非常高。最关键的是,整个过程你完全掌控,数据私密,成本可控。遇到问题多查日志、善用搜索引擎和社区,大部分坑都能跨过去。