Sukka 写前端、网络和基础设施时,习惯先把边界和代价摊开。把「KoolClash – 在 Koolshare LEDE 上使用 Clash | Sukka's Blog」整理成可落地的中文笔记:问题在哪、默认做法会踩什么坑、该怎么选。原站导航和广告已去掉。

思路

Clash for Windows 的开发者 Fndroid 之前发布过在 Windows 上使用 Hyper-V 虚拟 Koolshare OpenWrt 实现通过 Clash 透明代理的 教程视频 ,但是操作很繁琐。因为我也碰巧在用 Hyper-V 虚拟 Koolshare OpenWrt,所以我就决定尝试为 Koolshare 的软件中心开发一个插件来简化 Clash 安装和配置,就这样开了坑。 KoolClash 的开发过程可谓是举步维艰,我没有 Koolshare 插件开发基础、Koolshare 也没有提供任何文档,我甚至一度以为可能会最后弃坑,但是我最终抽出了三天时间里做出了 KoolClash 第一个 Beta 版本。在接下来的两周时间里不断打磨、终于释出了可以日常使用的版本、并在三周后推出了第一个稳定版。

关于 KoolClash 项目的介绍在 GitHub 和 使用文档 中都有,所以本文就不再长篇大论安利 KoolClash 了,主要重点讲述 KoolClash 的开发思路,遇到的困难和解决方案,还会提及到一些 KoolClash 的操作逻辑。如果你有更好的想法,欢迎评论或者 在 GitHub 上开 issue 。

有用的参考资料

Clash 本质是一个网络处理核心、提供可运行的二进制文件;开放外部控制 API,GUI 只需要通过 API 控制 Clash 即可。所以为 Clash 开发 Koolshare OpenWrt 客户端其实并不难,只需要将 Clash 的二进制扔进去,写个界面启动、关闭 Clash 和上传配置文件的功能即可 跟把大象放进冰箱里一样简单 。

Koolshare OpenWrt/LEDE x64 版的软件中心几乎没有开发文档。我找到的最有用的文档资源莫过于这个 梅林 AM380 软件中心插件开发教程详解 。虽然 Koolshare OpenWrt/LEDE 和 Koolshare Merlin 之间天差地别,但是这篇文档对于零基础 Koolshare 插件开发提供了 Koolshare 插件开发的基本思路。

Koolshare 插件目录结构

Koolshare OpenWrt/LEDE 的插件和路由器中的脚本通信使用的 HTTP API 是 koolshare-httpdb 。之前有开源在 GitHub 上、但后来删库了,不过 DevHub 缓存了 README ,通过 README 可以很好了解 httpdb 的通信机制和如何构造 POST 请求。

最重要的参考资料无疑是 Koolshare OpenWrt/LEDE x64 插件 的 Repo,存放了所有插件的原始代码。虽然很多插件的脚本都经过压缩加密了,但是在参考插件目录结构、启动脚本和命令时是非常有用的。

Koolshare 脚本编写

$ tree koolclash koolclash ├── bin # 可执行二进制的目录,安装时需要将里面的文件复制到 /koolshare/bin/ 中 ├── init.d # 开机时自动执行的脚本,安装时需要将里面的文件复制到 /koolshare/init.d/ 中 ├── install.sh # 安装脚本,涉及到文件复制、增加执行权限等操作 ├── koolclash # KoolClash 自有目录,复制到 /koolshare/ 中 ├── scripts # 插件的运行脚本,只有这里面的脚本可以被 HTTP API 调用,安装时需要将里面的文件复制到 /koolshare/scripts/ 中 ├── uninstall.sh # 卸载脚本,涉及到文件删除等操作 └── webs # Koolshare 软件中心用到的网页资源,安装时需要将里面的文件复制到 /koolshare/webs/ 中 ├── koolclash # KoolClash 自有目录,放置了 clash-dashb

Koolshare 插件中所有脚本都强烈建议带上 source $KSROOT/scripts/base.sh ,Koolshare 的很多功能如返回 HTTP 响应功能( http_response )、日志功能( logger )等都依赖这个。一般脚本开头都如下所示:

Koolshare 插件主页面(插件入口)

#!/bin/sh export KSROOT = /koolshare source $KSROOT /scripts/base.sh alias echo_date = 'echo 【$(date +%Y年%m月%d日\ %X)】:' Koolshare 还提供了一个 /koolshare/scripts/base.sh ,应该可以用来简化一些操作,不过并没有看见多少 Koolshare 插件有在使用。

由于 /koolshare/webs 目录下面的内容都可以通过 http://[路由器 IP]/[相对 webs 目录的路径] 访问(不过需要注意的是 Luci 的 Webserver 不支持不带 . 的文件名路径的访问,访问文件名不带 . 的文件会报 500 错误),所以你可以自行引入外部 UI 库和框架。KoolClash 内置的 clash-dashboard 就是放在 /koolshare/webs/koolclash 目录下面,可以通过 http://[Router IP]/koolclash/index.html 访问。

脚本执行

Koolshare 插件的界面也依赖 advanced-tomato,css 类都很简单,看现有的代码就可以直接学会。不过 KoolClash 界面实现的 nav tab 组切换和其它 Koolshare 插件不同,KoolClash 的 nav tab 不依赖 JavaScript、而是使用 HTML5 特性和一些 CSS 黑魔法实现了 nav tab 组件,感兴趣的可以看看 实现思路 和 KoolClash 的具体代码 。

Koolshare LEDE/OpenWrt 插件与脚本通信是是通过 POST /_api 调用 HTTP API httpdb ,具体使用方法可以参考上文给出的文档,通过 HTTP API 可以修改/存储 dbus 数据、运行脚本并传递参数给脚本等。

落地时建议先做的 5 件事

  1. 用自己的流量和设备测,不要只抄厂商推荐最小配置。
  2. DNS、CDN、代理分流先画清 Fake IP 和 Real IP 的边界。
  3. 前端性能看 CLS、白屏和重复渲染,而不是只看打包体积。
  4. 基础设施变更走 Git,能复现、能回滚。
  5. 结论写成可检查的清单:接口、超时、失败样本、回滚版本。

和智能体产品怎么接

龙虾PRO做 OpenClaw 落地时,网络、DNS 和前端性能笔记最有用的是「边界」:哪一层该加速、哪一层不该假装智能。数字员工调用外部能力前,先把超时和失败路径写死。

本文侧重全链路风控方法论。落地时请用自身业务单据做回放验证,不要把示例阈值直接当生产策略。 相关:风控体检 · 方案资源

常见问题 FAQ

什么是AI智能系统?

「AI智能系统」可概括为:Clash for Windows 的开发者 Fndroid 之前发布过在 Windows 上使用 Hyper-V 虚拟 Koolshare OpenWrt 实现通过 Clash 透明代理的 教程视频 ,但是操作很繁琐。因为我也碰巧在用 Hyper-V 虚拟 Koolshare OpenWrt,所以我就决定尝试为 Koolshare 的软件中心开发一个插件来 本文从定义、方法与实践要点展开说明。

为什么要关注AI智能系统?

关注AI智能系统,是因为它直接影响效率、风险与可复制性。文中指出:Clash for Windows 的开发者 Fndroid 之前发布过在 Windows 上使用 Hyper-V 虚拟 Koolshare OpenWrt 实现通过 Clash 透明代理的 教程视频 ,但是操作很繁琐。因为我也碰巧在用 Hyper-V 虚拟 Koolshare OpenWrt,所以我就决定尝试为 Koolshare 的软件中心开发一个插件来简化 Clash 安装和配置,就这样开了坑。 KoolClash 的开发过程可谓是举步维艰,我没有 Koolshare 插件开发基础…

如何落地AI智能系统?有哪些关键步骤?

建议按以下路径推进AI智能系统:1) 用自己的流量和设备测,不要只抄厂商推荐最小配置。;2) DNS、CDN、代理分流先画清 Fake IP 和 Real IP 的边界。;3) 前端性能看 CLS、白屏和重复渲染,而不是只看打包体积。;4) 基础设施变更走 Git,能复现、能回滚。;5) 结论写成可检查的清单:接口、超时、失败样本、回滚版本。。细节见正文对应章节。

AI智能系统适合哪些人或团队?

AI智能系统更适合:产品/技术负责人、运营与增长团队、需要落地智能体或自动化的中小团队、关注「AI智能系统」方向的读者。若你只需要单次聊天式问答,可先读概念;若要上生产,请重点看步骤、权限与风控相关段落。

关于「思路」,本文给出了什么结论?

在「思路」部分,要点是:以我就决定尝试为 Koolshare 的软件中心开发一个插件来简化 Clash 安装和配置,就这样开了坑。 KoolClash 的开发过程可谓是举步维艰,我没有 Koolshare 插件开发基础、Koolshare 也没有提供任何文档,我甚至一度以为可能会最后弃坑,但是我最终抽出了三天时间里做出了 KoolClash 第一个 Beta 版本。在接下来的两周时间里不断打磨、终于释出了可以日常使用的版本、并在三周后推出了第一个稳定版。 关于

关于「有用的参考资料」,本文给出了什么结论?

在「有用的参考资料」部分,要点是:/bin/ 中 ├── init.d # 开机时自动执行的脚本,安装时需要将里面的文件复制到 /koolshare/init.d/ 中 ├── install.sh # 安装脚本,涉及到文件复制、增加执行权限等操作 ├── koolclash # KoolClash 自有目录,复制到 /koolshare/ 中 ├── scripts # 插件的运行脚本,只有这里面的脚本可以被 HTTP API 调用,安装时需要将里面的文件复制到 /k