基于clash 核心运作的、进行全量订阅测试的telegram机器人 项目github:https://github.com/AirportR/FullTclash
FullTclash bot 是承载其测试任务的Telegram 机器人(以下简称bot),目前支持以clash配置文件为载体的批量联通性测试,支持以下测试条目:
- Netflix Youtube DisneyPlus Bilibili steam货币 OpenAI(ChatGPT) 落地ip风险(IP欺诈度) 维基百科
以及HTTP延迟测试和链路拓扑测试(节点出入口分析)。
可以在 这里 找到FullTclash的使用文档。
要成功运行该项目代码,首先需要准备以下信息:
Telegram 的api_id 、api_hash 获取地址 不会请Google。(部分TG账号已被拉黑,无法正常使用)
去 @BotFather 那里创建一个机器人,获得该机器人的bot_token,应形如:
bot_token = "123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11"
这步不会请Google。
以下为启动bot的最低要求(如果您是新手,建议先以最低要求把bot跑起来,否则自己乱改配置容易出现不可预知的错误。)
mkdir -p fulltclash
进入fulltclash目录新建一个名为config.yaml的文件
docker run -dit \
-v "$(pwd)"/config.yaml:/app/resources/config.yaml \
-v $PWD/logs:/app/logs \
-v $PWD/results:/app/results \
--name fulltclash \
--restart always \
sanling000/fulltclash
dev版
docker run -dit \
-v "$(pwd)"/config.yaml:/app/resources/config.yaml \
-v $PWD/logs:/app/logs \
-v $PWD/results:/app/results \
-v $PWD/bin:/app/bin \
--name fulltclashdev \
--restart always \
sanling000/fulltclash:dev
ws后端amd
docker run -dit \
-e vstartup=30000 \
-e vcore=4 \
-e vspeed=4 \
-e token=fulltclash \
-p 8765:8765 \
--name fulltclashws \
--restart always \
sanling000/fulltclash:ws
ws后端arm
docker run -dit \
-v $PWD/fulltclash:/app/resources/ \
-e token=fulltclash \
-p 8765:8765 \
--name fulltclashws \
--restart always \
sanling000/fulltclash:ws
core 核心数,数量越多测试速度越快,但代价是内存会大量占用(每个核心大概10M),自己的机子多少内存自己平衡。默认值为4 startup 起始端口。表示从此端口开始往下数占用数量,比如核心数为4,就会占用[1124,1126,1128,1130]共4个端口,遇到端口占用时可配置此项。推荐10000以上作为初始端口 speed 测速线程 token Websocket通信Token,也叫做密码,防止不合法的请求
clash: branch: meta 让Bot识别你要使用的是meta内核而非原生Clash内核。
3、需要自行更换内核路径,否则不生效。
clash: path: "fulltclash-meta-xxxx"4、更换内核的下载地址为(看清楚分支),也可以自己编译:获取地址
admin:
- 12345678 # 改成自己的telegram uid
- 8765431 # 这是第二行,表示第二个管理员,没有第二个管理员就把该行删除。
bot相关配置
bot:
api_id: 123456 #改成自己的api_id
api_hash: 123456ABCDefg #改成自己的api_hash
bot_token: 123456:ABCDefgh123455 # bot_token, 从 @BotFather 获取
# 如果是在中国大陆地区使用,则程序需要代理才能连接上Telegram服务器。写入如下信息:
proxy: 127.0.0.1:7890 #socks5 替换成自己的代理地址和端口
代理配置(可选)
如果是在中国大陆地区使用,可能部分订阅网址无法直接连接。可在config.yaml中写入如下信息:
# 获取订阅时使用代理(可选)
proxy: 127.0.0.1:7890 #http 替换成自己的代理地址和端口,注意,此配置与上面的独立分开。
配置文件内容如下,按照备注在编辑器中对应修改即可:
# 注意,yaml配置文件对缩进敏感,请不要强迫症删掉#号之间的空格。
admin:
- 12345678 #管理员,此处写你的账户id或用户名,必须配置该项,否则程序会自动退出
bot:
api_id: 123456 # Telegram的api_id
api_hash: ABCDEFG # Telegram的api_hash
bot_token: 123456:ABCDEFG #bot的token
# ====================以上为必填项,否则无法启动成功========================
# proxy: host:端口:用户名:密码 #socks5代理,用户名和密码为可选配置,已和下面的proxy单独分离,请勿混用
# strictmode: false # 严格模式,代表测试的时侯,bot内联按钮只有发起测试的主人才能按,否则所有用户用户权限都可以按。默认false,目前未适配,敬请期待。
# scripttext: "⏳联通性测试进行中..." # 解锁脚本测试进度条自定义文本
# analyzetext: "⏳节点测试拓扑进行中..." # 拓扑测试进度条自定义文本
# speedtext: "⏳速度测试进行中..." # 速度测试进度条自定义文本
# bar: "=" #进度条自定义文本
# bleft: "[" #左括号自定义文本
# bright: "]" #右括号自定义文本
# bspace: " " #空格自定义文本,默认为2个
# command: ['mycommand1', 'mycommand2'] #自定义指令,用于适配权限回调。高级用法,不会无需配置。
#以下是fulltclash的buildtoken,可以用默认的,但是安全性得不到保障,具体原因详见文档
#buildtoken: c7004ded9db897e538405c67e50e0ef0c3dbad717e67a92d02f6ebcfd1022a5ad1d2c4419541f538ff623051759ec000d2f426e03f9709a6608570c5b9141a6b
#clash:
# path: './bin/fulltclash-linux-amd64' # 代理客户端的路径,默认为 ./bin/ 下。不会弄不要动这里,用默认的即可。本仓库默认仅提供win-amd64与linux-amd64两种(意味着如果为这两种架构,这里不用改。),其他架构需要自行编译。
# allow-caching: false #是否缓存测试过程产生的订阅,若否,则测试完成后会自动删除测试订阅,以免造成空间浪费。(此配置暂不生效)
# core: 4 # 核心数,数量越多测试速度越快,但代价是内存会大量占用(每个核心大概10M),自己的机子多少内存自己平衡。默认值为1.
# auto-start: false # bot启动时顺带启动,若为false则需要在 bot上输入/clash start 手动启动,默认false
# startup: 1124 #起始端口。表示从此端口开始往下数占用数量,比如核心数为4,就会占用[1124,1126,1128,1130]共4个端口,遇到端口占用时可配置此项。推荐10000以上作为初始端口
#proxy: "host:端口" # http配置代理(非socks5),括号内可选用于下载获取订阅链接,订阅链接国内打不开可尝试开启(可选配置),本机提供的代理可以这样填: '127.0.0.1:7890'
#如果要http代理要验证,配置格式为: proxy: "用户名:密码@host:端口" 比如: user1:[email protected]:7890
#geoip-api: "ip-api.com" # GEOIP 测试api,取二级域名,目前支持 ip-api.com ip.sb ipleak.net ipdata.co ipapi.co 五种,其中 ipdata 需要配置下面的geoip-key
#geoip-key: xxxxxxx #ipdata 的 apikey,如果使用其他api则无需填写
#subconvertor: #订阅转换(此配置主要开发者已无心维护,能用但不稳定)
# enable: true #是否启用
# host: '127.0.0.1:25500' #域名或者ip加端口
# remoteconfig: "https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/config/ACL4SSR_Online.ini" #远程配置
#pingurl: http://www.gstatic.com/generate_204 #自定义延迟测试URL
#netflixurl: "https://www.netflix.com/title/80113701" #自定义奈飞非自制剧检测网页,注意在更换此链接时请确保是非自制的链接。
#speedfile: #自定义测速文件,可以添加多个诸如以下格式或者[https://1.com, https://2.com]
#- https://dl.google.com/dl/android/studio/install/3.4.1.0/android-studio-ide-183.5522156-windows.exe
#- https://dl.google.com/dl/android/studio/install/3.4.1.0/android-studio-ide-183.5522156-windows.exe
#speednodes: 300 # 测速节点数量限制,超过将不会进行测速
#speedthread: 4 #测速线程
#nospeed: true #禁用测速,开启后将无法测速。
#speed_end_colors_switch: false #速度测试渐变色模式,默认关闭
#end_colors_switch: false #联通性测试渐变色模式,默认关闭
#ipstack: true #开启ipv4,ipv6双栈检测。默认关闭(false),开启后可以检测节点是否支持ipv4和ipv6,代价是检测时间会延长。
#localip: false #本地ip数据库(MaxMind格式) ,请将asn数据库与city数据库放入"/resources/databases"文件夹
#dasn: "GeoLite2-ASN.mmdb" #ASN数据库名称,用于获取AS编号
#dorg: "GeoLite2-ASN.mmdb" #org数据库mingc,用于获取组织名称
#dcity: "GeoLite2-City.mmdb" #city数据库名称,用于获取地区代码
#speedconfig: #测速相关配置
# interval: 10 #每个节点的测速时长
#entrance: #入口显示配置
# switch: "ip" #设置为ip将显示入口ip段,设置为cluster将显示簇,默认设置为ip,PS:这里的簇为入口域名绑定的ip地址数量
#user: 12345678 #用户列表,/grant 命令授权的目标会保存在这。推荐使用bot进行授权,而非手动配置。(可选配置)
#emoji: #emoji可选配置
# enable: true #是否启用,默认启用。若否,则在输出图片时emoji将无法正常显示。关闭该项可解决部分图片生成失败的问题。(可选配置)
# emoji-source: 'TwemojiLocalSource' #emoji表情源。默认值为TwemojiLocalSource。分为web源与本地源。可配置的值参考 ./libs/emoji_custom/__all__ 里面的成员变量。目前本地源仅支持: TwemojiLocalSource
#font: './resources/苹方黑体-准-简.ttf' #自定义字体,这里填字体的路径
#slaveconfig:
# default-slave: # 默认后端配置。
# comment: "本地测试后端" # 默认测试后端的备注。
# username: "local" # 默认测试后端的ID,此项请勿修改,会影响本地后端的运行。
Content type
Image
Digest
sha256:6fbff0f51…
Size
341.2 MB
Last updated
about 3 years ago
docker pull sanling000/fulltclash