[开源自荐] 做了个 EgressKit,把 Clash 订阅里的节点变成 HTTP 代理池

fuyou97 2026-09-11 00:20 1

写脚本、跑浏览器自动化时,有时需要轮换出口 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 即可。


curl HTTPS 请求


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


curl Rotate 轮换出口


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


curl Sticky 固定出口


也支持严格固定出口和指定出口,具体用法放在了 README 里。


后台大概长这样,截图里的订阅和节点信息做了遮盖。首页能看到代理入口、可用节点和出口 IP 概况。


EgressKit 首页


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


订阅管理


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


代理管理


代码按 Apache-2.0 开源,更多接入示例放在 README 里。


有类似需求的 V 友可以试试,觉得有用的话,欢迎给个 Star 🙂

最新回复 (7)
  • itechify 09-11 00:51
    1
    可以链式吗
  • imqiyue 09-11 09:10
    2
    这个有点意思,不错
  • fuyou97 楼主 09-11 10:25
    3
    @itechify 不支持
  • fuyou97 楼主 09-11 10:26
    4
    @imqiyue 感谢
  • xialaoban 09-11 13:01
    5
    https://github.com/Resinat/Resin 和这个项目有点类似?
  • fuyou97 楼主 09-11 13:54
    6
    @xialaoban 还真是,这个还更完善。早知道不写了
  • imqiyue 09-11 17:23
    7
    @fuyou97 重复造轮子不是很常见的么,能自己实现一个,并分享出来,会很有成就感的~
* 帖子来源V2EX
返回