本文详细指导如何通过三步在手机端部署专属OpenClaw,重点解决内网穿透与安全问题。教程包含使用Cloudflare免费映射公网、对OpenClaw进行二次开发增加登录验证、以及配置域名审核的全流程操作,适合具备基础开发能力、希望低成本私有化部署AI助手的个人用户。
Tags:
点击下方,关注后台回复【666】,免费领取【AI学习礼包】
大家好,我是陈凡,开工三天了,是不是工作也紧张起来了呀,还得注意适度的休息呀!
今天下午刚刚测试完 MiniMax 的 MaxClaw,就有一个朋友着急忙慌的问我:微信接入 OpenClaw 可不可行呀?
答案是不太行,有很多大佬是这样做的,但是失败和封号的风险很高,暂时不建议尝试的,企业微信也可以接入,但单单一个子域名验证就拦截了大部分的个人玩家。
那这么说飞书不错吧 ,飞书配置简单,还能通过多个 机器人bot 相互沟通,工作效率杠杠的 ,但也要注意这是有额度的,使用完了就得付费喽!
单单是一个API token 费用大家都绞尽脑汁的想解决方法,怎么还可能为其他的费用而发愁呢?
今天我就和大家一起三步搭建一个专属你的手机端 OpenClaw,开始前请带着以下两点去看文章,会更好理解:
1、内网穿透:既然是把私有化的部署放在互联网上访问,就必须突破内网限制,怎样做到免费好用?
2、安全考量:OpenClaw 的权限相当高,突然放到互联网上,可能会让别人搜索到从而给你搞破坏,该怎么办?
下面所有操作都以一台 Mac mini 为例进行操作。
第一步、给OpenClaw加层保险
用过 OpenClaw-webui 的朋友肯定都知道,通过 webui 登录只需要 Token 值与 openclaw.json 中的网关值对应上就可以正常使用了,这放到互联网上肯定是一个不安全因素,所以为了没有后顾之忧,我们给OpenClaw加层保险。
这里我们会稍稍地使用 AI 编程对 OpenClaw 的源码进行一点二次开发。
1、使用 Git 下载 OpenClaw 源码
我们使用以下命令:
# 拉取代码git clone https://github.com/openclaw/openclaw.git
2、AI 编程
代码拉下来后,你可以使用你擅长的编程工具,这里使用的是 Kimi Code,完成两次对话即可:
第一次、输入\init,让 Kimi 先了解项目生成 AGENTS.md 文件
第二次、输入完整的开发需求
我们输入以下提示词:
这是 OpenClaw.ai 的项目想必你已经了解,我准备做这么几件事,你来帮我实现,实现后你来进行验证:一、实现内容:1、硬性要求:以下设计的所有页面必须根据 OpenClaw web-ui 的样式,同时具备自适应(手机和 PC)的特性。2、设计一个登录页面,要有 OpenClaw 的 Logo,页面正中间的标题是"FanClaw",正中间下方有用户名、密码和验证码输入框、以及提交按钮,验证码使用基于 Canvas 的图形验证码组件。3、根据OpenClaw chat 的沟通页面,复刻一个新的页面路由是fanchat,所有页面功能都与原来的 chat 页面相同,但是布局时要注意在复刻 chat布局的情况下,最下方调整输入框与 New session 和 Send 按钮的排列这三个元素都必须满足自适应设计,在小分辨率时输入框可以单独占据一行,fanchat页面不必显示chat 上的菜单栏,只需要专注沟通即可,但需要加入一个"dashboard" 按钮,点击即可切换到原chat 页面,其他都不做任何调整。4、生成.yaml 配置,这里需要配置登录的用户名、密码和token 。二、开发逻辑:1、如果访问的 URL 地址是 127.0.0.1或者 localhost 地址时,正常按照原有程序直接跳转到 chat页面以 token 来进行验证是否正常,如果非这两个地址则直接跳转到登录页面。2、在登录页面提交后从.yaml 中取出用户名、密码进行对比,如果正确,就登录成功且生成浏览器session,保留 72 小时,每次进入此登录页面时验证session,session 没过期且正确时,正常完成登录跳转到fanchat页面,同时,如果 session 过期或错误,直接退出到登录页;如果不正确则返回用户名密码错误且重新验证验证码。3、登录成功跳转到fanchat页面时,需要将 token 从.yaml 中取出,进行验证,验证成功后即可与 OpenClaw 正常沟通。4、点击fanchat页面上方的"dashboard" 按钮直接可切换到原chat 页面。
当然过程中会遇到一些 bug 问题,这里我们直接让编程工具修复即可,开发后的样子大概就是下面这样的:
如果大家不想自己整,我已经将源码放到 githup,可以直接从 githup 地址上拉下来即可:
git clone https://github.com/gccc40684/openclaw-casing.git第二步、安装二开版本的 OpenClaw
接下来我们执行下面6 个步骤的代码进行安装。
1、进入代码目录
git clone https://github.com/gccc40684/openclaw-casing.gitcd openclaw-casing如果代码已经拉下来了就直接进入目录即可cd openclaw
2、代码打包
安装依赖:
pnpm install# 对代码前台进行打包pnpm ui:build
# 对代码后台进行打包pnpm build
3、使用安装向导安装
# 设置全局pnpm link --global# 安装向导安装openclaw onboard --install-daemon
这里我们直接跳过了,具体的配置可以参照我上一篇文章,或下面的主要步骤的表格:
4、验证是否安装成功
openclaw gateway status5、设置局域网可以访问
执行下面内容就可以用
# 设置绑定模式为 LAN(监听 0.0.0.0)openclaw config set gateway.bind "lan"# 允许任意 Host 头(开发环境方便)openclaw config set gateway.controlUi.dangerouslyAllowHostHeaderOriginFallback true
6、设置 Token
进行到这里,相信细心的朋友已经发现,我前面提示词中有一个逻辑漏洞,就是ToKen 要写到二开的配置文件中,但我们用源码安装,前端都已经打包安装了,还可以补救吗?
答案是肯定的,由于我们是源码安装,修改配置文件后,重新打包成 dist 就可以了。
这里我们执行下面几条代码:
# 获取 Tokengrep -o '"token": "[^"]*"' ~/.openclaw/openclaw.json | tail -1 | sed 's/"token": "//;s/"$//'
将输出的 token 写入配置文件,如:
gateway:# 网关连接 Tokentoken: 5c036d1d21c********58e243dd0ed42c969********76# 网关 URL(可选,默认使用当前主机)url: ""
进入 openclaw 源码目录进行重新构建
cd openclaw# 重新构建pnpm buildpnpm ui:build
重启 Gateway
openclaw gateway restart这回就能看到我们想要的结果了吗?
显然并没有他让我们使用只要不是 localhost 和 127.0.0.1 的 IP 都必须用 HTTPS,这个问题我们暂时留着,等待下一步映射到公网上再解决。
第三步、用 cloudflare映射到公网
为啥要用cloudflare,因为cloudflare映射有免费额度且足够用,当然你是氪金玩家那就当我没说
。
1、使用Homebrew 安装cloudflare
brew install cloudflare/cloudflare/cloudflared安装完成后验证:
cloudflared --version2、登录认证
安装后需要关联你的 Cloudflare 账户:
cloudflared tunnel login它会自动打开浏览器,让你选择已经创建好的域名,点击授权即可,当然创建域名也非常简单,如果大家想了解,点赞过 99,我就专门来一篇
。
到这里就算授权成功了。
3、创建临时测试地址
cloudflared将本地映射到公网提供了一个快捷的测试方案,可以直接将本地的地址穿透出去,提供一个临时的域名。
cloudflared tunnel --url http://localhost:18789注意:由于是临时地址关闭这个命令后临时的域名就将失效!
但是当我们复制这个域名到页面时会发现新的问题:登录成功后,不管是我们新建的页面还是原 chat 页面全部都报pairing required 的错。
别着急,这是因为OpenClaw 有一套域名审核机制,当把 OpenClaw 映射到公网后会自动开启,我们通过下面两条命令就可以轻松解决:
# 1、查看待批准的设备请求openclaw devices list
# 2、使用下面命令批准待处理请求:# 参照上图将表头为Request的内容写到模版当中;·# openclaw devices approve 【Request】;如:openclaw devices approve 9265a4ec-4da6-4663-bcda-67ec6b6a583c
这样就完成了审核,现在我们再去看,问题就自己解决了。
对了现在我们回顾刚才的 HTTPS 的问题是不是也就解决啦,哈哈。
4、创建永久地址
如果你不满足于测试,害怕 OpenClaw 无休止的审核,那就必须有一个在cloudflared上有主域名,在主域名下挂载 openclaw 的子域名才是解决之道,这里跟着我一步步配置就能轻松应对。
比如:我们的主域名是easychinese.com,那我的子域名就是 openclaw.easychinese.com,按照这个节奏,我们先进入cloudflare主页:
https://dash.cloudflare.com/在首页上找到我们的域名:
进入主域名页面后 选择右上的 DNS 记录:
进入记录页面后,我们需要先切回到开启的临时地址的终端,断开临时地址执行以下命令加入 DNS 记录:
# 删除原来的通道,如果没有旧通道则跳过cloudflared tunnel delete openclaw# 创建新通道cloudflared tunnel create openclaw# openclaw.easychinese.com 子域名cloudflared tunnel route dns openclaw openclaw.easychinese.com
然后再回到cloudflare主域名DNS 记录页面刷新,看看是否多出一条 DNS 记录:
现在子域名就已经解析完成了,在本地我们需要创建配置文件定义 ingress 规则(千万记得更换自己的子域名):
TUNNEL_ID=$(cloudflared tunnel list | grep openclaw | awk '{print $1}')cat > ~/.cloudflared/config.yml << EOFtunnel: ${TUNNEL_ID}credentials-file: /Users/gangchen/.cloudflared/${TUNNEL_ID}.jsoningress:- hostname: openclaw.easychinese.comservice: http://localhost:18789- hostname: www.openclaw.easychinese.comservice: http://localhost:18789- service: http_status:404EOF
下面我们使用命令直接映射即可:
cloudflared tunnel run openclaw至此我们可以看看子域名是否解析成功,我们用手机浏览器来试试:
注意:这里的子域名千万不要忘记 OpenClaw 对域名的审核!
写到最后
写到最后
现在已经是凌晨快两点了,仍然很有劲头,OpenClaw实在太好了,脑子里的想法层出不穷,感觉要把手头的工作全用 OpenClaw 重新过一遍才好,本次尝试只是一个敲门砖,加速向我的成长飞轮迈进。
对于 OpenClaw 的二开玩法和易用性还只是初级水平,也欢迎大家在评论区一起探讨。
扫码
链接我领礼包
没有评论:
发表评论