Repository navigation
订阅分享格式 #2
PatrickStar555
announced in
Announcements
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Shadowquic 的节点分享格式
一个节点应该对应一个 URI 格式,关于 URI 格式可参考 RFC 3986。
定义
scheme:可选为: sq 或 shadowquic,推荐优先使用 sqmyuser和mypass:是必填的,用来指定一个用户,对应 shadowquic 的 username 和 password;不支持指定多用户example.com:8443:是必填的,用来指定节点的地址和端口,如果端口未指明,默认值为 443myname:对应 URI 的 fragment,用来指定节点的名字参数
sni:必填;指定 TLS 的 Server Nameudp_mode:选填;指定 Shadowquic 使用的 UDP 代理模式,可选:["stream", "datagram"],默认值为 streamzero_rtt:选填;指明 Quic 建立 Connection 时是否开启 0-RTT ,不填为 false(不开启),填任意内容就为 true (开启),默认值为 falsemtu:选填;指明 QUIC 使用的 min-mtu 和 initial-mtu ,默认值为 1280alpn:选填;指明 QUIC 使用的 alpns ,可选:["h3", "h2", "http/1.1"],默认值为空。填写内容可多选,参考示例congestion:选填;指明 QUIC 使用的拥塞算法 ,可选:["bbr", "bbrv3", "cubic", "brutal", "copa"],默认值为 bbr。拥塞参数可供客户端参考,如果客户端支持该拥塞算法,客户端应该尽量满足用户要求典型例子
alpn 的输入格式用
,来分割,需要 URL 编码的都需要正确地被编码。sq://user:pass@example.com:443#my%20tag%20with%20spacesfragment(hash) 应该要使用 URL 编码,而且要正确地解码;示例中正确解析结果应该是:
my tag with spaces。一个订阅可以携带多个节点,使用换行符
\n来分割一个节点。可以通过 http/https 协议来简化/分享订阅。解析者遇到 http/https 应该先使用成熟的 HTTP 客户端去读取内容后再解析订阅。
额外信息
若使用的是 http/https 来分享订阅,服务器返回时可以在响应头部(HTTP Headers)放置额外信息来提示节点/订阅情况。
可选额外信息:
subscription-userinfo用来提示用户当前订阅的情况,upload 和 download 提示用户已使用的上传和下载字节数;total 为用户总共可用的字节数,正常情况下 upload + download <= total; expire 为 unix 时间戳,指明该订阅的过期时间。
为了保持最佳兼容性,服务器最好应该按照 "upload=%s; download=%s; total=%s; expire=%s" 的放置顺序编排;即使不需要某项数据,也最好应该放置4项,比如说不需要 upload,也需要 "upload=0; download=%s; total=%s; expire=%s" 。
content-disposition用来指定 http 订阅的名字,参考 RFC 6266
profile-update-interval设置 http 订阅的自动更新间隔,单位为小时
profile-web-page-url设置 http 订阅的主页链接,可以为使用教程、续费购买等
AnyTLS-JLS 的节点分享格式
具体可参考 AnyTLS 文档。
额外增加
jls_username/jls_u和jls_password/jls_p作为参数,用来指明 JLS 使用的 username 和 password,两个参数都不能为空才开启 JLS;同时 sni 是必填的,指明使用的伪装网站。AnyTLS-JLS 典型例子
All reactions