在搭建 cm 的 edt 项目后,默认的随机节点速度较慢或者快速失效,很多小白又不会优选 ip,官方 ip 优选有 cfdata 这样的项目,可以实现全自动化。由于我个人的习惯,偏爱于使用反代 ip,这篇文章就教大家从 ip 库到测速一条龙搞定反代 ip 优选。本文仅针对 win 系统环境,其他系统请自行修改代码
准备工作
1. 创建一个 git 私有库
点击直达 创建一个私有仓库,用于存放测速 csv 文件,用于 edt 项目的 ADDCSV 变量,或者搭建自己的专属订阅器,并获取你的 github token
注意:ADDCSV 变量需要直链地址,私有库直链项目请参考 cm 的 GitHub - cmliu/CF-Workers-Raw 项目搭建
2. 申请 tg 的 APPID 和 APPHASH
申请地址:https://my.telegram.org/auth,获取 APPID
和 APPHASH
两个参数,用于自动登录自己的 tg 并自动从指定的 tg 频道下载 ip 库 txt 文件
注意:需要干净 ip 申请,最好是家宽,否则大概率申请不到。如果申请不到,以下基本不用看了,无法实现全自动化优选
3. 下载一键脚本
fork 我的仓库,下载其中的 iptest-txt
文件夹,或者 点此 直接下载,解压到一个单独的文件夹,不要改变目录结构
4. 安装运行环境
安装 windows wget(这一步也可以省略,因为 gitbash 自带 curl 工具)
安装 windows 版 python (必须)
安装 windows 版 gitbash (必须)
安装 windows 版 go (非必须,除非你要自己编译测速软件)
安装完后检查系统环境变量
按快捷键 win+r
,输入 rundll32 sysdm.cpl,EditEnvironmentVariables
,回车,打开如下界面,双击 系统变量
的 path
栏
检查一下变量是否存在,如果不存在,请根据你的安装路径,按下图所示手动添加:
开始自动测速并上传到 git
1. 修改代码参数
首先修改 downip.py
文件,修改 API_ID
和 API_HASH
的值,其他不需要动。如果你的代理软件不是 v2ray,请自行修改 PROXY
里面的代理端口,且需要打开代理软件的局域网代理功能
# ================= 配置区域 =================
API_ID = '改为你获取到的 tg appid'
API_HASH = '改为你获取到的 tg apphash'
CHANNEL = 'Marisa_kristi'
PROXY = ('socks5', '127.0.0.1', 10808, True)
# PROXY为v2本地代理,如果是clash请自行修改,下载tg频道的ip库需要连接代理
DOWNLOAD_DIR = 'ip'
IP_MERGE = 'ip-443.txt'
# ============================================
修改 ipspeedtest.sh
文件,根据你自己的情况修改约 34-37 行
的测速参数,也可以不修改保持默认
speedtest="3" # 协程数量,每次同时测速3个ip
speedlimit="5" # 速度下限,速度高于 5mb/s 的ip数据才写于结果csv文件
delay="220" # 延迟参数,默认220ms,高于该值的ip跳过测速
speedtesturl="spurl.api.xyz/50mb" # 测速地址
修改 uploadcsv.sh
文件,修改约 21-25 行
的参数
GH_TOKEN="你 github 的 token"
GH_EMAIL="你 github 的 邮箱"
GH_USER="yutian81" # 你github的用户名
GH_REPO="CFSub" # 你创建的私库项目名
GH_BRANCH="main" # 你创建的私库项目分支,一般都为 main
修改 run.bat 文件,将其中 "D:/Program Files/Git/bin/bash.exe"
路径改为你自己 gitbash 的安装路径
安装 py 的依赖库,鼠标右键选择 gitbash
终端,依次运行以下两行代码安装依赖库
pip install telethon
pip install pysocks
2. 运行一键脚本
运行 run.bat
首次运行会提示你输入 tg 的注册电话、验证码(输入电话后 tg 软件会给你发送验证码)、登录密码,第二次运行就不需要再输入了
测速逻辑如下:
下载指定的 ip 库,并按照地区重命名
自动将 ip 库的内容格式化为
ip port
的格式,以便于测速软件识别延迟测试,筛选低于 220ms 的 ip
开始测速,测速完成后生成 csv 文件
将 csv 文件上传到指定的私有仓库
注意:延迟和测速必须在无代理环境下进行,脚本运行过程中会有相关提示
如何使用 CSV 文件
1. 用于 edt 项目的 ADDCSV 变量
具体使用教程参考 cm 的 仓库
2. 用于订阅器项目 ADDCSV 变量
具体使用教程参考 cm 的 仓库
评论区