others-ssr订阅解析
others-ssr订阅解析
前篇
- Python解析SSR链接 - https://kknews.cc/code/22e62yz.html
SSR 协议解析
示例:
1
ssr://YXF1b2g4eGkubm9kZWRhdGEubmV0OjYwMjI6YXV0aF9hZXMxMjhfbWQ1OmNoYWNoYTIwLWlldGY6dGxzMS4yX3RpY2tldF9hdXRoOlpHa3hOVkJXLz9vYmZzcGFyYW09TkdRd01EVXlOVEU0TlRRdWQzZDNMbWR2ZGk1b2F3JnByb3RvcGFyYW09TWpVeE9EVTBPbFZLYVZkU2JRJnJlbWFya3M9VEdGeVoyVWc2YWFaNXJpdk1qSWdMU0J1WmlCOElFbEZVRXdnZkNEbGdJM25qb2M2TVM0NCZncm91cD01clczNkxHYTVybS0
ssr://
后面的1
YXF1b2g4eGkubm9kZWRhdGEubmV0OjYwMjI6YXV0aF9hZXMxMjhfbWQ1OmNoYWNoYTIwLWlldGY6dGxzMS4yX3RpY2tldF9hdXRoOlpHa3hOVkJXLz9vYmZzcGFyYW09TkdRd01EVXlOVEU0TlRRdWQzZDNMbWR2ZGk1b2F3JnByb3RvcGFyYW09TWpVeE9EVTBPbFZLYVZkU2JRJnJlbWFya3M9VEdGeVoyVWc2YWFaNXJpdk1qSWdMU0J1WmlCOElFbEZVRXdnZkNEbGdJM25qb2M2TVM0NCZncm91cD01clczNkxHYTVybS0
是 base64 编码过的, 需要进行 base64 解码, 得到
1
aquoh8xi.nodedata.net:6022:auth_aes128_md5:chacha20-ietf:tls1.2_ticket_auth:ZGkxNVBW/?obfsparam=NGQwMDUyNTE4NTQud3d3Lmdvdi5oaw&protoparam=MjUxODU0OlVKaVdSbQ&remarks=TGFyZ2Ug6aaZ5rivMjIgLSBuZiB8IElFUEwgfCDlgI3njoc6MS44&group=5rW36LGa5rm-
/?
前面的ZGkxNVBW
是 base64 编码过的, 需要进行 base64 解码, 得到1
di15PV
/?
后面的1
obfsparam=NGQwMDUyNTE4NTQud3d3Lmdvdi5oaw&protoparam=MjUxODU0OlVKaVdSbQ&remarks=TGFyZ2Ug6aaZ5rivMjIgLSBuZiB8IElFUEwgfCDlgI3njoc6MS44&group=5rW36LGa5rm-
键值对参数的 值 都是 base64 编码过的, 需要进行 base64 解码, 得到
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21obfsparam: 4d005251854.www.gov.hk
protoparam: 251854:UJiWRm
pwd: di15PV
remarks: Large 香港22 - nf | IEPL | 倍率:1.8
group: 海豚湾
---
#### 客户端唯一 id 计算
- 在客户端配置表可以看到一个 id 字段
```json
{
"configs" : [
{
"id" : "8DA7CB257B36F2A1982B75AC2DCED559",
},
}这个字段是通过这几个属性值计算出来的
1
2
3
4
5
6
7ins.ip = "aaa.bbb.com"
ins.port = "123"
ins.password = "123"
ins.proto = "3242"
ins.protoparam = "3242"
ins.obfs = "123"
ins.obfsparam = "123"当这几个属性值完全相同时, id 计算出来的结果相同 (没看源码, 实际测试出来的), 客户端只会显示第一个
踩坑
base64 编解码问题
- 在 解码 的时候, 需要尾部补齐
=
, 在 编码 的时候, 需要尾部去掉=
分组问题
一个订阅只会分到一个组里, 即使服务器下发的有多个 组, 客户端只会去第一个节点的 组名 作为 分组名, 成功特使也是取 第一个组名 显示
客户端排序显示问题
- 琢磨不透, 只能那第一个节点来改备注了 (这里调了好久才发现)