OpenClash
OpenClash copied to clipboard
[Bug] SSR链接无法订阅,显示语法错误
Verify Steps
- [X] Tracker 我已经在 Issue Tracker 中找过我要提出的问题
- [X] Latest 我已经使用最新 Dev 版本测试过,问题依旧存在
- [X] Core 这是 OpenClash 存在的问题,并非我所使用的 Clash 或 Meta 等内核的特定问题
- [X] Meaningful 我提交的不是无意义的 催促更新或修复 请求
OpenClash Version
v0.45.51-beta
Bug on Environment
Lean
Bug on Platform
Linux-armv8
To Reproduce
在订阅中填入SSR的订阅地址
Describe the Bug
SSR链接无法订阅,显示语法错误,链接可正常访问,同一个订阅链接在早期几个版本都无此问题
OpenClash Log
无
OpenClash Config
No response
Expected Behavior
希望作者大大可以早些修复,谢谢!
Screenshots

请提供详细的报错位置实际信息
请提供详细的报错位置实际信息
报错位置: “配置文件订阅”下填写订阅链接并更新订阅
(红框标注的位置就是出错的第207列)
具体情况: 填写的链接是在第三方网站将SSR订阅转Clash,这个链接在过去的Openclash版本中和其他Clash客户端中是可以正常订阅的,估计是最新版的Openclash在支持SSR的protocol_param那块有些问题,我换用纯Clash订阅链接是可以正常下载并启动Openclash的
你加个引号
你加个引号
抱歉,现在才看到消息 我试过了,加上引号没有作用,openclash启动的时候会自动修改配置文件,修改后引号就被去除了,也许大大可以为修改后的配置文件参数都默认加上引号?
!!str 15978:
!!str

!!str 15978:
今天我重新测试了一下,发现配置文件校验失败可能是软件本身的问题,问题都是出现在内核启动前,目前mipsle soft的openclash v0.45.51-beta没有这个问题,出现问题的是armv8的v0.45.51-beta,不知道是不是大大在编译多版本openclash的时候有所疏漏?
同样的问题,现在依旧存在哦
楼主是怎么解决问题的能提供一下思路吗?我是大雕的360V6固件,订阅一直有问题,同样的转换链接其他客户端都可以使用
楼主是怎么解决问题的能提供一下思路吗?我是大雕的360V6固件,订阅一直有问题,同样的转换链接其他客户端都可以使用
我是大雕的闭源ax6,问题还没有解决,只能等作者在下个版本修复了
楼主是怎么解决问题的能提供一下思路吗?我是大雕的360V6固件,订阅一直有问题,同样的转换链接其他客户端都可以使用
我是大雕的闭源ax6,问题还没有解决,只能等作者在下个版本修复了
那就是一模一样的固件,4460闭源,我是10.1的固件
楼主是怎么解决问题的能提供一下思路吗?我是大雕的360V6固件,订阅一直有问题,同样的转换链接其他客户端都可以使用
我是大雕的闭源ax6,问题还没有解决,只能等作者在下个版本修复了
那就是一模一样的固件,4460闭源,我是10.1的固件
你是用的大雕的群里的固件吗?方便指个路加个群吗?
你加个引号
openclash v0.45.59-beta,armv8,无线路由器同楼上红米AX6,OpenWrt R22.5.25 / LuCI Master (git-22.116.38781-d0638e7),内核版本4.4.60。 ssr节点的protocol-param的内容必须加单引号,才能通过openclash启动前的配置文件检查。 Clash for Windows、Clash for Android、ShellClash都没有这个要求,证明这不是Clash内核必须的要求。openclash的检查过于严苛了。 希望修复这个bug。 谢谢。
在这写一个临时的解决方案: 前往openwrt目录-->usr/share/openclash.sh
在文件的66行()下可以加入这个语句:sed -i "s/你的protocol-param中的参数/'&'/g" $CFG_FILE
这样即可实现ssr的自动订阅下载而无需手动修改配置文件
还有个个人自认为更加完善的sed语句:sed -i "s/protocol-param: ([^,]+),/protocol-param: '\1',/g" $CFG_FILE 该语句在测试环境下可完美为所有protocol-param参数加上引号,但实际在openwrt中不起作用,原因不明
此次是针对配置文件进行修改,以达到ssr订阅通过的目的,并未对ruby yaml语法检测强度进行变动,故为临时解决方案
事实上我这边并不会报错,可以尝试升级ruby版本
事实上我这边并不会报错,可以尝试升级ruby版本
3.1.2-1这个版本去哪更新?我的目前是3.1.2
事实上我这边并不会报错,可以尝试升级ruby版本
实测,在ruby版本一致的前提下,这个问题目前只出现在内核4.4上,在5.4、5.10、5.15的openwrt上也都未出现问题,不知内核版本会不会影响ruby yaml的检查方式?
行吧,你这闭源固件我估计也没办法自己去解决,我看看用sed处理下
行吧,你这闭源固件我估计也没办法自己去解决,我看看用sed处理下
期待大佬的更新!现在手动加引号也算还行的解决方案了。
感谢大佬!!!