SubGenX_Python--一个将节点链接转换为base64订阅链接的小工具

SubGenX_Python是一个将节点链接转换为base64订阅链接,并在后台监听请求的后端工具。功能非常简单,仅推荐个人使用。

功能点如下:

  • vmess/vless->订阅url(但是理论上使用uuid做鉴权的应该都可以)
  • 根据需求与否,分为普通节点与高级节点,供给不同的用户组
  • 多用户多uuid,应对合租需要
  • systemctl持久化运行

准备工作

  • python3
  • git
  • 一个模板uuid(源码中的模板id是620436f3-3104-48c4-a41d-3d19e72b9605, 使用自己想要的模板id需要在app.py中default_uuid行做相应替换,模板id是不在任何用户上使用的id)
  • 已经做好的若干节点链接(必须使用模板uuid)
  • nginx或者其他反向代理工具(可选)

部署

  1. 拉源码:

    git clone https://github.com/wxz7801/SubGenX_Python.git
    
  2. 进入源码文件夹并创建虚拟环境、安装依赖

    cd SubGenX_Python
    
    # 创建虚拟环境并安装依赖
    python3 -m venv venv
    source venv/bin/activate
    pip install -r requirements.txt
    
  3. 创建data文件夹,并创建相关需要的文件

    mkdir data && cd data
    
    • 创建并编辑config.txt,这个里面放入所有用户组都可以访问的节点链接,格式为一行一个。下述仅作为举例:

      vless://abcdefg
      vless://abcdefg
      ......
      

      需要注意的是这里节点的uuid需要为你已经准备好的uuid,否则不会进行替换。

    • 创建并编辑config_premium.txt,这个里面放入高权限用户可以访问的节点链接,格式同上。

    • 创建并编辑normal_list.txt,这里放入普通用户的uuid,一行一个,即只访问config.txt的节点。

      下述仅作为举例:

      uuid1
      uuid2
      uuid3
      ......
      
    • 创建并编辑premium_list.txt,这里放入高级用户的uuid,格式同上。这组用户可以访问config.txt和config_premium.txt的节点

  4. 使用gunicorn运行服务端

    #5000为端口号
    #如果你部署了如nginx的反向代理,这里可以填localhost
    gunicorn -b 0.0.0.0:5000 app:app
    
  5. 测试

    找个客户端,添加订阅,格式为[ip/域名]:[端口]/api/实际的uuid

持久化

已经有写好一个service模板,在template下。根据自己实际情况改一下路径以及其他信息。具体请参照service以及systemctl的使用方法。

后记 and QA

其实也是根据需求而来,小鸡买多了,一旦配置变化,下面的设备全部手动更新工作量就很大,这套东西至少以后修改直接在txt改节点配置就行了...

总感觉省了一点工作但没有完全省,但总归是省了(