AirportR / fulltclash

General proxy performance testing tool based on Clash using Telegram API.
https://fulltclash.gitbook.io/fulltclash-doc
BSD 2-Clause "Simplified" License
645 stars 109 forks source link
asyncio clash disney netflix pyrogram python speedtest telegram telegram-bot youtube

FullTClash

🤖 节点质量检测的Telegram机器人

English    简体中文


Docker Pulls Docker Image Size


介绍

🚗快速批量检测Clash配置文件里节点的质量,帮助你筛选优质节点✌️, 目前支持以下测试条目:

  1. Netflix
  2. Youtube Premium
  3. DisneyPlus
  4. Bilibili解锁
  5. OpenAI(ChatGPT)
  6. 落地ip风险(IP欺诈度)
  7. 维基百科
  8. 微软Copilot
  9. Claude
  10. 落地DNS区域检测
  11. Spotify
  12. SSH 22端口封禁检测
  13. Tiktok

此外还有:

  1. HTTP延迟测试
  2. 链路拓扑测试(节点出入口分析)
  3. 下行速度测试

主要功能

分支说明

支持协议

出站协议 Clash Mihomo(Clash.Meta)
SOCKS (4/4a/5)
HTTP(S)
Shadowsocks
VMess
Trojan
Snell
VLESS
TUIC
Hysteria
Hysteria2
Wireguard
ShadowsocksR

本项目默认使用mihomo内核。

使用文档

可以在 这里 找到fulltclash的使用文档。

效果预览

流媒体测试:

测试图片

测试图片

如何开始

基础准备

要成功运行该Telegram 机器人,首先需要准备以下信息:

拉取源码

方法1:直接下载(不会有人不知道在哪下吧?)\ 方法2:使用git(Linux推荐,方便更新),首先安装git,然后拉取仓库。以下指令为 Ubuntu 发行版作示例,Windows自行解决。

apt install -y git && git clone https://github.com/AirportR/fulltclash.git && cd fulltclash

此方法在中国大陆可能需要代理加速,请自行解决。

环境准备

您可以用以下命令,在当前项目目录下运行以快速安装环境:

pip install -r requirements.txt

为bot进行相关配置

以下为启动bot的最低要求(如果您是新手,建议先以最低要求把bot跑起来,否则自己乱改配置容易出现不可预知的错误。)

新建一个名为config.yaml的文件,放在./resources下,项目有模板例子名为./resources/config.yaml.example,在config.yaml中写入如下信息:

您需要在项目文件目录下,放置一个已经登陆好的.session后缀文件,这个文件是程序生成的,是Telegram的登录凭据,形如: my_bot.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

交流探讨

我们欢迎各方朋友提出针对性的反馈:

项目贡献:

1、在本项目的主GitHub仓库进行fork,你可以只fork dev的分支。 \ 2、在你的计算机上使用git clone来下载你fork后的仓库。 \ 3、在下载后的本地仓库进行修改。\ 4、执行git add .(请不要忘记句号!!!)\ 5、执行git commit,并输入你做出的更改。\ 6、回到你的仓库,发起pr请求到dev分支,等待下一步(通过/驳回/修改)。

答疑

  1. FullTClash测试原理\ 原理是在后台启动一个代理客户端,然后开启多个socks5入站端口,通过配置里的配置信息匹配代理客户端出站协议类型进行测试。代理客户端是基于上游的Clash项目改动得到的专属客户端,并将其命名为FullTCore。
  2. 为什么不使用原版的Clash客户端二进制\ 自从FullTClash的3.5.8版本起,支持前后端模式,我们把后端部分单独分离,使之可以让前端的bot运行环境与后端运行的环境不在同一台机器上,在当时Clash并没有提供符合本项目的特性,再加上FullTClash仅仅只需要其中出站功能,所以不得已进行一些改动。事实上,FullTClash的old分支是依靠Clash提供的Restful API运行的,现在已不再维护。
  3. 什么是Telegram UID\ Telegram官方并没有承认UID的说法,但确实存在于Telegram中。每一个TG用户都存在一个唯一的身份ID,这个在官方的TG客户端是查询不到的。Bot依靠UID确定管理员身份,至于如何获取Google搜索即可。
  4. 是否有一键部署脚本\ 目前只有Docker部署脚本,期待你的贡献!
  5. FullTClash名字来源于 Full Test base on Clash。\ 后端部分使用Clash项目(现在亦可称之为mihomo)相关代码作为出站代理。

    致谢