0x00 获得VMESS URL
我使用的是V2rayN客户端,直接全选所有节点,然后批量导出分享URL到剪切板
即可
0x01 发布订阅信息
订阅信息实际上就是将VMESS URL(每个URL以回车符分隔)进行Base64加密,得到密文做成纯text网页,随便丢到一个安装了apache或nginx服务的服务器即可
测试方法:在浏览器输入该订阅的网址,能访问到完整的Base64密文即可
0x02 发布quantumult订阅信息
quantumult的订阅信息格式跟V2rayN的不太一样,在这里我还踩了一个小坑,且听我详细道来
这里要用到一个小工具,将V2rayN的vmess url转成符合Quantumult格式的vmess url
这是示例的vmess url
vmess://ew0KICAidiI6ICIyIiwNCiAgInBzIjogIuekuuS+iyIsDQogICJhZGQiOiAiMTkyLjE2OC4xLjEiLA0KICAicG9ydCI6ICI0MzIxIiwNCiAgImlkIjogImQ3NzFkODlhLTliZWQtNDc2Ny1hNjlkLTE5NjJkY2MyZTY3YyIsDQogICJhaWQiOiAiNjQiLA0KICAibmV0IjogIndzIiwNCiAgInR5cGUiOiAibm9uZSIsDQogICJob3N0IjogIiIsDQogICJwYXRoIjogIi9leGFtcGxlIiwNCiAgInRscyI6ICIiDQp9
使用小工具转换之后的Quantumult vmess url为
vmess://56S65L6LID0gdm1lc3MsMTkyLjE2OC4xLjEsNDMyMSxub25lLCJkNzcxZDg5YS05YmVkLTQ3NjctYTY5ZC0xOTYyZGNjMmU2N2MiLG92ZXItdGxzPWZhbHNlLHRscy1ob3N0PSxjZXJ0aWZpY2F0ZT0xLG9iZnM9d3Msb2Jmcy1wYXRoPSIvZXhhbXBsZSJvYmZzLWhlYWRlcj0iSG9zdDoi
首先,比较一下V2rayN和Quantumult的vmess url,两者看似非常相似,除了vmess://
相同之外完全不一样。可是你说它不一样吧,它也没个规律比较啥也无从下手
既然订阅密文是将vmess url 通过base64加密之后得到的,那么vmess://后面这一串东西是不是也是通过base64加密得到的密文呢,那就解密试试吧
这是V2rayN的Vmess://后一串密文解密的结果
{
"v": "2",
"ps": "示例",
"add": "192.168.1.1",
"port": "4321",
"id": "d771d89a-9bed-4767-a69d-1962dcc2e67c",
"aid": "64",
"net": "ws",
"type": "none",
"host": "",
"path": "/example",
"tls": ""
}
这是Quantumult的Vmess://后一串密文解密的结果
示例 = vmess,192.168.1.1,4321,none,"d771d89a-9bed-4767-a69d-1962dcc2e67c",over-tls=false,tls-host=,certificate=1,obfs=ws,obfs-path="/example"obfs-header="Host:"
通过比较,vmess://后面是base64加密的密文实锤了
可是将这个vmess url追加到原有的url列表时,Quantumult却只能识别先前的url,而这个追加的无论是单独设为订阅,或是与原来的url一起设为订阅,都无法识别
更神奇的是,小工具生成Quantumult订阅url时,会同时生成二维码,使用Quantumult应用扫描这个二维码,或者复制这个url通过剪贴板导入的方式,都可以成功识别并添加该服务器
既然如此,那我们就看看这个Quantumult与原有的url列表中的服务器有什么不一样
新的Quantumult vmess url
示例 = vmess,192.168.1.1,4321,none,"d771d89a-9bed-4767-a69d-1962dcc2e67c",over-tls=false,tls-host=,certificate=1,obfs=ws,obfs-path="/example"obfs-header="Host:"
旧列表中的Quantumult vmess url
示例 = vmess,192.168.1.1,4321,none,"d771d89a-9bed-4767-a69d-1962dcc2e67c",group=Fndroid,over-tls=false,tls-host=,certificate=1,obfs=ws,obfs-path="/example"obfs-header="Host:"
可以看到,只是多了一个group字段,于是将原来的url添加上group字段,然后base64加密这段字符串追加到vmess://后面
将这个vmess url追加到原有的vmess url列表中,并将url列表进行base64加密,就可以发布订阅了
当然这次是能够识别并添加成功了