Code Monkey home page Code Monkey logo

sing-box-subscribe's People

Contributors

gg4924 avatar izumichan16 avatar toperlock avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

sing-box-subscribe's Issues

vercel生成的web parser是不是不能作为安卓订阅链接?

描述

用vercel 生成的web parser链接比如 https://vercel.xxxxx.cloudns.org/config/https://gist.githubusercontent.com/xxxx/607f253bb7671ec96ae24b910e563903/raw/c88fc9a86dce358730b23abdbc08f0b0a8892da3/providers.json&file=2 在网页中可以正常打开所有节点 配置。但是把此链接导入sing-box官方安卓端作为订阅链接更新后,并未获得providers.json里的订阅节点,只有自己在config.template里手动添加的节点。

是不是并不支持这样的链接作为订阅链接在官方安卓使用?

完整性要求

  • 我保证阅读了reademe文档,了解所有sing-box-subscrib使用参数的含义与工作流程。
  • 我保证转换的订阅链接可以在浏览器打开,并且有内容。

作者加油

非常理解作者的感受,开源是一种美好的愿望,但在那些白嫖的人看来是理所应当。

给个建议,既然众口难调,不如只做好协议解析的事,其他的配置自行解决,不知道怎么配的自己去看sing-box文档,clash的事件给所有人一个警告,FQ代理软件还是需要有一定的使用门槛,做得太好用反而不是一件好事。

hysteria2 config格式的怎么转换

第一个是我自己的clash订阅链接,格式为yaml,可以转换成功,第二个是朋友给的hysteria2配置链接,格式为json,转换失败

输入序号,载入对应config模板(直接回车默认选第一个配置模板):2
选择: config_template_no_groups_tun.json
Mẫu cấu hình sử dụng: config_template_no_groups_tun.json
处理: https://*/config.yaml
Đang tải link đăng ký: https://*/config.yaml
处理: https://*/config.json
Đang tải link đăng ký: https://*/config.json
Traceback (most recent call last):
  File "/Users/cubone/Documents/workSpace/github/sing-box-subscribe/main.py", line 484, in <module>
    nodes = process_subscribes(providers["subscribes"])
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/cubone/Documents/workSpace/github/sing-box-subscribe/main.py", line 39, in process_subscribes
    _nodes = get_nodes(subscribe['url'])
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/cubone/Documents/workSpace/github/sing-box-subscribe/main.py", line 137, in get_nodes
    data = parse_content(content)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/cubone/Documents/workSpace/github/sing-box-subscribe/main.py", line 156, in parse_content
    factory = get_parser(t)
              ^^^^^^^^^^^^^
  File "/Users/cubone/Documents/workSpace/github/sing-box-subscribe/main.py", line 165, in get_parser
    proto = tool.get_protocol(node)
            ^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/cubone/Documents/workSpace/github/sing-box-subscribe/tool.py", line 219, in get_protocol
    m = re.search(r'^(.+?)://', s)
        ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/homebrew/Cellar/[email protected]/3.11.6/Frameworks/Python.framework/Versions/3.11/lib/python3.11/re/__init__.py", line 176, in search
    return _compile(pattern, flags).search(string)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: cannot use a string pattern on a bytes-like object

请问可以支持docker部署吗?

1.vercel虽然目前使用体验还不错,但是有几点不足,一个是自动同步经常会失效,各种各样的依赖错误失效之后就会发邮件提醒你也找不出来问题,只能重新部署。

  1. 第2个是vercel仍然是国外的小流量服务器,不如docker方便。 docker在镜像更新,反代域名,国内直连,代码稳定性等等层面上都会更好呀。

  2. 最后感谢大佬做出这么棒的项目,简洁清晰易懂。有效。谢谢

已经把链接地址修改为gist报错如下

{
"status": "error",
"message_CN": "执行子进程时出错,获取链接内容超时,请尝试本地运行脚本或者把订阅链接内容放到gist; 你的订阅链接可能需要使用 越南 ip才能打开,很抱歉vercel做不到,请你把订阅链接里的node内容保存到gist里再尝试解析它。或者请你在本地运行脚本;",
"message_VN": "Có lỗi khi thực hiện tiến trình con, vượt quá thời gian để lấy nội dung liên kết, vui lòng thử chạy kịch bản cục bộ hoặc đặt nội dung liên kết đăng ký vào Github Gist; Liên kết đăng ký của bạn có thể cần sử dụng IP Việt Nam để mở, xin lỗi Vercel không thể làm điều đó, vui lòng lưu nội dung nút trong liên kết đăng ký vào Github Gist trước khi cố gắng phân tích nó. Hoặc vui lòng chạy kịch bản cục bộ;",
"message_EN": "Fetching the link content is timing out, please try running the script locally or putting the subscription link content into Github Gist; Your subscription link may need to use Vietnam ip to open, sorry Vercel can not do that, please save the node content in the subscription link to Github Gist before trying to parse it. Or please run the script locally;"
}

完美了

完美了!居然还增加了支持添加参数

三个订阅转换后还是丢后面两个

描述

试了两天,怎么排放位置编码转换后都只能显示一个订阅中的节点。贴在浏览器打开也只有一个订阅的节点。使用你的订阅转换很久了,应该不是我操作错误的问题把。我用你的转换地址也试了一下,一样漏后面两个订阅节点。

完整性要求

  • 我保证阅读了reademe文档,了解所有sing-box-subscrib使用参数的含义与工作流程。
  • 我保证转换的订阅链接可以在浏览器打开,并且有内容。

转换`shadowtls`时,如果`providers.json` 里设置了`prefix`, 生成的`shadowsocks`的`detour`没加`prefix`

{
    "subscribes":[
        {
            "url": "https://raw.githubusercontent.com/Alvin9999/pac2/master/clash.meta2/config.yaml",
            "tag": "pac2",
            "enabled": true,
            "emoji": 1,
            "prefix": "pac2",
            "User-Agent": "v2rayng"
        }
    ],
    "auto_set_outbounds_dns":{
        "proxy": "",
        "direct": ""
    },
    "save_config_path": "./config.json",
    "auto_backup": false,
    "exclude_protocol":"ssr",
    "config_template": "",
    "Only-nodes": false
}
[
    {
      "tag": "pac2ip2",
      "type": "shadowsocks",
      "method": "2022-blake3-aes-128-gcm",
      "password": "xxxxxxxxxxxxxxxxxx",
      "multiplex": {
        "enabled": true,
        "protocol": "h2mux",
        "max_connections": 8,
        "min_streams": 16
      },
      "detour": "ip2_shadowtls"
    },
    {
      "tag": "pac2ip2_shadowtls",
      "type": "shadowtls",
      "server": "62.210.103.0",
      "server_port": 12299,
      "version": 3,
      "password": "xxxxxxxxxxx",
      "tls": {
        "enabled": true,
        "server_name": "addons.mozilla.org",
        "utls": {
          "enabled": true,
          "fingerprint": "chrome"
        }
      }
    }
]

detour 应该是 pac2ip2_shadowtls

节点分组问题

Screenshot_20231110_160753
像谷歌 电报 推特 这些分组里面为什么不添加一个自动选择的选项呢

ua

能否每个订阅分开使用ua?

生成的节点名称后有一个额外的数字

描述

image
如图所示,本来应该是x3或者x10结尾,但是生成的文件在配置名称后面多了一个2或者3,我开始以为不能用数字结尾,然后我在节点名称后面增加了一个空格,然后就变成了图中的样子(之前没加空格的时候会变成x32 x102之类的),也直接在浏览器查看过转换后的结果,名称后面确实有一个额外的数字,希望大佬能够修复一下!

最后:祝大佬新春快乐!

完整性要求

  • 我保证阅读了reademe文档,了解所有sing-box-subscrib使用参数的含义与工作流程。
  • 我保证转换的订阅链接可以在浏览器打开,并且有内容。

emoji

现在有大部分moji都加不上,只有香港的能加上。

Clash2V2Ray

parsers/clash2base64.py里的vmess_info["sni"] = share_link.get('servername', '')应该是
if share_link.get('tls') and share_link['tls'] != False:
的结果吧,servername应是tls为ture时才有的选项;另外,vmess还能补充h2,http类型吗

没有在此订阅下找到节点

没有在此订阅下找到节点,跳过
Không tìm thấy proxy trong link đăng ký này, bỏ qua
发现 🌌 Google 出站下的节点数量为 0 ,会导致sing-box无法运行,请检查config模板是否正确。
Sing-Box không chạy được vì không tìm thấy bất kỳ proxy nào trong outbound của 🌌 Google. Vui lòng kiểm tra xem mẫu cấu hình có đúng không!!
在使用之前下载的“sing-box-subscribe-main”是可以用的,今天看到有更新“sing-box-subscribe-no-flask-2.1.4”下载下来用是这个样子的,我尝试了运行“pip install requests paramiko scp chardet Flask PyYAML ruamel.yaml”,提示我要更新,我也输入了出现的更新的命令了

分流规则问题,目前dns依然100%泄露..

描述

https://browserleaks.com/dns 测试下来,怎么都泄露,请问fakeipDNS模式 规则 如何正确配置.
期望能改进默认配置模板。
openwrt的passwall2 fakeDNS模式完全不泄露。
chatGPT这种...必须DNS不泄露才能保住账号...

完整性要求

  • 我保证阅读了reademe文档,了解所有sing-box-subscrib使用参数的含义与工作流程。
  • 我保证转换的订阅链接可以在浏览器打开,并且有内容。

clash.meta订阅

我用的机场订阅链接,只有在支持clash.meta订阅的网络工具里才可以刷出hy等新协议节点,在其它工具只能刷出ss等老协议节点。您的这个工具好像也只能刷出老协议的节点。可否优化一下,让这类订阅链接刷出全部节点。

[feature request]: Add a Pre-generated selector group node to include all nodes of the subscribe

{
    "subscribes":[
        {
            "url": "https://5gtocdocao.com/api/v1/client/subscribe?token=xx",
            "tag": "airport1_tag",
            "enabled": true,
            "emoji": 0,
            "subgroup": "🙃 5gtocdocao", //Add a selector group node to contain all nodes currently subscribed
            "prefix": "❤️node_name prefix - ",
            "User-Agent":"clashmeta",
        }
    ],
    "auto_set_outbounds_dns":{
        "proxy": "",
        "direct": ""
    },
    "save_config_path": "./config.json",
    "auto_backup": false,
    "exclude_protocol":"ssr",
    "config_template": "",
    "Only-nodes": false
}
  1. Add a option subscribes[*].subgroup for providers.json
    • When subscribes[*].subgroup == "", Pre-generated is disabled.
    • When subscribes[*].subgroup == "🙃 5gtocdocao", the following node will be generated:
{
	"type": "selector",
	"tag": "🙃 5gtocdocao",
	"outbounds": [
		"❤️node_name prefix - node01",
		"❤️node_name prefix - node02"
	]
}
  1. And subscribes[*].subgroup available under Only-nodes: false|true

请问转换好订阅使用 Clash API 按照设置的端口连接连接不上是哪里没设置好啊?

日志:
+0800 2024-01-12 15:58:49 �[36mINFO�[0m router: updated default interface 以太网, index 15
+0800 2024-01-12 15:58:49 �[37mDEBUG�[0m router: updating rule-set geoip-facebook from URL: https://testingcf.jsdelivr.net/gh/MetaCubeX/meta-rules-dat@sing/geo/geoip/facebook.srs
+0800 2024-01-12 15:58:49 �[37mDEBUG�[0m router: updating rule-set geoip-telegram from URL: https://testingcf.jsdelivr.net/gh/MetaCubeX/meta-rules-dat@sing/geo/geoip/telegram.srs
+0800 2024-01-12 15:58:49 �[37mDEBUG�[0m router: updating rule-set geosite-category-ads-all from URL: https://testingcf.jsdelivr.net/gh/MetaCubeX/meta-rules-dat@sing/geo/geosite/category-ads-all.srs
+0800 2024-01-12 15:58:49 �[37mDEBUG�[0m router: updating rule-set geoip-google from URL: https://testingcf.jsdelivr.net/gh/MetaCubeX/meta-rules-dat@sing/geo/geoip/google.srs
+0800 2024-01-12 15:58:49 �[37mDEBUG�[0m router: updating rule-set geosite-amazon from URL: https://testingcf.jsdelivr.net/gh/MetaCubeX/meta-rules-dat@sing/geo/geosite/amazon.srs
+0800 2024-01-12 15:58:49 �[36mINFO�[0m outbound/direct[direct]: outbound connection to testingcf.jsdelivr.net:443
+0800 2024-01-12 15:58:49 �[36mINFO�[0m outbound/direct[direct]: outbound connection to testingcf.jsdelivr.net:443
+0800 2024-01-12 15:58:49 �[36mINFO�[0m outbound/direct[direct]: outbound connection to testingcf.jsdelivr.net:443
+0800 2024-01-12 15:58:49 �[36mINFO�[0m outbound/direct[direct]: outbound connection to testingcf.jsdelivr.net:443
+0800 2024-01-12 15:58:49 �[37mDEBUG�[0m dns: lookup domain testingcf.jsdelivr.net
+0800 2024-01-12 15:58:49 �[37mDEBUG�[0m dns: lookup domain testingcf.jsdelivr.net
+0800 2024-01-12 15:58:49 �[37mDEBUG�[0m dns: lookup domain testingcf.jsdelivr.net
+0800 2024-01-12 15:58:49 �[37mDEBUG�[0m dns: match[0] domain=[ghproxy.com cdn.jsdelivr.net testingcf.jsdelivr.net] => localDns
+0800 2024-01-12 15:58:49 �[36mINFO�[0m outbound/direct[direct]: outbound connection to testingcf.jsdelivr.net:443
+0800 2024-01-12 15:58:49 �[37mDEBUG�[0m dns: match[0] domain=[ghproxy.com cdn.jsdelivr.net testingcf.jsdelivr.net] => localDns
+0800 2024-01-12 15:58:49 �[37mDEBUG�[0m dns: match[0] domain=[ghproxy.com cdn.jsdelivr.net testingcf.jsdelivr.net] => localDns
+0800 2024-01-12 15:58:49 �[37mDEBUG�[0m dns: lookup domain testingcf.jsdelivr.net
+0800 2024-01-12 15:58:49 �[37mDEBUG�[0m dns: lookup domain testingcf.jsdelivr.net
+0800 2024-01-12 15:58:49 �[37mDEBUG�[0m outbound/direct[direct]: outbound connection to 223.5.5.5:443
+0800 2024-01-12 15:58:49 �[37mDEBUG�[0m outbound/direct[direct]: outbound connection to 223.5.5.5:443
+0800 2024-01-12 15:58:49 �[37mDEBUG�[0m outbound/direct[direct]: outbound connection to 223.5.5.5:443
+0800 2024-01-12 15:58:49 �[37mDEBUG�[0m dns: match[0] domain=[ghproxy.com cdn.jsdelivr.net testingcf.jsdelivr.net] => localDns
+0800 2024-01-12 15:58:49 �[37mDEBUG�[0m dns: match[0] domain=[ghproxy.com cdn.jsdelivr.net testingcf.jsdelivr.net] => localDns
+0800 2024-01-12 15:58:49 �[37mDEBUG�[0m outbound/direct[direct]: outbound connection to 223.5.5.5:443
+0800 2024-01-12 15:58:49 �[37mDEBUG�[0m outbound/direct[direct]: outbound connection to 223.5.5.5:443
+0800 2024-01-12 15:58:49 �[37mDEBUG�[0m dns: exchanged testingcf.jsdelivr.net NOERROR 1
+0800 2024-01-12 15:58:49 �[37mDEBUG�[0m dns: exchanged testingcf.jsdelivr.net CNAME testingcf.jsdelivr.net. 1 IN CNAME testingcf.jsdelivr.net.cdn.cloudflare.net.
+0800 2024-01-12 15:58:49 �[37mDEBUG�[0m dns: exchanged testingcf.jsdelivr.net A testingcf.jsdelivr.net.cdn.cloudflare.net. 1 IN A 104.16.85.20
+0800 2024-01-12 15:58:49 �[37mDEBUG�[0m dns: exchanged testingcf.jsdelivr.net NOERROR 1
+0800 2024-01-12 15:58:49 �[37mDEBUG�[0m dns: exchanged testingcf.jsdelivr.net NOERROR 1
+0800 2024-01-12 15:58:49 �[37mDEBUG�[0m dns: exchanged testingcf.jsdelivr.net NOERROR 1
+0800 2024-01-12 15:58:49 �[37mDEBUG�[0m dns: exchanged testingcf.jsdelivr.net A testingcf.jsdelivr.net.cdn.cloudflare.net. 1 IN A 104.16.89.20
+0800 2024-01-12 15:58:49 �[37mDEBUG�[0m dns: exchanged testingcf.jsdelivr.net CNAME testingcf.jsdelivr.net. 1 IN CNAME testingcf.jsdelivr.net.cdn.cloudflare.net.
+0800 2024-01-12 15:58:49 �[37mDEBUG�[0m dns: exchanged testingcf.jsdelivr.net CNAME testingcf.jsdelivr.net. 1 IN CNAME testingcf.jsdelivr.net.cdn.cloudflare.net.
+0800 2024-01-12 15:58:49 �[37mDEBUG�[0m dns: exchanged testingcf.jsdelivr.net CNAME testingcf.jsdelivr.net. 1 IN CNAME testingcf.jsdelivr.net.cdn.cloudflare.net.
+0800 2024-01-12 15:58:49 �[37mDEBUG�[0m dns: exchanged testingcf.jsdelivr.net A testingcf.jsdelivr.net.cdn.cloudflare.net. 1 IN A 104.16.86.20
+0800 2024-01-12 15:58:49 �[37mDEBUG�[0m dns: exchanged testingcf.jsdelivr.net A testingcf.jsdelivr.net.cdn.cloudflare.net. 1 IN A 104.16.87.20
+0800 2024-01-12 15:58:49 �[37mDEBUG�[0m dns: exchanged testingcf.jsdelivr.net A testingcf.jsdelivr.net.cdn.cloudflare.net. 1 IN A 104.16.85.20
+0800 2024-01-12 15:58:49 �[37mDEBUG�[0m dns: exchanged testingcf.jsdelivr.net A testingcf.jsdelivr.net.cdn.cloudflare.net. 1 IN A 104.16.89.20
+0800 2024-01-12 15:58:49 �[37mDEBUG�[0m dns: exchanged testingcf.jsdelivr.net A testingcf.jsdelivr.net.cdn.cloudflare.net. 1 IN A 104.16.88.20
+0800 2024-01-12 15:58:49 �[37mDEBUG�[0m dns: exchanged testingcf.jsdelivr.net A testingcf.jsdelivr.net.cdn.cloudflare.net. 1 IN A 104.16.88.20
+0800 2024-01-12 15:58:49 �[37mDEBUG�[0m dns: exchanged testingcf.jsdelivr.net A testingcf.jsdelivr.net.cdn.cloudflare.net. 1 IN A 104.16.88.20
+0800 2024-01-12 15:58:49 �[37mDEBUG�[0m dns: exchanged testingcf.jsdelivr.net A testingcf.jsdelivr.net.cdn.cloudflare.net. 1 IN A 104.16.87.20
+0800 2024-01-12 15:58:49 �[37mDEBUG�[0m dns: exchanged testingcf.jsdelivr.net OPT OPT PSEUDOSECTION: EDNS: version 0 flags: MBZ: 0x0001, udp: 4096
+0800 2024-01-12 15:58:49 �[37mDEBUG�[0m dns: exchanged testingcf.jsdelivr.net A testingcf.jsdelivr.net.cdn.cloudflare.net. 1 IN A 104.16.86.20
+0800 2024-01-12 15:58:49 �[37mDEBUG�[0m dns: exchanged testingcf.jsdelivr.net A testingcf.jsdelivr.net.cdn.cloudflare.net. 1 IN A 104.16.86.20
+0800 2024-01-12 15:58:49 �[37mDEBUG�[0m dns: exchanged testingcf.jsdelivr.net A testingcf.jsdelivr.net.cdn.cloudflare.net. 1 IN A 104.16.85.20
+0800 2024-01-12 15:58:49 �[37mDEBUG�[0m dns: lookup succeed for testingcf.jsdelivr.net: 104.16.86.20 104.16.87.20 104.16.85.20 104.16.89.20 104.16.88.20
+0800 2024-01-12 15:58:49 �[37mDEBUG�[0m dns: exchanged testingcf.jsdelivr.net A testingcf.jsdelivr.net.cdn.cloudflare.net. 1 IN A 104.16.87.20
+0800 2024-01-12 15:58:49 �[37mDEBUG�[0m dns: exchanged testingcf.jsdelivr.net A testingcf.jsdelivr.net.cdn.cloudflare.net. 1 IN A 104.16.87.20
+0800 2024-01-12 15:58:49 �[37mDEBUG�[0m dns: exchanged testingcf.jsdelivr.net A testingcf.jsdelivr.net.cdn.cloudflare.net. 1 IN A 104.16.89.20
+0800 2024-01-12 15:58:49 �[37mDEBUG�[0m dns: exchanged testingcf.jsdelivr.net A testingcf.jsdelivr.net.cdn.cloudflare.net. 1 IN A 104.16.85.20
+0800 2024-01-12 15:58:49 �[37mDEBUG�[0m dns: exchanged testingcf.jsdelivr.net A testingcf.jsdelivr.net.cdn.cloudflare.net. 1 IN A 104.16.89.20
+0800 2024-01-12 15:58:49 �[37mDEBUG�[0m dns: exchanged testingcf.jsdelivr.net A testingcf.jsdelivr.net.cdn.cloudflare.net. 1 IN A 104.16.88.20
+0800 2024-01-12 15:58:49 �[37mDEBUG�[0m dns: exchanged testingcf.jsdelivr.net A testingcf.jsdelivr.net.cdn.cloudflare.net. 1 IN A 104.16.86.20
+0800 2024-01-12 15:58:49 �[37mDEBUG�[0m dns: exchanged testingcf.jsdelivr.net OPT OPT PSEUDOSECTION: EDNS: version 0 flags: MBZ: 0x0001, udp: 4096
+0800 2024-01-12 15:58:49 �[37mDEBUG�[0m dns: exchanged testingcf.jsdelivr.net OPT OPT PSEUDOSECTION: EDNS: version 0 flags: MBZ: 0x0001, udp: 4096
+0800 2024-01-12 15:58:49 �[37mDEBUG�[0m dns: exchanged testingcf.jsdelivr.net OPT OPT PSEUDOSECTION: EDNS: version 0 flags: MBZ: 0x0001, udp: 4096
+0800 2024-01-12 15:58:49 �[37mDEBUG�[0m dns: lookup succeed for testingcf.jsdelivr.net: 104.16.88.20 104.16.86.20 104.16.87.20 104.16.85.20 104.16.89.20
+0800 2024-01-12 15:58:49 �[37mDEBUG�[0m dns: lookup succeed for testingcf.jsdelivr.net: 104.16.85.20 104.16.89.20 104.16.88.20 104.16.86.20 104.16.87.20
+0800 2024-01-12 15:58:49 �[37mDEBUG�[0m dns: lookup succeed for testingcf.jsdelivr.net: 104.16.87.20 104.16.85.20 104.16.89.20 104.16.88.20 104.16.86.20
+0800 2024-01-12 15:58:49 �[37mDEBUG�[0m dns: exchanged testingcf.jsdelivr.net NOERROR 1
+0800 2024-01-12 15:58:49 �[37mDEBUG�[0m dns: exchanged testingcf.jsdelivr.net CNAME testingcf.jsdelivr.net. 1 IN CNAME testingcf.jsdelivr.net.cdn.cloudflare.net.
+0800 2024-01-12 15:58:49 �[37mDEBUG�[0m dns: exchanged testingcf.jsdelivr.net A testingcf.jsdelivr.net.cdn.cloudflare.net. 1 IN A 104.16.89.20
+0800 2024-01-12 15:58:49 �[37mDEBUG�[0m dns: exchanged testingcf.jsdelivr.net A testingcf.jsdelivr.net.cdn.cloudflare.net. 1 IN A 104.16.88.20
+0800 2024-01-12 15:58:49 �[37mDEBUG�[0m dns: exchanged testingcf.jsdelivr.net A testingcf.jsdelivr.net.cdn.cloudflare.net. 1 IN A 104.16.86.20
+0800 2024-01-12 15:58:49 �[37mDEBUG�[0m dns: exchanged testingcf.jsdelivr.net A testingcf.jsdelivr.net.cdn.cloudflare.net. 1 IN A 104.16.87.20
+0800 2024-01-12 15:58:49 �[37mDEBUG�[0m dns: exchanged testingcf.jsdelivr.net A testingcf.jsdelivr.net.cdn.cloudflare.net. 1 IN A 104.16.85.20
+0800 2024-01-12 15:58:49 �[37mDEBUG�[0m dns: exchanged testingcf.jsdelivr.net OPT OPT PSEUDOSECTION: EDNS: version 0 flags: MBZ: 0x0001, udp: 4096
+0800 2024-01-12 15:58:49 �[37mDEBUG�[0m dns: lookup succeed for testingcf.jsdelivr.net: 104.16.89.20 104.16.88.20 104.16.86.20 104.16.87.20 104.16.85.20
+0800 2024-01-12 15:58:59 �[33mWARN�[0m router: initialize rule-set take too much time to finish!

修改请求UA

部分订阅链接屏蔽了浏览器请求,会在请求订阅时返回特定网页导致无法获取订阅内容。修改请求UA为sing-box或Clash.Meta可以规避对浏览器请求的屏蔽,将请求伪装成由代理工具发出,正常获取订阅。

vmess协议节点转换后出现非预期行为

使用背景

vmess协议机场。之前使用clash,现更换为sing-box后,出现udp不能正常使用的问题,例如,teamspeak语音服务器不能正常连接成功。

问题定位

该机场clash格式的订阅中,某节点的格式为:

{name: "xxxxxxxx", server: xxxxxxxx.xxx, port: 12345, client-fingerprint: chrome, type: vmess, uuid: ********, alterId: 0, cipher: auto, tls: false, tfo: false, skip-cert-verify: true, udp: true}

经过转换后,对应的出站为:

{
    "tag": "xxxxxxxx",
    "type": "vmess",
    "server": "xxxxxxxx.xxx",
    "server_port": 12345,
    "uuid": "********",
    "security": "auto",
    "alter_Id": 0,
    "packet_encoding": "xudp",
    "network": "tcp"
}

经过简单测试,"network": "tcp"导致该节点的udp无法使用,删除该字段以后恢复正常,ts服务器能够成功连接。

根据sing-box文档,该字段只能指定tcp/udp,而不写则默认同时开启。

network

Enabled network

One of tcp udp.

Both is enabled by default.

而如上文所示的节点大量存在,经过转换以后全部被指定使用tcp,需要全部手动修改,对使用体验有较大影响,希望能够修复。感谢!

不支持本地Hysteria2链接

RT
问题复现:

  1. 创建本地文件 local.txt
    cat local.txt hysteria2://123@[xxxx:xxxx:xxxx:3::4c]:443/?insecure=1&sni=mydomain

  2. 编辑 providers.json
    cat providers.json { "subscribes":[ { "url": "./local.txt", "tag": "机场1", "enabled": true, "emoji": 1, "prefix": "" }, { "url": "./local2.txt", "tag": "机场2", "enabled": false, "emoji": 0, "prefix": "❤️机场前缀 - " } ], "auto_set_outbounds_dns":{ "proxy": "", "direct": "" }, "save_config_path": "./config.json", "auto_backup": false, "exlude_protocol":"", "User-Agent":"" }

  3. 运行 main.py
    python3 main.py /usr/lib/python3/dist-packages/paramiko/transport.py:236: CryptographyDeprecationWarning: Blowfish has been deprecated "class": algorithms.Blowfish, 1、config_template_groups_tun 2、config_template_no_groups_tun 3、config_template_tun 4、config_template_tun_2 输入序号,载入对应config模板(直接回车默认选第一个配置模板):1 处理./local.txt 发现 🌌 Google 出站下的节点数量为 0 ,会导致sing-box无法运行,请检查config模板是否正确。 Traceback (most recent call last): File "/home/kj54321/Downloads/sing-box-subscribe/main.py", line 420, in <module> final_config = combin_to_config(config,nodes) File "/home/kj54321/Downloads/sing-box-subscribe/main.py", line 340, in combin_to_config config_path = json.loads(temp_json_data).get("save_config_path", "config.json") File "/usr/lib/python3.10/json/__init__.py", line 339, in loads raise TypeError(f'the JSON object must be str, bytes or bytearray, ' TypeError: the JSON object must be str, bytes or bytearray, not NoneType

file参数优化

希望不只是能传入url,还能通过例如file=1来选中服务器中第一个配置文件,简化参数。

我又来了。

今天更新了下,发现丢了两条订阅链接里的节点。重新转码了三个订阅,更新报错。 请问是不是更新了点啥??

如何增加非订阅节点

如题,没有订阅地址的自建节点或内网节点,如何和订阅节点一同生成到配置文件中呢?

vmess节点转换后,不能测延迟,选中节点也不通,无法翻出去,成死节点!

首先感谢大佬开发的这个项目,让我完美的从clash过渡到singbox,大佬的这个项目,应该是目前最好用的转换工具了。但是我现在遇到一个问题,vmess节点转换后,测延迟没有数据,节点也不通,变成死节点。后来我发现了,是转换后是vmess节点配置里的"transport"下面多了3行多余的代码(分别是"path","headers","Host"),删除后,节点立刻正常了,可以测延迟,节点也通了。我把节点的clash订阅配置,和转换后的配置,还有修改后正常的配置上传上来,大佬你看看到底问题出在哪里,本人比较小白,不知道这样叙述,大佬是否明白。

clash订阅vmess配置: - { name: **-优化, type: vmess, server: yes.cnmjcn.net, port: 16616, uuid:XXXXXXXXXXXXXXXXXXXXXXXXXX, alterId: 0, cipher: auto, udp: true, network: ws }

转换后的配置(我用的工具是V2.2.8):
{
"tag": "🇹🇼 💍**-优化",
"type": "vmess",
"server": "yes.cnmjcn.net",
"server_port": 16616,
"uuid": "XXXXXXXXXXXXXXXXXXXXXXXXXX",
"security": "auto",
"alter_id": 0,
"packet_encoding": "xudp",
"transport": {
"type": "ws",
"path": "",
"headers": {
"Host": ""
}
}
},
修改后正常的配置:
{
"tag": "🇹🇼 💍**-优化",
"type": "vmess",
"server": "yes.cnmjcn.net",
"server_port": 16616,
"uuid": "XXXXXXXXXXXXXXXXXXXXXXXX",
"security": "auto",
"alter_id": 0,
"packet_encoding": "xudp",
"transport": {
"type": "ws"
}
},

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.