WARP Clash API
中文 | English
警告
本项目完全非商业性质,仅供学习交流使用,请勿用于非法用途,否则后果自负。
🤔 这是什么?
该项目可以让你通过订阅的方式使用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
🗂️ 引用项目
本项目的开发参照了以下项目,感谢这些开源项目的作者: