[分享创造] [开源自荐] 做了个 EgressKit,把 Clash 订阅里的节点变成 HTTP 代理池
写脚本、跑浏览器自动化时,有时需要轮换出口 IP ,有时又希望同一个任务一直用同一个 IP 。
我做了个 EgressKit 。导入 Clash/Mihomo 订阅后,它会识别其中的 VLESS 节点,检查出口 IP ,对外提供一个统一的 HTTP 代理地址。程序接入后,通过代理用户名选择出口策略。
项目地址:heyjunpenn/EgressKit
用 Docker 一条命令启动,把下面的 your-admin-token 换成自己的密码:
docker run -d \
--name egresskit \
--restart unless-stopped \
-p 127.0.0.1:8787:8787 \
-v egresskit-state:/var/lib/egresskit \
-e EGRESSKIT_ADMIN_TOKEN='your-admin-token' \
heyjunpenn/egresskit:latest
镜像支持 amd64 和 arm64 ,Mihomo 和 Web 控制台都打包在里面。启动后打开 http://127.0.0.1:8787,输入刚才设置的密码,导入自己的订阅,等出口检查完成就能用了。
比如,用 curl 发起请求。Proxy Token 初始与上面设置的密码相同,也可以在后台单独修改。
curl --proxy 'http://127.0.0.1:8787' \
--proxy-user 'rotate:your-admin-token' \
'https://www.cloudflare.com/cdn-cgi/trace'
下面是实际请求的结果,出口 IP 做了部分遮盖。截图中的 $EGRESSKIT_PROXY_TOKEN 填自己的 Proxy Token 即可。

rotate 会为新连接选择最长未使用的出口 IP 。连续请求三次,可以看到出口发生了变化:

如果希望同一个任务尽量保持出口不变,把用户名换成 sticky.task-01 就行。下面三次请求用了同一个会话,出口保持一致:

也支持严格固定出口和指定出口,具体用法放在了 README 里。
后台大概长这样,截图里的订阅和节点信息做了遮盖。首页能看到代理入口、可用节点和出口 IP 概况。

订阅可以在页面里添加、编辑和删除,也会定时更新。导入后自动开始检查出口 IP 。

代理列表能查看出口 IP 、地区和检查时间,支持按 IP 筛选,也可以手动检查单个节点或全量检查。

代码按 Apache-2.0 开源,更多接入示例放在 README 里。
有类似需求的 V 友可以试试,觉得有用的话,欢迎给个 Star 🙂