joyanhui / ikuai-bypass

爱快分流规则维护:用更完善更灵活的方式,自动将通过指定的远程配置文件把区域ip,域名等,整理到到爱快的端口分流、自定义运营商、域名分流、广告屏蔽等
https://dev.leiyanhui.com/route/ikuai-bypass-joyanhui/
Apache License 2.0
201 stars 22 forks source link
ikuai openwrt

iKuai Bypass

通过自定义运营商分流或者端口分流的方式实现非旁路由方式的自动分流,并定时更新规则。实现国内ip或者指定的ip或者指定的域名列表走直连或者经过openwrt等另外处理。 爱快有简单易用的分流功能可以实现诸多功能,但是因为大家喜闻乐见的分流规则数据可能几万条,在ikuai上维护更新比较麻烦,这个工具就是为了自动从订阅地址更新爱快的分流规则的域名分流和运营商分流。

如有bug反馈和建议都可以提issues,我会尽快处理。给个star我会很开心。

关于dns部分,建议用mosdns自建,这里有一个本人维护的支持自动更新相关规则文件的mosdns的docker.[joyanhui/mosdns].可以简单自动更新dns分流解析规则,广告屏蔽,以及ipv4优先等功能

ip分组和端口分流方式 说明:

ikuai 可以通过分流规则 让国内ip直连(或其他ip范围),非国内ip指定下一跳网关通常是openwrt。再把出口流量给上游运营商。实现方式参考[#7] 或者 [恩山y2kji] 或B站网友的教程

自定义运营商分流方式 说明:

ikuai 可以通过分流规则 把openwrt或者其他路由作为爱快的上级虚拟运营商,同时作为ikuai的下级路由,再把openwrt的出口流量绑回到爱快实际的运营商,实现无感分流:国内网站访问速度更好、不用单独配置网关、openwrt炸了不影响正常上网、openwrt恢复后网络自愈。查看具体实现方式 或者查看 恩山eezz 或者下文 分流模式的简单说明。 这种方式比传统用openwrt的作为旁路由的指定网关的方案,或者only openwrt的方案更加稳定,速度更好。 缺点是 网络top看起来有一些复杂,非开箱即用

运营商和域名分流模式简单说明

通常是爱快+openwrt的双路由方式,ikuai可以是物理机也可以是虚拟机。openwrt同样可以是物理机也可以是虚拟机,也可以是lxc/docker也可以部署到爱快内。
ikuai需要分配3个网口(分别绑定到wan1 wan2 lan1),openwrt需要2个(wan和lan)。可以是物理网卡也可以是虚拟网卡。

点击这里展开查看详细图文说明 图文说明

主要修改点

参数说明

更新日志

不同平台下

linux(推荐openwrt内直接运行)

下载 linux-xxx.zip,unzip 后在shell运行。 建议把ikuai-bypass作为服务安装到openwrt [参考安装脚本]

docker

下载linux版本,参考命令如下

mkdir ~/ikuai-bypass/ && cd ~/ikuai-bypass
# 下载amd64版本,如arm版本自行修改
wget -c https://github.com/joyanhui/ikuai-bypass/releases/download/v0.2.2/ikuai-bypass-linux-amd64.zip
unzip ikuai-bypass-linux-amd64.zip
# 编辑默认的 config.yml  略
# 创建容器 docker/podman
docker run -itd  --name ikuai-bypass  --privileged=true --restart=always   \
    -v  ~/ikuai-bypass/:/opt/ikuai-bypass/   \
    alpine:3.18.4  /opt/ikuai-bypass/ikuai-bypass -c  /opt/ikuai-bypass/config.yml -r cron

ikuai docker下

因为ikuai 无法直接执行shell命令,实在懒得给这种小工具打包镜像,尤其是基于的golang根本没有外部依赖只是一个可执行文件。 如果您要在ikuai的docker内运行。请自行下载 linux版本。解压后 上传可执行文件和配置文件 到ikuai数据盘。例如/data0/ikuai-bypass/ikuai-bypass /data0/ikuai-bypass/config.yml 而后在ikuai的docker中随便下载一个通用的linux镜像,例如 alpine:3.18.4 。创建docker 目录挂载 /data0/ikuai-bypass/ 到容器内 /opt/ikuai-bypass/ 启动命令修改为:

chmod +x /opt/ikuai-bypass/ikuai-bypass  && /opt/ikuai-bypass/ikuai-bypass -r cron -c  /opt/ikuai-bypass/config.yml

如启动失败可尝试以下命令

/opt/ikuai-bypass/ikuai-bypass -c /opt/ikuai-bypass/config.yml -r cron

windows

请在 releases 里面点击 show all xx assets 可以看到windows的包 下载解压cmd下cd到解压后的目录运行里面的exe程序。
或许因ikuai-bypass需要获取在线数据,并使用了upx压缩,也没有另外加壳,部分杀软可能会报毒或者安全风险,[#6] 请自行决定是否信任,或者安装go环境后git clone后自行编译。我没有WIN环境,也不打算解决此类问题。

macos下

下载 darwin-arm64.zip 或者darwin-amd64.zip,unzip 后在shell运行。其他参考上文linux

v0.1.15 升级0.2版

v0.2.x 以后规则的备注不再只有字符IKUAI_BYPASS,会根据tag添加指定的后缀,所以升级到0.2.x后最好清理掉旧的分流规则重新添加。 另外新版配置文件中每条规则都多了一个 tag: 备注后缀 用于区分不同的规则 [参考]

./ikuai-bypass -c /路径/config.yml -r clean -tag cleanAll # 清理所有备注名包含`IKUAI_BYPASS`的分流规则
./ikuai-bypass -c /路径/config.yml -r cron #先运行一次 而后等待计划任务触发 

我自用过的环境

单网口/双网口

其他相关说明

https://dev.leiyanhui.com/route/ikuai-bypass-joyanhui/

致谢