Linux 服务器部署 OpenClaw 最新最细教程(非 Docker 版):systemd 守护 + Nginx 反代 + TaoToken 配置骨架

发布时间:2026/9/27 16:56:38

Linux 服务器部署 OpenClaw 最新最细教程(非 Docker 版):systemd 守护 + Nginx 反代 + TaoToken 配置骨架 1. 为什么我放弃 Docker在 Linux 裸机上部署 OpenClawOpenClaw 是一个带实时控制面板的 AI 工具服务端能对接大模型通道、跑任务流、暴露 WebSocket 日志面板。官方给了 Docker 镜像一条docker run就能起来但我这次偏不用 Docker——原因很直接OpenClaw 跑起来之后对宿主机网络 I/O 和文件句柄的占用比较激进多一层容器网络转发WebSocket 偶发断流排查起来会多一层变量。裸机部署虽然配环境麻烦点但出问题的时候journalctl一看就知道是谁的锅。这篇教程面向的是手上有一台干净的 Ubuntu 22.04 服务器2 核 4G 就够跑通想用 systemd 把 OpenClaw 做成开机自启的守护服务前面挂 Nginx 做反向代理并且通过 TaoToken 统一管理模型 Key 和 API 通道的人。全程非 Docker命令可直接复制。我会把 systemd unit、Nginx server 块、config.toml 骨架都贴出来最后用systemctl status和curl两个动作确认服务真的活了、通道真的通了。环境交代一下Ubuntu 22.04 LTS 纯净版root 权限操作OpenClaw 装在/opt/openclaw服务监听127.0.0.1:8000。你的路径和端口可以不一样改的时候对应着改就行。2. 前置准备TaoToken 通道与 Key 的获取OpenClaw 本身是个壳真正干活的是背后接的模型通道。如果你直接往 config 里塞各家厂商的原始 Key后面换模型、加通道、做限额都得改配置文件很烦。我这次用 TaoToken 做统一入口一个 Key 走所有模型config.toml 里只写一个 base_url 和一个 api_key换模型只改模型名。操作路径是这样的打开官网 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 注册登录后进控制台。控制台地址是 https://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_contentconsoleutm_campaignrewrite 在里面能看到余额、用量和通道状态。然后去 API Keys 页面 https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi-keysutm_campaignrewrite 创建一个 Key复制出来存好这个就是待会儿要填进 config.toml 的api_key。API 的基础地址是https://taotoken.net/api注意这个地址后面不加任何 UTM 参数直接写进配置就行。如果你后面要跑长期编码任务或者 Agent 类的持续调用可以看一下 Coding Plan 页面 https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding-planutm_campaignrewrite 按套餐走比按量计费更可控。想先在网页上验证模型通不通可以用模型对话页 https://taotoken.net/chat?utm_sourcetaotoken_aicg_blog_endutm_contentchatutm_campaignrewrite 发一条消息试试确认 Key 有效再往下走。接入文档在 https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewrite 里面写了兼容 OpenAI 格式的调用方式OpenClaw 的 config 就是按这个格式填的。如果你用的是 Claude Code 那套 Anthropic 协议参考 https://taotoken.net/claudecode-anthropic?utm_sourcetaotoken_aicg_blog_endutm_contentclaudecode-anthropicutm_campaignrewrite 里的说明base_url 和 header 写法略有不同别混用。3. 基础环境与 OpenClaw 代码拉取先把系统包更新装好编译工具。OpenClaw 依赖 Python 3.10Ubuntu 22.04 自带的就是 3.10省了编译 Python 的功夫。但 pip 装某些 C 扩展的时候会调 gcc所以 build-essential 这些必须提前装不然报错能烦死你。apt update apt upgrade -y apt install -y git curl python3-venv python3-dev build-essential libssl-dev libffi-dev nginx代码放/opt下面建虚拟环境别直接往系统 Python 里装cd /opt git clone https://github.com/openclaw-project/openclaw.git cd openclaw python3 -m venv venv source venv/bin/activate pip install --upgrade pip pip install -r requirements.txt依赖装完后先别急着跑配置文件还没写。OpenClaw 默认读config/config.toml我们直接手写一份把 TaoToken 的通道填进去。3.1 config.toml 骨架在/opt/openclaw/config/下新建config.toml内容如下。注意base_url写 TaoToken 的 API 地址api_key填你刚才创建的那个 Keymodel按你实际要用的模型名填[server] host 127.0.0.1 port 8000 log_level info [llm] provider openai-compatible base_url https://taotoken.net/api api_key sk-你的TaoToken密钥 model gpt-4o-mini timeout 120 max_retries 3 [storage] data_dir ./data config_dir ./config [websocket] enabled true path /ws heartbeat_interval 30这里有个细节base_url结尾不要带/v1OpenClaw 内部会自己拼/v1/chat/completions。如果你填成https://taotoken.net/api/v1请求路径会变成/api/v1/v1/chat/completions直接 404。这个坑我踩过排查了半天。4. systemd 服务单元让 OpenClaw 开机自启直接在终端python main.py start跑SSH 一断进程就没了。必须挂到 systemd 里。新建/etc/systemd/system/openclaw.service[Unit] DescriptionOpenClaw Service Afternetwork.target [Service] Typesimple WorkingDirectory/opt/openclaw ExecStart/opt/openclaw/venv/bin/python main.py start Restartalways RestartSec5 Userroot LimitNOFILE65536 EnvironmentPYTHONUNBUFFERED1 [Install] WantedBymulti-user.targetWorkingDirectory这行是关键。systemd 启动服务时默认工作目录是/而 OpenClaw 代码里用相对路径读./config/config.toml不指定工作目录就会报FileNotFoundError。我第一次部署就是漏了这行状态红彤彤的failedjournalctl -xeu openclaw.service一看才知道是路径问题。LimitNOFILE65536是防止 WebSocket 连接多了之后文件句柄不够用。Restartalways配合RestartSec5保证进程崩了 5 秒后自动拉起。写完重载并启动systemctl daemon-reload systemctl enable openclaw systemctl start openclaw systemctl status openclaw看到Active: active (running)就对了。如果还是 failed直接看日志journalctl -xeu openclaw.service -n 505. Nginx 反向代理WebSocket 必须加的两行后端跑在127.0.0.1:8000对外得走 Nginx。新建/etc/nginx/sites-available/openclawserver { listen 80; server_name your_domain.com; location / { proxy_pass http://127.0.0.1:8000; 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_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection upgrade; proxy_read_timeout 3600s; proxy_send_timeout 3600s; } }proxy_http_version 1.1、Upgrade、Connection upgrade这三行是 WebSocket 的命门。Nginx 默认用 HTTP/1.0 转发不带 Upgrade 头后端的 WS 握手直接失败面板上的实时日志会一直转圈然后 502。我第一次配的时候只写了普通 proxy_pass页面能打开但日志面板死活不刷新F12 一看 WS 连接 101 失败加上这三行就好了。proxy_read_timeout 3600s是防止 WS 连接空闲一会儿就被 Nginx 掐断。默认 60 秒实时面板如果没数据推送就会被踢体验很差。启用配置并重载ln -s /etc/nginx/sites-available/openclaw /etc/nginx/sites-enabled/ nginx -t systemctl reload nginxnginx -t必须返回syntax is ok和test is successful才能 reload不然配置有语法错误会导致 Nginx 起不来。6. 验证请求curl 确认通道真的通了服务状态是 running 不代表模型通道能用。分两步验证。第一步确认 OpenClaw 本地端口在监听curl -s http://127.0.0.1:8000/health返回{status:ok}之类的 JSON 就说明服务本身活着。第二步确认 TaoToken 通道能通。直接用 curl 打 TaoToken 的 API模拟 OpenClaw 内部的调用方式curl -s https://taotoken.net/api/v1/chat/completions \ -H Authorization: Bearer sk-你的TaoToken密钥 \ -H Content-Type: application/json \ -d { model: gpt-4o-mini, messages: [{role: user, content: ping}], max_tokens: 10 }返回里带choices字段和内容就说明 Key 有效、通道正常。如果返回 401检查 Key 有没有复制错返回 404检查 base_url 是不是多写了/v1返回 429说明额度或频率限制去控制台看一下。第三步通过 Nginx 走一遍完整链路curl -s http://your_domain.com/health和本地 curl 返回一致说明 Nginx 反代没问题。然后浏览器打开http://your_domain.com看控制面板能不能加载、实时日志面板有没有数据滚动。日志滚动起来整条链路就通了。7. 本篇常见错误排查systemd 启动报FileNotFoundError: config/config.toml九成是漏了WorkingDirectory/opt/openclaw。systemd 默认工作目录是/相对路径全找不到。加上这行daemon-reload后重启。Nginx 502 Bad Gateway先curl http://127.0.0.1:8000/health确认后端活着。后端活着但 Nginx 502检查proxy_pass的端口对不对以及 Nginx 有没有权限访问。SELinux 开启的系统还要setsebool -P httpd_can_network_connect 1。WebSocket 连接 101 失败或面板日志不刷新检查 Nginx 配置里有没有proxy_http_version 1.1、Upgrade、Connection upgrade这三行。缺任何一行 WS 都握手失败。TaoToken 返回 404base_url写成了https://taotoken.net/api/v1。改成https://taotoken.net/api让 OpenClaw 自己拼路径。TaoToken 返回 401Key 复制时带了空格或者 Key 被删了。去 API Keys 页面重新生成一个注意复制完整。服务跑一会儿就挂journalctl看到 OOM2 核 4G 的机器如果同时跑多个模型请求内存可能不够。在 systemd unit 里加MemoryMax3G限制或者去 Coding Plan 页面看看有没有更适合持续调用的方案。改了 config.toml 不生效OpenClaw 不会热加载配置改完必须systemctl restart openclaw。改 Nginx 配置则是systemctl reload nginx不用重启。整套跑下来systemd 管进程、Nginx 管入口、TaoToken 管通道三层各司其职。后面要换模型只改 config.toml 里的model字段要加通道去 TaoToken 控制台操作不用动服务器上的任何配置。这套骨架搭好之后OpenClaw 的升级就是git pull加pip install -r requirements.txt再systemctl restart openclaw三行命令的事。
延伸阅读

更多相关文章

2026/9/27 16:56:38

避开网站域名最便宜陷阱:3招搞定源码下载安全

避开网站域名最便宜陷阱:3招搞定源码下载安全 网站做好了没人访问,往往不是因为内容差,而是域名被黑了,或者源码里埋了后门。很多老板为了省那点钱,去搜“网站域名最便宜”,结果买到了被污染的域名,或者从不明渠道“源码下载”了带毒的模板。今天不聊…

2026/9/27 16:51:38

商务网站的可行性分析包括2026最新

新手入门看这篇:商务网站可行性分析包括哪些坑? 域名服务器搞不懂,这是90%新手做商务网站时踩的第一个大坑。别急着买服务器,先搞懂商务网站的可行性分析包括哪些硬核指标。很多新手入门朋友一上来就问“买什么配置便宜”,却忘了问“我的业务到底需不…

2026/9/27 17:46:40

潍坊网站建设策划方案避坑指南:5个实战案例教你搞定流量

潍坊网站建设策划方案避坑指南:5个实战案例教你搞定流量 很多老板花大几万做个官网,上线后天天盯着后台数据发呆,心里直打鼓:网站做好了没人访问,钱是不是打水漂了?这种焦虑我太懂了。在潍坊做了十年网站开发,我见过太多因为前期策划方案没做好,导致…

2026/9/27 17:46:40

开发区建网站外包防挂马指南 3套免费工具实操

开发区建网站外包防挂马指南 3套免费工具实操 网站被黑挂马,后台正常但前台全是色情广告,浏览器直接标红警告。这种时刻,90%的站长第一反应是重装系统,结果第二天又被黑。别慌,这不是玄学,是代码漏洞在作祟。…

2026/9/27 17:41:40

做钓鱼网站教程视频教程哪家好看懂这5点

做钓鱼网站教程视频教程哪家好看懂这5点 很多独立站长刚入行时,脑子里全是“自己不会代码想做网站”的焦虑。网上搜一圈,全是卖课的、卖源码的,或者那些晦涩难懂的技术博客,看得人头大。这时候你会发现,搜“做钓鱼网站教程视频教程哪家好”的人,其实心…

2026/9/27 0:00:45

东莞市品牌网站建设报价常见报错与解决

东莞品牌网站建设报价单背后:一份保姆级建站教程避坑实录 网站做好了没人访问,这大概是很多老板最头疼的事。花了大几万做的品牌站,上线后流量惨淡,比路边摊还冷清。别急着骂外包公司,很多“东莞品牌网站建设报价”里藏着不少猫腻,比如用模板站冒充定制…

2026/9/27 0:00:45

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解 【免费下载链接】spirula-studio Cross-vendor 3D Gaussian Splatting trainer - video to splat to mesh, Vulkan or CUDA. 项目地址: https://gitcode.com/GitHub_Trending/sp/spirula-studio Sp…

2026/9/27 0:00:45

SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南 模板网站太丑不够用?别急着加滤镜,那是治标不治本。很多老板盯着后台流量掉得眼红,却还在纠结首页Banner的圆角是不是3像素。这就像穿着西装去挖土,姿势不对,努力白费。我整理这份 速查手册…

2026/9/27 0:00:45

东莞市品牌网站建设报价常见报错与解决

东莞品牌网站建设报价单背后:一份保姆级建站教程避坑实录 网站做好了没人访问,这大概是很多老板最头疼的事。花了大几万做的品牌站,上线后流量惨淡,比路边摊还冷清。别急着骂外包公司,很多“东莞品牌网站建设报价”里藏着不少猫腻,比如用模板站冒充定制…

2026/9/27 0:00:45

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解 【免费下载链接】spirula-studio Cross-vendor 3D Gaussian Splatting trainer - video to splat to mesh, Vulkan or CUDA. 项目地址: https://gitcode.com/GitHub_Trending/sp/spirula-studio Sp…

2026/9/27 0:00:45

SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南 模板网站太丑不够用?别急着加滤镜,那是治标不治本。很多老板盯着后台流量掉得眼红,却还在纠结首页Banner的圆角是不是3像素。这就像穿着西装去挖土,姿势不对,努力白费。我整理这份 速查手册…

2026/9/25 20:55:38

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/26 19:58:38

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/25 18:34:56

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑