对比原项目是修复了一些逻辑、简化了一些东西、增加了一些功能、节省很多内存、一键启动无需配置
注意:当前是V2版本,有重大更新,请看最新Releases
- 检测节点可用性,去除不可用节点
- 新增参数
keep-success-proxies
用于持久保存测试成功的节点,可避免上游链接更新导致可用节点丢失,此功能默认关闭
- 新增参数
检测平台解锁情况暂时注释了,因为我觉得没啥用openaiyoutubenetflixdisney
- 合并多个订阅
- 将订阅转换为clash/mihomo/base64格式
- 节点去重
- 节点重命名
- 节点测速(单线程)
- 根据解锁情况分类保存
- 支持外部拉取结果(默认监听 :8199)(弃用)
- 支持100+ 个通知渠道 通知检测结果
- 内置sub-store程序
- 支持多平台
- 支持多线程
- 资源占用低
- 适配多种订阅格式
- 支持更多的保存方式
- 本地
- cloudflare r2
- gist
- webdav
- http server
- 其他
- 已知从clash格式转base64时vmess节点会丢失。因为太麻烦了,我不想处理了。
- 可能在某些平台、某些环境下长时间运行还是会有内存溢出的问题
如果拉取订阅速度慢,可使用通用的
HTTP_PROXY
HTTPS_PROXY
环境变量加快速度;此变量不会影响节点测试速度
带用户名密码的Proxy也支持,格式 http 代理
http://username:password@host:port
socks5代理:socks5://username:password@host:port
socks5h代理:socks5h://username:password@host:port
export HTTP_PROXY=http://username:[email protected]:7890
export HTTPS_PROXY=http://username:[email protected]:7890
# socks5代理
export HTTP_PROXY=socks5://username:[email protected]:7890
export HTTPS_PROXY=socks5://username:[email protected]:7890
# socks5h代理
export HTTP_PROXY=socks5h://username:[email protected]:7890
export HTTPS_PROXY=socks5h://username:[email protected]:7890
如果想加速github的链接,可使用网上公开的github proxy
,或者使用下方自建测速地址处的worker.js
自建加速,自建的加速使用方式:
# 注意只能加速 GitHub的链接。带不带协议头均可,支持 release、archive 以及文件
https://custom-domain/raw/https://raw.githubusercontent.com/mfuu/v2ray/master/clash.yaml
https://custom-domain/raw/链接
# 这是部署完后的固定前缀 ----> https://custom-domain/raw/ <---- 就是那个/raw/
因为上游订阅链接可能是爬虫,所以本地可用的节点经常被刷新掉,所以可以使用
keep-success-proxies
参数持久保存测试成功的节点 此参数默认关闭。并且会将数据临时存放到内存中,如果可用节点数量非常多,请不要打开此参数(因为可能会占用一点内存)。 可将生成的链接添加到订阅链接当中一样可以实现此效果
程序内置了部分订阅地址,不需要任何更改即可使用
程序运行第一次会在程序当前目录生成默认配置文件,再次运行即可起飞。
尽量不要使用Speedtest,Cloudflare提供的下载链接,因为很多节点屏蔽测速网站
- 将 worker.js 部署到 Cloudflare Workers
- 绑定自定义域名(目的是为了不被节点屏蔽)
- 将 speed-test-url 配置为你的 worker自定义域名地址
# 100MB
speed-test-url: https://custom-domain/speedtest?bytes=104857600
# 1GB
speed-test-url: https://custom-domain/speedtest?bytes=1073741824
如果使用新功能sub-store,需要额外增加端口如
-p 8299:8299
docker run -d --name subs-check -p 8199:8199 -v ./config:/app/config -v ./output:/app/output --restart always ghcr.io/beck-8/subs-check:latest
# 如果想使用代理,加上环境变量,如
docker run -d --name subs-check -p 8199:8199 -e HTTP_PROXY=http://192.168.1.1:7890 -e HTTPS_PROXY=http://192.168.1.1:7890 -v ./config:/app/config -v ./output:/app/output --restart always ghcr.io/beck-8/subs-check:latest
version: "3"
services:
mihomo-check:
image: ghcr.io/beck-8/subs-check:latest
container_name: subs-check
volumes:
- ./config:/app/config
- ./output:/app/output
ports:
- "8199:8199"
# - "8299:8299"
environment:
- TZ=Asia/Shanghai
# 是否使用代理
# - HTTP_PROXY=http://192.168.1.1:7890
# - HTTPS_PROXY=http://192.168.1.1:7890
restart: always
tty: true
network_mode: bridge
go run main.go -f /path/to/config.yaml
下载 releases当中的适合自己的版本解压
直接运行即可,会在当前目录生成配置文件
目前,此项目使用Apprise发送通知,并支持 100+ 个通知渠道。
但是 apprise 库是用 Python 编写的,Cloudflare 最近发布的 python worker在部署 apprise 时仍然存在问题
所以我们下边提供两种部署方式的教程(当然实际不止两种)
- 请单击此处即可在您的 Vercel 帐户上部署 Apprise
- 部署后,您将获得一个类似
https://testapprise-beck8s-projects.vercel.app/
的链接,在其后附加/notify
,然后您将获得 Apprise API 服务器的链接:https://testapprise-beck8s-projects.vercel.app/notify
- 请将你的Vercel项目添加一个自定义域名,因为Vercel在国内几乎访问不了
docker run --name apprise -p 8000:8000 --restart always -d caronc/apprise:latest
# 如果你将docker部署在国内,你还想要发送到国外的平台,那需要添加 HTTP_PROXY HTTPS_PROXY 环境变量
docker run --name apprise \
-p 8000:8000 \
-e HTTP_PROXY=http://192.168.1.1:7890 \
-e HTTPS_PROXY=http://192.168.1.1:7890 \
--restart always \
-d caronc/apprise:latest
然后根据Apprise wiki编写发送通知的 URL,其中有关于如何设置每个通知渠道的详细文档和说明。例如,对于电报,您的 URL 是tgram://botToken/chatId
,我在默认配置里边写了一些示例,可以当作参考
# 填写搭建的apprise API server 地址
# https://notify.xxxx.us.kg/notify
apprise-api-server: ""
# 填写通知目标
# 支持100+ 个通知渠道,详细格式请参照 https://github.com/caronc/apprise
recipient-url:
# telegram格式:tgram://<bot_token>/<chat_id>
# - tgram://xxxxxx/-1002149239223
# 钉钉格式:dingtalk://<secret>@<dd_token>/<chat_id>
# - dingtalk://xxxxxx@xxxxxxx/123123
注意:选择保存方法时,记得更改
save-method
配置
如果上边部署了worker.js
,下方使用即可,无需重复部署
现在会保存三个个文件,一个只有节点的
all.yaml
,一个带有分流规则的mihomo.yaml
,另一个base64编码的base64.txt
- 本地保存: 将结果保存到本地,默认保存到可执行文件目录下的 output 文件夹
- r2: 将结果保存到 cloudflare r2 存储桶 配置方法
- gist: 将结果保存到 github gist 配置方法
- webdav: 将结果保存到 webdav 服务器 配置方法
根据客户端的类型自己选择是否需要订阅转换
http://127.0.0.1:8199/all.yaml
返回yaml格式节点http://127.0.0.1:8199/mihomo.yaml
返回带分流规则的mihomo订阅http://127.0.0.1:8199/base64.txt
返回base64格式的订阅
内置了Sub-Store程序,可以生成任意类型的链接,设置端口才能打开此功能
假设你在配置文件中开启了此参数
sub-store-port: 8299
sub-store默认监听0.0.0.0,所以你可以在任何设备上访问,在非本机访问需要填写正确的IP
注意:除非你知道你在干什么,否则不要将你的sub-store暴露到公网,否则可能会被滥用
注意:你只需要更改IP和端口,path路径不需要更改。
# 通用订阅
http://127.0.0.1:8299/download/sub
# uri订阅
http://127.0.0.1:8299/download/sub?target=URI
# mihomo/clashmeta
http://127.0.0.1:8299/download/sub?target=ClashMeta
# clash订阅
http://127.0.0.1:8299/download/sub?target=Clash
# v2ray订阅
http://127.0.0.1:8299/download/sub?target=V2Ray
# shadowrocket订阅
http://127.0.0.1:8299/download/sub?target=ShadowRocket
# Quantumult订阅
http://127.0.0.1:8299/download/sub?target=Quantumult
# sing-box订阅
http://127.0.0.1:8299/download/sub?target=sing-box
# Surge订阅
http://127.0.0.1:8299/download/sub?target=Surge
# Surfboard订阅
http://127.0.0.1:8299/download/sub?target=Surfboard
OK,我知道你很懒,你想要带规则的mihomo/clash订阅,下边这个就是。
# mihomo 带规则的配置
http://127.0.0.1:8299/api/file/mihomo
小白勿看!!!
这个依赖github上的yaml文件进行覆写
默认使用:https://slink.ltd/https://raw.githubusercontent.com/mihomo-party-org/override-hub/main/yaml/ACL4SSR_Online_Full.yaml
如果遇到无法下载或者想使用其他格式,更改配置中的mihomo-overwrite-url
即可
此处与上方的
http://127.0.0.1:8199/mihomo.yaml
有什么区别?上方的是基于此链接download下来的文件,主要用于保存到local
r2
gist
webdav
使用,所以你使用哪个都可以。唯一的区别在于,此链接会根据你配置的覆写URL,实时生成带分流规则的文件。
如果你还有什么其他的需求,使用上方的通用订阅自己处理,或者学习sub-store中的文件管理,可以写任意插件,功能真的很强大!!!
直接裸核运行 tun 模式(忽略)
原作者写的Windows下的裸核运行应用 minihomo
- 下载base.yaml
- 将文件中对应的链接改为自己的即可
例如:
proxy-providers:
ProviderALL:
url: https:// #将此处替换为自己的链接
type: http
interval: 600
proxy: DIRECT
health-check:
enable: true
url: http://www.google.com/generate_204
interval: 60
path: ./proxy_provider/ALL.yaml
本工具仅用于学习和研究目的。使用者应自行承担使用风险,并遵守相关法律法规。