OpenClash icon indicating copy to clipboard operation
OpenClash copied to clipboard

[Bug] SSR链接无法订阅,显示语法错误

Open MaoSuSu opened this issue 2 years ago • 6 comments

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

uTools_1661609750723

MaoSuSu avatar Aug 27 '22 14:08 MaoSuSu

请提供详细的报错位置实际信息

vernesong avatar Aug 30 '22 08:08 vernesong

请提供详细的报错位置实际信息

报错位置: “配置文件订阅”下填写订阅链接并更新订阅

uTools_1661905423397 (红框标注的位置就是出错的第207列)

具体情况: 填写的链接是在第三方网站将SSR订阅转Clash,这个链接在过去的Openclash版本中和其他Clash客户端中是可以正常订阅的,估计是最新版的Openclash在支持SSR的protocol_param那块有些问题,我换用纯Clash订阅链接是可以正常下载并启动Openclash的

MaoSuSu avatar Aug 31 '22 00:08 MaoSuSu

你加个引号

vernesong avatar Aug 31 '22 17:08 vernesong

你加个引号

抱歉,现在才看到消息 我试过了,加上引号没有作用,openclash启动的时候会自动修改配置文件,修改后引号就被去除了,也许大大可以为修改后的配置文件参数都默认加上引号?

MaoSuSu avatar Sep 02 '22 14:09 MaoSuSu

!!str 15978:

vernesong avatar Sep 03 '22 04:09 vernesong

!!str

image 不起作用诶

MaoSuSu avatar Sep 03 '22 05:09 MaoSuSu

!!str 15978:

今天我重新测试了一下,发现配置文件校验失败可能是软件本身的问题,问题都是出现在内核启动前,目前mipsle soft的openclash v0.45.51-beta没有这个问题,出现问题的是armv8的v0.45.51-beta,不知道是不是大大在编译多版本openclash的时候有所疏漏?

MaoSuSu avatar Oct 07 '22 12:10 MaoSuSu

同样的问题,现在依旧存在哦

prunes81485216 avatar Oct 16 '22 08:10 prunes81485216

楼主是怎么解决问题的能提供一下思路吗?我是大雕的360V6固件,订阅一直有问题,同样的转换链接其他客户端都可以使用

prunes81485216 avatar Oct 16 '22 08:10 prunes81485216

楼主是怎么解决问题的能提供一下思路吗?我是大雕的360V6固件,订阅一直有问题,同样的转换链接其他客户端都可以使用

我是大雕的闭源ax6,问题还没有解决,只能等作者在下个版本修复了

MaoSuSu avatar Oct 16 '22 08:10 MaoSuSu

楼主是怎么解决问题的能提供一下思路吗?我是大雕的360V6固件,订阅一直有问题,同样的转换链接其他客户端都可以使用

我是大雕的闭源ax6,问题还没有解决,只能等作者在下个版本修复了

那就是一模一样的固件,4460闭源,我是10.1的固件

prunes81485216 avatar Oct 16 '22 10:10 prunes81485216

楼主是怎么解决问题的能提供一下思路吗?我是大雕的360V6固件,订阅一直有问题,同样的转换链接其他客户端都可以使用

我是大雕的闭源ax6,问题还没有解决,只能等作者在下个版本修复了

那就是一模一样的固件,4460闭源,我是10.1的固件

你是用的大雕的群里的固件吗?方便指个路加个群吗?

MaoSuSu avatar Oct 16 '22 10:10 MaoSuSu

你加个引号

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。 谢谢。

MashiroX1 avatar Oct 30 '22 04:10 MashiroX1

在这写一个临时的解决方案: 前往openwrt目录-->usr/share/openclash.sh

在文件的66行()下可以加入这个语句:sed -i "s/你的protocol-param中的参数/'&'/g" $CFG_FILE 这样即可实现ssr的自动订阅下载而无需手动修改配置文件 image

还有个个人自认为更加完善的sed语句:sed -i "s/protocol-param: ([^,]+),/protocol-param: '\1',/g" $CFG_FILE 该语句在测试环境下可完美为所有protocol-param参数加上引号,但实际在openwrt中不起作用,原因不明

此次是针对配置文件进行修改,以达到ssr订阅通过的目的,并未对ruby yaml语法检测强度进行变动,故为临时解决方案

MaoSuSu avatar Nov 04 '22 14:11 MaoSuSu

事实上我这边并不会报错,可以尝试升级ruby版本 image

vernesong avatar Nov 05 '22 18:11 vernesong

事实上我这边并不会报错,可以尝试升级ruby版本 image

3.1.2-1这个版本去哪更新?我的目前是3.1.2

prunes81485216 avatar Nov 05 '22 22:11 prunes81485216

事实上我这边并不会报错,可以尝试升级ruby版本 image

实测,在ruby版本一致的前提下,这个问题目前只出现在内核4.4上,在5.4、5.10、5.15的openwrt上也都未出现问题,不知内核版本会不会影响ruby yaml的检查方式?

MaoSuSu avatar Nov 06 '22 01:11 MaoSuSu

行吧,你这闭源固件我估计也没办法自己去解决,我看看用sed处理下

vernesong avatar Nov 06 '22 14:11 vernesong

行吧,你这闭源固件我估计也没办法自己去解决,我看看用sed处理下

期待大佬的更新!现在手动加引号也算还行的解决方案了。

prunes81485216 avatar Nov 06 '22 14:11 prunes81485216

感谢大佬!!!

prunes81485216 avatar Nov 06 '22 22:11 prunes81485216