General proxy performance testing tool based on Clash using Telegram API.
注意
此项目由于架构原因,现已停止维护,感谢大家的支持。
如果你实在需要后续的优化版本,请关注后续作品: koipy
介绍
🚗快速批量检测Clash配置文件里节点的质量,帮助你筛选优质节点✌️, 目前支持以下测试条目:
- Netflix
- Youtube Premium
- DisneyPlus
- Bilibili解锁
- OpenAI(ChatGPT)
- 落地ip风险(IP欺诈度)
- 维基百科
- Claude
- 落地DNS区域检测
- Spotify
- SSH 22端口封禁检测
- Tiktok
- HTTP延迟测试
- 链路拓扑测试(节点出入口分析)
- 下行速度测试
主要功能
- asyncio异步支持
- 订阅管理
- 测试结果绘图
- 权限控制
- 文档支持
- TG MTProto通信(Pyrogram)
- 规则系统
- 支持Docker
- 命令行支持
- 日志输出
- 插件扩展
- 自由定制化配置
分支说明
- master 主分支,主打稳定。
- backend 纯后端代码,无前端BOT,意味着需要额外的bot作主端。
- dev 开发进度最前沿。
- old 依靠调用原版Clash Restful API进行测试。可随意更换内核,但已停止新功能开发。
支持协议
| 出站协议 | Clash | Mihomo(Clash.Meta) | |----------------|-------|--------------------| | SOCKS (4/4a/5) | √ | √ | | HTTP(S) | √ | √ | | Shadowsocks | √ | √ | | VMess | √ | √ | | Trojan | √ | √ | | Snell | √ | √ | | VLESS | | √ | | TUIC | | √ | | Hysteria | | √ | | Hysteria2 | | √ | | Wireguard | | √ | | ShadowsocksR | √ | √ |
本项目默认使用mihomo内核。
使用文档
可以在 这里 找到fulltclash的使用文档。
效果预览
流媒体测试:


如何开始
基础准备
要成功运行该Telegram 机器人,首先需要准备以下信息:
- Telegram 的apiid 、apihash 获取地址 不会请Google。(部分IP已被拉黑,无法正常申请成功,请尝试更换干净IP)
- 去 @BotFather 那里创建一个机器人,获得该机器人的bottoken,应形如:
拉取源码
方法1:直接下载(不会有人不知道在哪下吧?)\ 方法2:使用git(Linux推荐,方便更新),首先安装git,然后拉取仓库。以下指令为 Ubuntu 发行版作示例,Windows自行解决。apt install -y git && git clone https://github.com/AirportR/fulltclash.git && cd fulltclash
此方法在中国大陆可能需要代理加速,请自行解决。
环境准备
- Python 版本范围 (3.9 ~ 3.11)
- 以及各种相关包依赖
pip install -r requirements.txt
为bot进行相关配置
以下为启动bot的最低要求(如果您是新手,建议先以最低要求把bot跑起来,否则自己乱改配置容易出现不可预知的错误。)新建一个名为config.yaml的文件,放在./resources下,项目有模板例子名为./resources/config.yaml.example,在config.yaml中写入如下信息:
- bot相关配置
bot:
apiid: 123456 #改成自己的apiid
apihash: 123456ABCDefg #改成自己的apihash
bottoken: 123456:ABCDefgh123455 # bottoken, 从 @BotFather 获取
# 如果是在中国大陆地区使用,则程序需要代理才能连接上Telegram服务器。写入如下信息:
proxy: 127.0.0.1:7890 #必须是socks5类型 替换成自己的代理地址和端口
- 代理客户端路径配置
clash:
path: "./bin/FullTCore" #这里改成代理客户端文件路径
Windows系统名字后缀名.exe要加上,其他类Unix系统不需要加后缀名。
- 管理员配置(可选)
admin:
- 12345678 # 改成自己的telegram uid
- 8765431 # 这是第二行,表示第二个管理员,没有第二个管理员就把该行删除。
- HTTP代理配置(可选)
# 获取订阅时使用代理(可选)
proxy: 127.0.0.1:7890 #http代理类型 替换成自己的代理地址和端口,注意,此配置与上面的独立分开。
- 自定义buildtoken(可选)
buildtoken是构建 ./bin/FullTCore(.exe) 代理客户端二进制文件的编译Token,此token为数据加密密钥,一般来说,用项目自带的编译token在本地运行不会有任何问题,但是如果您选择自己编译并且更改了 build.key文件,则主端需要改变默认配置,以此用到编译token,这个token需要写入到配置文件里,供Bot加密信息。
buildtoken: 12345678ABCDEFG 获取session文件(可选)
您需要在项目文件目录下,放置一个已经登陆好的.session后缀文件,这个文件是程序生成的,是Telegram的登录凭据,形如: my_bot.session
- 方法1:
#配置文件示例,注意缩进要正确 bot: api_id: 123456 api_hash: 123456ABCDefg bot_token: 123456:ABCDefgh123455 - 方法2: 您可以参阅这篇文档,以快速获得后缀为 .session 的文件
- 方法3: 项目的 ./utils/tool/ 目录下有一个文件名为 login.py ,可以通过指令运行它:
python login.py
当程序退出后即可自动生成一个名为 my_bot.session 的文件 ,之后将它移动到项目根目录。 运行后它会尝试给你输入的用户名的目标发送消息,当接收到:嗨, 我在正常工作哦!
这句话时,即可说明该session文件有效,否则无效。
如果启动后无法验证,请删除生成的mybot.session文件,此时的session登录令牌是不可用的,如果不删除程序会一直使用坏的文件,不会重新生成。
开始启动
配置好后,在项目目录下运行以下指令python3 main.py
等待初始化操作, 等待初始化完毕后进入运行状态了,运行之后和bot私聊指令: >/help 可查看所有命令说明
>/testurl <订阅地址> (Clash配置格式) 即可开始测试
代理客户端编译(高级)
FullTClash有专用的代理客户端,存放在 ./bin/下。初次启动会自动帮您下载(仅限win、linux、darwin)对应平台的二进制文件。文件的压缩包格式为: FullTCore\{版本号}\{平台}\_{CPU架构}.{压缩包后缀}
没有所用架构? 如果发现没有自动下载,说明没有在仓库中找到您所用架构的二进制文件,比如mips架构,那么您需要自行编译。
在 此仓库 下有一源码文件为 fulltclash.go ,您需要将该文件自行用Golang编译器编译成二进制文件。
编译完成覆盖原文件即可 ,如果操作难度太大,可以发起issue详谈。
Docker启动
./docker/ 目录持久化运行
自行Google搜索即可控制台测试
您可以在本机的控制台使用命令行的方式进行测试,但仅支持基本测试功能:python ./utils/tool/console.py -h 交流探讨
我们欢迎各方朋友提出针对性的反馈:- TG更新发布频道
- 在项目页面提出issue
项目贡献:
1、在本项目的主GitHub仓库进行fork,你可以只fork dev的分支。 \ 2、在你的计算机上使用git clone来下载你fork后的仓库。 \ 3、在下载后的本地仓库进行修改。\ 4、执行git add .(请不要忘记句号!!!)\ 5、执行git commit,并输入你做出的更改。\ 6、回到你的仓库,发起pr请求到dev分支,等待下一步(通过/驳回/修改)。答疑
- FullTClash测试原理\
- 为什么不使用原版的Clash客户端二进制\
- 什么是Telegram UID\
- 是否有一键部署脚本\
- FullTClash名字来源于 Full Test base on Clash。\
致谢
- 流媒体解锁思路
- Clash ==> mihomo [GPLv3]
- aiohttp [Apache2]
- pyrogram [LGPLv3]
- async-timeout [Apache2]
- Pillow [HPND]
- pilmoji [MIT]
- pyyaml [MIT]
- APScheduler [MIT]
- loguru [MIT]
- geoip2 [Apache2]
- cryptography [Apache2] [BSD3]
- google-re2 [BSD3]
- aiohttpsocks [Apache2]