从 IP 库到测速一条龙搞定反代 ip

从 IP 库到测速一条龙搞定反代 ip

在搭建 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,获取 APPIDAPPHASH 两个参数,用于自动登录自己的 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

image.png

检查一下变量是否存在,如果不存在,请根据你的安装路径,按下图所示手动添加:

image.png

开始自动测速并上传到 git

1. 修改代码参数

首先修改 downip.py 文件,修改 API_IDAPI_HASH 的值,其他不需要动

1
2
3
4
5
6
7
8
9
# ================= 配置区域 =================
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 行 的测速参数,也可以不修改保持默认

1
2
3
4
speedtest="3" # 协程数量,每次同时测速3个ip
speedlimit="5" # 速度下限,速度高于 5mb/s 的ip数据才写于结果csv文件
delay="220" # 延迟参数,默认220ms,高于该值的ip跳过测速
speedtesturl="spurl.api.xyz/50mb" # 测速地址

修改 uploadcsv.sh 文件,修改约 21-25 行 的参数

1
2
3
4
5
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 的安装路径

2. 运行一键脚本

运行 run.bat

首次运行会提示你输入 tg 的注册电话、验证码(输入电话后 tg 软件会给你发送验证码)、登录密码,第二次运行就不需要再输入了

测速逻辑如下:

  • 下载指定的 ip 库,并按照地区重命名
  • 自动将 ip 库的内容格式化为 ip port 的格式,以便于测速软件识别
  • 延迟测试,筛选低于 220ms 的 ip
  • 开始测速,测速完成后生成 csv 文件
  • 将 csv 文件上传到指定的私有仓库

image.png

注意:延迟和测速必须在无代理环境下进行,脚本运行过程中会有相关提示

如何使用 CSV 文件

1. 用于 edt 项目的 ADDCSV 变量

具体使用教程参考 cm 的 仓库

2. 用于订阅器项目 ADDCSV 变量

具体使用教程参考 cm 的 仓库

#IP #反代 #优选