vvbbnn00 / WARP-Clash-API
该项目可以让你通过订阅的方式使用Cloudflare WARP+,自动获取流量。This project enables you to use Cloudflare WARP+ through subscription, automatically acquiring traffic.
AI Architecture Analysis
This repository is indexed by RepoMind. By analyzing vvbbnn00/WARP-Clash-API in our AI interface, you can instantly generate complete architecture diagrams, visualize control flows, and perform automated security audits across the entire codebase.
Our Agentic Context Augmented Generation (Agentic CAG) engine loads full source files into context, avoiding the fragmentation of traditional RAG systems. Ask questions about the architecture, dependencies, or specific features to see it in action.
Repository Summary (README)
PreviewWARP Clash API
中文 | English
Warning
本项目是完全非商业项目,仅供学习交流使用,请勿用于非法用途,否则后果自负。
🤔 这是什么?
该项目可以让你通过订阅的方式使用WARP+,支持Clash、Shadowrocket等客户端。项目内置了
刷取WARP+流量的功能,可以让你的WARP+流量不再受限制(每18秒可获得1GB流量),同时,
配备了IP选优功能。支持Docker compose
一键部署,无需额外操作,即可享受你自己的WARP+私
有高速节点!
💡 特色功能
- 💻 支持
Clash、Surge、Shadowrocket等客户端 - 🔑 支持设置您自己的
LicenseKey - 🌏 支持
IP选优 - 🐋 支持
Docker compose一键部署 - 📕 全自动刷取
WARP+流量,请求经过代理,防封IP - ❓ 每次更新订阅随机节点,让你体验抽卡的乐趣
🚀 快速上手
1. 安装Docker和Docker compose
Docker安装教程:https://docs.docker.com/engine/install/Docker compose安装教程:https://docs.docker.com/compose/install/
2. 下载项目
git clone https://github.com/vvbbnn00/WARP-Clash-API.git
3. [可选] 配置SECRET_KEY
若您需要在公网上部署该项目,建议您配置SECRET_KEY与PUBLIC_URL。在项目目录下创建
.env.local文件,写入如下内容:
SECRET_KEY=your_secret_key
关于环境变量的更多信息,请参考环境变量。
4. 编译并运行
docker-compose up -d
5. 获取订阅链接
访问http://你的IP:21001,输入SECRET_KEY(若没有配置,则可以留空),即可获取订阅链接。
🎉 大功告成
🌏 手动IP选优
项目本身包含了一个选优过的IP列表,但是由于WARP的IP
是动态的,所以可能会出现IP不可用的
情况。若您需要手动选优,可以遵循以下步骤:
若您通过docker-compose部署,可以在项目目录下通过以下命令手动执行IP选优:
docker-compose exec warp-clash python3 app.py optimize
否则,可以在项目目录下执行以下命令:
python3 app.py optimize
🔧 环境变量
没错,您可以通过环境变量来配置该项目,在配置时,只需新建一个.env.local文件,写入您需要的环境
变量即可。
以下是可用的环境变量:
| 变量名 | 默认值 | 说明 |
|---|---|---|
| DELAY_THRESHOLD | 500 | 延迟阈值,超过该阈值的IP将被剔除 |
| DO_GET_WARP_DATA | True | 是否刷取WARP+流量,若不需要刷取流量,则设置为False即可 |
| GET_WARP_DATA_INTERVAL | 18 | 刷取WARP+流量的时间间隔,单位为秒,每隔该时间间隔会刷取一次WARP+流量,不建议间隔设置过短。 |
| LOSS_THRESHOLD | 10 | 丢包率阈值,超过该阈值的IP将被剔除 |
| PROXY_POOL_URL | https://getproxy.bzpl.tech/get/ | IP代理池地址,用于刷取WARP+流量,您可以自行搭建,参照proxy_pool |
| PUBLIC_URL | 无 | 部署在公网上时,填写公网IP或域名,用于生成订阅链接,比如 https://subs.zeabur.app |
| RANDOM_COUNT | 10 | 每次更新订阅随机节点的数量 |
| REOPTIMIZE_INTERVAL | -1 | 重新选优的时间间隔,单位为秒,若小于等于0,则不会重新选优,否则每隔该时间间隔会重新选优一次,不建议间隔设置过短。 |
| REQUEST_RATE_LIMIT | 0 | 限制X秒一次请求,该功能不太稳定,建议不要开启 |
| SECRET_KEY | 无 | 用于保护订阅链接,若不配置,则不需要输入SECRET_KEY即可获取订阅链接 |
| SHARE_SUBSCRIPTION | False | 若您的站点想要向社区分享订阅,但不想让自己的账户信息被公开或修改,可以设置为True,此时,访问订阅链接时,不需要输入SECRET_KEY即可获取,而对于其他的操作,仍然需要输入SECRET_KEY。 |
📝 配置示例
例如,您设置SECRET_KEY为123456,并打算将订阅分享给社区,那么您的.env.local
文件应该
如下:
SECRET_KEY=123456
SHARE_SUBSCRIPTION=True
🧰 进阶操作
请注意,如果您设置了SECRET_KEY,需要在URL的末尾添加key参数,例如:
http://your_IP:21001/some/api/actions?key=your_secret_key
重置账户的PublicKey和PrivateKey
项目支持您通过请求以下接口来重置PublicKey和PrivateKey:
curl -X POST http://host:port/api/account/reset_key
重置过后,需要重新获取订阅内容,否则可能无法使用。
设置自己的LicenseKey
若您已经拥有了WARP+的LicenseKey,可以通过以下接口来设置:
curl -X POST http://host:port/api/account/update_license -H "Content-Type: application/json" -d "{\"license_key\": \"your_license_key\"}"
请注意,当您设置了LicenseKey后,其PublicKey和PrivateKey将会被重置,需要重新获取订阅
内容。
使用 IPv6 优选
从原理上来看,本服务通过读取config/result_v6.csv文件获取IPv6地址,因此您可以在支持
IPv6的服务器上运行IP选优功能来获得IPv6地址。获取到的接入地址列表只需写入
config/result_v6.csv文件中,相比在Docker容器中运行IP选优功能,此方法更为简便。
如果您需要在Docker容器中运行IP选优功能,可以使用docker-compose_ipv6.yaml
文件来让Docker镜像支持IPv6。在运行前,请确保您的服务器支持IPv6,并在Docker服务的
/etc/docker/daemon.json中添加以下内容,并重启Docker服务:
{
"experimental": true,
"ip6tables": true,
"ipv6": true,
"fixed-cidr-v6": "2001:db8:1::/64"
}
若您在先前已经运行过Docker服务,在运行之前,请先停止之前的服务:
docker-compose down
然后,您可以通过以下命令来运行Docker服务:
docker-compose -f docker-compose_ipv6.yaml up -d
🗂️ 引用项目
本项目的开发参照了以下项目,感谢这些开源项目的作者: