KS梅林380固件版本免费订阅源版本Clash开发过程总结
接着上一篇文章 KS梅林380固件版本的Clash免费插件已经可用了! , 经过几天的秀秀改改,基本已经做成了我要的功能了。
基础功能
- [x] Clash服务启动开关
- [x] 透明代理启用开关: 选择是否需要使用透明代理(感觉不到自己使用了代理,内网应用不做任何配置即可访问Google)
- [x]
网络状态检查(似乎这个功能有点多余) - [x] 节点配置:支持节点订阅provider(url)。
- [x] DNS设置:使用无污染的DNS解析国外域名。
- [x] 支持代理组类型切换: select/url-test/fallback/load-balance四种类型。
- [x] 集成了 yacd
Web
界面:
基本界面效果
yacd版本Web界面
开发过程说明
- 首先是要制作一个免费的Clash订阅源,节点100个左右,不多但可用,已经内置: free_proxy_ss
- 定制好Clash配置文件,支持两种订阅源方式:HTTP与file。
- 选择正确版本
clash
可执行程序,官方发布版本即可找到,比如premium
版本的armv7l
适合树莓派使用。到这里,我们后台就可以运行clash
了。 - 开始制作
KS梅林380版本
的插件,参考了一些开发教程。研究了一下开发的基本流程,算是搞明白前端与后端的交互方式。 - 开发插件页面,UI界面设置,参考其他插件即可,适当时候还是自己定制了一个
css
文件。 - JS调用后端脚本的设计,都是使用几个脚本,不同任务使用不同的
action
判断。 - 增加了
yq
命令:为了能够支持Yaml文件的验证与修改。
问题总结
- 这款插件最多的有点就是使用了免费订阅源URL, 但很明显,这也是最致命的问题。一旦URL无法访问,Clash也就起不来了,(还是要提供
代理节点切换
功能)。 - UI实现过程不断调整变化、最初switch开关调整后需要点击一个按钮才会生效,后来按钮有些多余,开关就是这个作用呀,于是就将
switch
开关的变化就会立即生效。 - DNS解析方案: 经过几次调整,最后使用了
iptables
重定向53
端口请求直接到Clash
的DNS服务端口1053
,不使用clash
DNS服务的话,可以iptables
+dnsmasq
+dns2socks
方式。
最担心的问题
- 订阅源URL地址无法访问了。
解决方法:
- 使用文件更新方式!。
- 添加个人的代理节点,让更新过程走代理解决。