发布时间:2026/8/16 22:17:49
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

相关新闻

2026/8/16 22:12:49

WorkBuddy AI智能体:从意图理解到任务自动化的桌面效率革命

1. 从“工具”到“同事”:WorkBuddy AI 桌面智能体的本质跃迁 最近几个月,我的工作流里多了一个“新同事”。它不占工位,不领薪水,但能帮我处理邮件、整理数据、生成周报,甚至在我开会时自动记录要点。这个“同事”就是…

2026/8/17 0:02:57

nslookup命令使用说明

个人建站,域名备案完成后,往往还要做域名解析服务,技术人员怎么能知道自己配置的DNS正确与否呢?NSLOOKUP查询域名信息的一个非常有用的命令,可以指定查询的类型,可以查到DNS记录的生存时间还可以指定使用哪…

2026/8/17 0:02:57

【原创唯一】基于SpringBoot+Vue的在线书店商城系统 课程设计/大作业/期末作业(源码+MySQL数据库+实验报告+PPT+远程部署)

摘要 电子商务与移动支付的普及,线上购书已成为高校师生及社会公众获取图书的重要方式。传统线下书店在图书检索、库存查询、订单跟踪等方面存在信息分散、效率较低等问题。本文设计并实现了一套基于 B/S 架构的网上书店系统,采用前后端分离模式&#xf…

2026/8/17 0:02:57

飞书局域网文件传输实战:3种方案实现高速点对点传输

1. 项目概述:为什么要在局域网内用飞书传文件? 飞书作为一款主流的协同办公套件,其核心功能是围绕云端协作设计的。无论是文档、表格还是文件,通常的分享逻辑都是“上传到云端 -> 生成链接 -> 分享给同事”。这个流程在互联…

2026/8/17 0:02:57

LabVIEW异步调用实战:解决界面卡顿与并行处理难题

1. 项目概述:为什么异步调用是LabVIEW进阶的必经之路如果你在LabVIEW里写过稍微复杂点的程序,尤其是涉及到界面响应、多任务并行或者硬件IO等待,大概率会遇到一个头疼的问题:程序“卡”住了。前面板点不动,进度条不更新…

2026/8/16 23:57:56

开发者如何高效利用GitHub日报:从信息筛选到工程实践

1. 项目日报的价值:为什么开发者需要关注每日精选 每天打开GitHub,面对海量的新项目、新提交和趋势榜单,你是不是也常常感到信息过载,无从下手?作为一个在开源社区摸爬滚打了十多年的老码农,我深知这种“选…

2026/8/16 0:00:35

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

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

2026/8/16 0:00:36

工业传感器与变送器详解:序章 从物理世界到工业数据

序章 从物理世界到工业数据 ——重新认识工业传感器与变送器 工业自动化系统正变得日益复杂。今天的工业现场早已不是简单的控制回路,而是由多层技术共同构成的立体体系:PLC、DCS、SCADA、MES、工业互联网、边缘计算与人工智能。控制系统可以执行复杂算法,工业网络可以实现…

2026/8/17 0:02:57

LabVIEW异步调用实战:解决界面卡顿与并行处理难题

1. 项目概述:为什么异步调用是LabVIEW进阶的必经之路如果你在LabVIEW里写过稍微复杂点的程序,尤其是涉及到界面响应、多任务并行或者硬件IO等待,大概率会遇到一个头疼的问题:程序“卡”住了。前面板点不动,进度条不更新…

2026/8/17 0:02:57

飞书局域网文件传输实战:3种方案实现高速点对点传输

1. 项目概述:为什么要在局域网内用飞书传文件? 飞书作为一款主流的协同办公套件,其核心功能是围绕云端协作设计的。无论是文档、表格还是文件,通常的分享逻辑都是“上传到云端 -> 生成链接 -> 分享给同事”。这个流程在互联…

2026/8/15 9:46:39

实测才敢推 AI论文网站 2026最新测评与推荐

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。一、综…

2026/8/16 16:53:03

2026必备!AI论文网站测评:最新推荐与深度对比

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

2026/8/15 9:46:30

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…