• fuyou97

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

    主楼
  • itechify

    可以链式吗

    #1
  • imqiyue

    这个有点意思,不错

    #2
  • fuyou97

    @itechify 不支持

    #3
  • fuyou97

    @imqiyue 感谢

    #4
  • xialaoban

    https://github.com/Resinat/Resin 和这个项目有点类似?

    #5
  • fuyou97

    @xialaoban 还真是,这个还更完善。早知道不写了

    #6
  • imqiyue

    @fuyou97 重复造轮子不是很常见的么,能自己实现一个,并分享出来,会很有成就感的~

    #7

发表回复

登录后回复