OpenClaw 一键初始化脚本:安装后一条命令就上线
github项目地址scripts/init-openclaw.sh at main · xztjhs/scripts · GitHub# OpenClaw 一键初始化脚本从零到上线就一条命令## 背景OpenClaw 是一个开源的 AI Agent 框架部署在自己的服务器上通过 Gateway 提供服务。但每次新装一台机器都要手动跑十来条 openclaw config set还要处理 TLS 证书、认证 token、可信 IP 白名单……繁琐且容易出错。于是写了个 bash 脚本 init-openclaw.sh一条命令完成全部初始化配置。---## 脚本做了什么按顺序完成 4 件事### 1. 交互式输入服务器 IP脚本启动后提示输入服务器 IP强制校验格式IPv4 四段式。留空直接终止不给默认值——防止误配到错误地址。请输入服务器 IP: 192.168.254.196✅ 服务器 IP: 192.168.254.196### 2. Token 自动管理认证 token 的处理逻辑- ~/.openclaw/tokens **存在** → 读取首行校验是否为 48 位十六进制字符串openssl rand -hex 24 的标准输出格式。格式不对直接终止提示人工检查。- ~/.openclaw/tokens **不存在** → 自动生成新 token写入文件权限设为 600。- 文件存在但**内容为空** → 同上生成新 token 并写入。这个 token 会同时设置到 gateway.auth.token 和 gateway.remote.token客户端连接时用同一个。### 3. TLS 证书利旧或新建检查 ~/.openclaw/tls/server.crt 和 ~/.openclaw/tls/server.key- **都存在** → 直接利旧跳过生成步骤- **任一不存在** → 用 openssl req -x509 生成自签证书SAN 包含 127.0.0.1 和输入的服务器 IP有效期 365 天### 4. 执行 OpenClaw 配置按顺序执行以下配置项IP 和 token 全程通过变量替换| 配置项 | 值 ||---|---|| gateway.mode | local || gateway.bind | lan || gateway.auth.token | 从 tokens 文件读取或自动生成 || gateway.remote.token | 同上 || gateway.tls.enabled | true || gateway.tls.autoGenerate | false || gateway.tls.certPath | ~/.openclaw/tls/server.crt || gateway.tls.keyPath | ~/.openclaw/tls/server.key || gateway.controlUi.allowedOrigins | localhost、127.0.0.1、输入IP 三者 的 https://*:18789 || gateway.trustedProxies | [127.0.0.1, ::1] |---## 使用方法### 前置条件- 已安装 openclaw CLI 并在 PATH 中- 已安装 openssl- 对 ~/.openclaw/ 目录有读写权限### 运行bashbash init-openclaw.sh### 典型输出请输入服务器 IP: 192.168.254.196✅ 服务器 IP: 192.168.254.196✅ tokens 文件不存在已生成新 token 并写入 /home/user/.openclaw/tokens✅ TLS 证书已生成 开始配置 OpenClaw ✅ gateway.mode local✅ gateway.bind lan✅ gateway.auth.token ***✅ gateway.remote.token ***✅ gateway.tls.enabled true✅ gateway.tls.autoGenerate false✅ gateway.tls.certPath /home/user/.openclaw/tls/server.crt✅ gateway.tls.keyPath /home/user/.openclaw/tls/server.key✅ gateway.controlUi.allowedOrigins [localhost, 127.0.0.1, 192.168.254.196]✅ gateway.trustedProxies [127.0.0.1, ::1] 配置完成 服务器 IP: 192.168.254.196Token 文件: /home/user/.openclaw/tokensTLS 证书: /home/user/.openclaw/tls/server.crtTLS 私钥: /home/user/.openclaw/tls/server.key⚠️ 记得重启 gateway 使配置生效: openclaw gateway restart最后重启 Gateway 即可bashopenclaw gateway restart---## 安全设计说明- **Token 文件权限 600**只有文件所有者可读写防止其他用户窃取- **Token 格式校验**48 位十六进制防止误写入随意内容导致认证异常- **TLS 证书利旧**已有证书不会被覆盖方便迁移和批量部署- **set -euo pipefail**脚本遇到任何错误立即停止不会带着错误继续往下跑---## 完整脚本bash#!/usr/bin/env bashset -euo pipefail# # OpenClaw 初始化脚本# 用法: bash init-openclaw.sh# # ---------- 1. 输入服务器 IP ----------read -rp 请输入服务器 IP: SERVER_IPif [[ -z $SERVER_IP ]]; thenecho ❌ 未输入服务器 IP脚本终止exit 1fi# 简单校验 IP 格式if ! [[ $SERVER_IP ~ ^[0-9]{1,3}(\.[0-9]{1,3}){3}$ ]]; thenecho ❌ IP 格式不合法: $SERVER_IPexit 1fiecho ✅ 服务器 IP: $SERVER_IP# ---------- 2. Token 处理 ----------TOKENS_FILE$HOME/.openclaw/tokensif [[ -f $TOKENS_FILE ]]; then# 读取文件内容取第一行非空AUTH_TOKEN$(grep -m1 -v ^$ $TOKENS_FILE | tr -d [:space:])if [[ -z $AUTH_TOKEN ]]; thenAUTH_TOKEN$(openssl rand -hex 24)echo $AUTH_TOKEN $TOKENS_FILEchmod 600 $TOKENS_FILEecho ✅ tokens 文件为空已生成新 token 并写入elif [[ ! $AUTH_TOKEN ~ ^[0-9a-f]{48}$ ]]; thenecho ❌ $TOKENS_FILE 首行内容不符合 token 格式期望 48 位十六进制字符串echo ❌ 请检查 $TOKENS_FILE 内容exit 1elseecho ✅ 从 $TOKENS_FILE 读取已有 tokenfielseAUTH_TOKEN$(openssl rand -hex 24)mkdir -p $HOME/.openclawecho $AUTH_TOKEN $TOKENS_FILEchmod 600 $TOKENS_FILEecho ✅ tokens 文件不存在已生成新 token 并写入 $TOKENS_FILEfi# ---------- 3. TLS 证书处理 ----------TLS_DIR$HOME/.openclaw/tlsCERT_FILE$TLS_DIR/server.crtKEY_FILE$TLS_DIR/server.keyif [[ -f $CERT_FILE -f $KEY_FILE ]]; thenecho ✅ TLS 证书已存在利旧: $CERT_FILE / $KEY_FILEelseecho ⚠️ TLS 证书不存在重新生成...mkdir -p $TLS_DIRopenssl req -x509 \-newkey rsa:2048 \-keyout $KEY_FILE \-out $CERT_FILE \-days 365 \-nodes \-subj /CNopenclaw \-addext subjectAltNameIP:127.0.0.1,IP:${SERVER_IP}echo ✅ TLS 证书已生成fi# ---------- 4. 执行 OpenClaw 配置 ----------echo echo 开始配置 OpenClaw openclaw config set gateway.mode localecho ✅ gateway.mode localopenclaw config set gateway.bind lanecho ✅ gateway.bind lanopenclaw config set gateway.auth.token $AUTH_TOKENecho ✅ gateway.auth.token ***openclaw config set gateway.remote.token $AUTH_TOKENecho ✅ gateway.remote.token ***openclaw config set gateway.tls.enabled trueecho ✅ gateway.tls.enabled trueopenclaw config set gateway.tls.autoGenerate falseecho ✅ gateway.tls.autoGenerate falseopenclaw config set gateway.tls.certPath $CERT_FILEecho ✅ gateway.tls.certPath $CERT_FILEopenclaw config set gateway.tls.keyPath $KEY_FILEecho ✅ gateway.tls.keyPath $KEY_FILEopenclaw config set gateway.controlUi.allowedOrigins \[\https://localhost:18789\, \https://127.0.0.1:18789\, \https://${SERVER_IP}:18789\] \--jsonecho ✅ gateway.controlUi.allowedOrigins [localhost, 127.0.0.1, ${SERVER_IP}]openclaw config set gateway.trustedProxies [127.0.0.1, ::1]echo ✅ gateway.trustedProxies [127.0.0.1, ::1]echo echo 配置完成 echo 服务器 IP: $SERVER_IPecho Token 文件: $TOKENS_FILEecho TLS 证书: $CERT_FILEecho TLS 私钥: $KEY_FILEecho echo ⚠️ 记得重启 gateway 使配置生效: openclaw gateway restart---## 小结脚本本身不复杂但解决了几个实际痛点- **重复配置**10 条命令缩成一次交互- **Token 管理**不再硬编码自动生成 持久化 格式校验- **证书管理**利旧优先避免覆盖已有证书- **安全**set -euo pipefail 文件权限控制适合在多机部署或重装场景下复用。有问题欢迎留言交流。bash脚本具体内容#!/usr/bin/env bashset -euo pipefail# # OpenClaw 初始化脚本# 用法: bash init-openclaw.sh# # ---------- 1. 输入服务器 IP ----------read -rp 请输入服务器 IP: SERVER_IPif [[ -z $SERVER_IP ]]; thenecho ❌ 未输入服务器 IP脚本终止exit 1fi# 简单校验 IP 格式if ! [[ $SERVER_IP ~ ^[0-9]{1,3}(\.[0-9]{1,3}){3}$ ]]; thenecho ❌ IP 格式不合法: $SERVER_IPexit 1fiecho ✅ 服务器 IP: $SERVER_IP# ---------- 2. Token 处理 ----------TOKENS_FILE$HOME/.openclaw/tokensif [[ -f $TOKENS_FILE ]]; then# 读取文件内容取第一行非空AUTH_TOKEN$(grep -m1 -v ^$ $TOKENS_FILE | tr -d [:space:])if [[ -z $AUTH_TOKEN ]]; thenAUTH_TOKEN$(openssl rand -hex 24)echo $AUTH_TOKEN $TOKENS_FILEchmod 600 $TOKENS_FILEecho ✅ tokens 文件为空已生成新 token 并写入elif [[ ! $AUTH_TOKEN ~ ^[0-9a-f]{48}$ ]]; thenecho ❌ $TOKENS_FILE 首行内容不符合 token 格式期望 48 位十六进制字符串echo ❌ 请检查 $TOKENS_FILE 内容exit 1elseecho ✅ 从 $TOKENS_FILE 读取已有 tokenfielseAUTH_TOKEN$(openssl rand -hex 24)mkdir -p $HOME/.openclawecho $AUTH_TOKEN $TOKENS_FILEchmod 600 $TOKENS_FILEecho ✅ tokens 文件不存在已生成新 token 并写入 $TOKENS_FILEfi# ---------- 3. TLS 证书处理 ----------TLS_DIR$HOME/.openclaw/tlsCERT_FILE$TLS_DIR/server.crtKEY_FILE$TLS_DIR/server.keyif [[ -f $CERT_FILE -f $KEY_FILE ]]; thenecho ✅ TLS 证书已存在利旧: $CERT_FILE / $KEY_FILEelseecho ⚠️ TLS 证书不存在重新生成...mkdir -p $TLS_DIRopenssl req -x509 \-newkey rsa:2048 \-keyout $KEY_FILE \-out $CERT_FILE \-days 365 \-nodes \-subj /CNopenclaw \-addext subjectAltNameIP:127.0.0.1,IP:${SERVER_IP}echo ✅ TLS 证书已生成fi# ---------- 4. 执行 OpenClaw 配置 ----------echo echo 开始配置 OpenClaw openclaw config set gateway.mode localecho ✅ gateway.mode localopenclaw config set gateway.bind lanecho ✅ gateway.bind lanopenclaw config set gateway.auth.token $AUTH_TOKENecho ✅ gateway.auth.token ***openclaw config set gateway.remote.token $AUTH_TOKENecho ✅ gateway.remote.token ***openclaw config set gateway.tls.enabled trueecho ✅ gateway.tls.enabled trueopenclaw config set gateway.tls.autoGenerate falseecho ✅ gateway.tls.autoGenerate falseopenclaw config set gateway.tls.certPath $CERT_FILEecho ✅ gateway.tls.certPath $CERT_FILEopenclaw config set gateway.tls.keyPath $KEY_FILEecho ✅ gateway.tls.keyPath $KEY_FILEopenclaw config set gateway.controlUi.allowedOrigins \[\https://localhost:18789\, \https://127.0.0.1:18789\, \https://${SERVER_IP}:18789\] \--jsonecho ✅ gateway.controlUi.allowedOrigins [localhost, 127.0.0.1, ${SERVER_IP}]openclaw config set gateway.trustedProxies [127.0.0.1, ::1]echo ✅ gateway.trustedProxies [127.0.0.1, ::1]echo echo 配置完成 echo 服务器 IP: $SERVER_IPecho Token 文件: $TOKENS_FILEecho TLS 证书: $CERT_FILEecho TLS 私钥: $KEY_FILEecho echo ⚠️ 记得重启 gateway 使配置生效: openclaw gateway restart

相关新闻

散户为什么总是亏钱?我用 Python 模拟了 5 种典型操作,答案很残酷

散户为什么总是亏钱?我用 Python 模拟了 5 种典型操作,答案很残酷

A 股有个广为流传的说法:“七亏两平一赚”。意思是 70% 的散户在亏钱,20% 不赚不亏,只有 10% 赚到了钱。 但大多数亏钱的人并不觉得自己做错了什么。他们会说:“大盘不好”、“庄家太狡猾”、“运气不好刚好买在高点”。 真的是…

2026/8/16 22:17:48 阅读更多 →
Mac本地部署OpenClaw AI助手:摆脱Token焦虑,打造私有化大模型对话平台

Mac本地部署OpenClaw AI助手:摆脱Token焦虑,打造私有化大模型对话平台

1. 项目概述:从Token焦虑到本地AI助手的解放之路 如果你是一名开发者、产品经理,或者任何需要频繁与AI对话来获取灵感、调试代码、撰写文档的从业者,最近几个月大概率被同一个问题困扰过:Token又用完了。无论是主流闭源模型高昂的…

2026/8/16 22:16:47 阅读更多 →
OpenClaw上下文窗口压缩实战:滑动窗口、摘要记忆与RAG技术解析

OpenClaw上下文窗口压缩实战:滑动窗口、摘要记忆与RAG技术解析

1. 项目概述:当AI智能体遇上“记忆”瓶颈 最近在折腾本地AI智能体部署的朋友,估计没少为“上下文窗口”这事儿头疼。你兴冲冲地给OpenClaw接上了最新的Llama 3.1 405B大模型,准备让它帮你处理一份几十页的PDF报告,结果聊到第三页&…

2026/8/16 22:16:47 阅读更多 →

最新新闻

AI短剧制作实战指南:从Stable Diffusion到SadTalker的全流程拆解

AI短剧制作实战指南:从Stable Diffusion到SadTalker的全流程拆解

大家好,我是专注于AI应用实战的技术博主。最近,AI短剧以其惊人的制作效率和创意潜力,成为了内容创作领域的新风口。无论是个人创作者还是小型工作室,都希望能借助AI工具快速入局。然而,面对市面上繁杂的工具、零散的教…

2026/8/18 1:52:46 阅读更多 →
Qwen3.8 27B动态GGUF量化版本地部署实战指南

Qwen3.8 27B动态GGUF量化版本地部署实战指南

最近在本地部署大语言模型时,很多开发者都遇到了显存不足和推理速度慢的瓶颈。特别是像 Qwen3.8 27B 这样的中大型模型,对硬件资源的要求相当高。本文将围绕Atomic 发布的 Qwen3.8 27B 动态 GGUF 量化版,为你提供一份从概念理解到本地部署、再…

2026/8/18 1:52:46 阅读更多 →
Dart中的Sealed类:类型安全与模式匹配实践

Dart中的Sealed类:类型安全与模式匹配实践

1. 什么是Sealed类?在Dart语言中,Sealed类(密封类)是一种特殊的抽象类,它通过限制继承层级来提供更严格的类型安全。简单来说,Sealed类定义了一个有限的、已知的子类集合,编译器能够识别这些子类…

2026/8/18 1:52:46 阅读更多 →
8.4 工作流九个节点的实现过程

8.4 工作流九个节点的实现过程

8.4.1 节点1:开始节点与字段约束 开始节点定义了整个工作流的输入接口。本项目共定义5个输入字段: keyword(行业关键词,必填):例如“AI+金融”“新能源汽车“,是整条流水线的驱动器…

2026/8/18 1:52:46 阅读更多 →
手把手用unnpk解包网易游戏NPK文件:从编译到提取阴阳师资源的完整路线

手把手用unnpk解包网易游戏NPK文件:从编译到提取阴阳师资源的完整路线

手把手用unnpk解包网易游戏NPK文件:从编译到提取阴阳师资源的完整路线 【免费下载链接】unnpk 解包网易游戏NeoX引擎NPK文件,如阴阳师、魔法禁书目录。 项目地址: https://gitcode.com/gh_mirrors/un/unnpk 你一定遇过这种场景:游戏更…

2026/8/18 1:52:46 阅读更多 →
商照轨道灯口碑哪家强?这些厂商名声真响亮!

商照轨道灯口碑哪家强?这些厂商名声真响亮!

商照轨道灯口碑王:5年光衰不足5%,客户复购超70%在商业照明领域,轨道灯一直是商铺、展厅、办公空间的重点照明利器。面对市场上“雷士、三雄极光”等一众大牌,采购方往往陷入选择困境:商照轨道灯口碑哪家强?…

2026/8/18 1:51:46 阅读更多 →

日新闻

告别逐帧截图:用 extract-video-ppt 快速提取视频中的 PPT 并一键导出 PDF

告别逐帧截图:用 extract-video-ppt 快速提取视频中的 PPT 并一键导出 PDF

告别逐帧截图:用 extract-video-ppt 快速提取视频中的 PPT 并一键导出 PDF 【免费下载链接】extract-video-ppt extract the ppt in the video 项目地址: https://gitcode.com/gh_mirrors/ex/extract-video-ppt 如果你还停留在"看网课 不停暂停 截图 …

2026/8/18 0:00:57 阅读更多 →
思源宋体TTF一站式上手:7个字重免费商用,从下载到上线的完整走查

思源宋体TTF一站式上手:7个字重免费商用,从下载到上线的完整走查

思源宋体TTF一站式上手:7个字重免费商用,从下载到上线的完整走查 【免费下载链接】source-han-serif-ttf Source Han Serif TTF 项目地址: https://gitcode.com/gh_mirrors/so/source-han-serif-ttf 你是不是也经历过这种时刻:设计稿里…

2026/8/18 0:00:58 阅读更多 →
华硕笔记本控制权回收指南:GHelper 如何用一个 10MB 文件替代 Armoury Crate

华硕笔记本控制权回收指南:GHelper 如何用一个 10MB 文件替代 Armoury Crate

华硕笔记本控制权回收指南:GHelper 如何用一个 10MB 文件替代 Armoury Crate 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops with nearly the same functionality. Works with ROG Zephyrus, Flow, TUF, Strix, Scar, ProArt, …

2026/8/18 0:00:59 阅读更多 →

周新闻

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

如果你是一名开发者,最近可能已经感受到了AI大模型正在从“玩具”变成“生产力工具”的强烈信号。从代码补全到智能Agent,从本地部署到云端API,我们正处在一个技术栈快速重构的节点。然而,面对层出不穷的模型、框架和工具&#xf…

2026/8/17 2:58:27 阅读更多 →
工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

第四篇:反射——高频能量撞墙之后会发生什么? —— 你以为信号已经过去了,其实它正在回来打你 老Q的现场笔记 第五季,我们正式进入工业神经系统层。这里不再是单个设备的战斗,而是整个工厂“经脉”层面的秩序之战。从这一篇开始,你将第一次看清:看似简单的信号传播,背…

2026/8/17 2:58:30 阅读更多 →
【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

2026/8/17 2:58:32 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/17 18:54:37 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/17 18:55:16 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/17 18:55:55 阅读更多 →