爱快无感分流 自动更新规则 ikuai-bypass 修改版

# 分流说明

使用爱快分流规则 + 一个二级路由的方式 实现比旁路由模式更稳定 速度更快的 深度学习网络。

# iKuai Bypass修改版 说明

fork 自 https://github.com/ztc1997/ikuai-bypass/
项目地址 https://github.com/joyanhui/ikuai-bypass/

# iKuai Bypass 功能

ip分流规则和域名分流规则添加到爱快的自定义运营商和域名分流,并自动更新规则文件。

# 更新

  • 并发处理 运营商/IP分流 和 域名分流
  • 更新成功后再删除旧规则
  • 支持无docker运行
  • 支持单次运行参数-r nocron忽略配置文件的cron配置
  • 支持单独清理模式-r clean 清理本工具添加的备注为IKUAI_BYPASS的分流规则
  • 支持cron运行参数-r cron -r cronAft

# 命令

1
ikuai-bypass -c 配置文件路径  -r 运行模式
  • 配置文件路径:默认为当前目录下的 config.yml
  • 运行模式
  • cron 默认,会先执行一次然后使用配置文件的cron定时重复执行,如果cron为空那么执行依次后直接退出
  • cronAft 不马上执行,等到cron定时任务触发后再执行
  • nocron为单次执行 运行完成后自动推出
  • clean 清理本工具添加的备注为IKUAI_BYPASS的分流规则

# 通常使用方法

# 简单说明

建议在pve/esxi/unraid/群晖/docker/lxc/podman中运行爱快+openwrt,当然也可以物理设备。
单网卡 pve测试没问题,其他环境同样不会有问题。 爱快3个或者3个以上网卡/虚拟网卡 作为主路由
openwrt/其他linux 双网卡/虚拟网卡,作为下级路由(非旁路由)

# pve下推荐配置

推荐 2G内存安装ikuai 32位版,硬盘1G即可,然后修改为 512M内存
openwrt 官方版,或者自编译版本 内存 256-512M(开clash要300M,v2系256M就可以) 硬盘512M即可,或者看你img的分区。或lxc运行
iKuai Bypass 运行在 openwrt
mosdns 也可以运行在 openwrt mosdns all in one方案 modns配adg方案 64位 爱快,kvm/docker 运行 openwrt 和 iKuai Bypass 以及 mosdns 也可以,但是不推荐。

# 物理网络/虚拟网卡配置 举例

爱快 lan1 绑定到 eth0 开DHCP dhcp范围 10.1.1.5-10.1.1.254
爱快 wan1 绑定到 eth1 pppoe拨号 wan1先设置为默认线路 爱快 wan2 绑定到 eth2 静态ip指定 10.0.0.2 网关10.0.0.1

openwrt wan 绑定到eth1 DHCP客户端,连接到爱快lan1 从爱快静态ip绑定为10.1.1.3 openwrt lan 绑定套eth0 关闭DHCP服务,ip地址配置 10.1.1.1

下文说配置都以上述为例

# 避免死循环

爱快添加一个分流规则 流控分流 > 分流设置 > 端口分流
分流方式:外网线路 线路:wan1 源地址 ip/mac分组 添加一个 10.1.1.3 点加入 保存
此时 openwrt出来的流量 走wan1 不会再到wan2回到openwrt 导致死循环。
此时openwrt 可以正常访问外部网络。

# 配置 wan2 为默认线路

此时所有对外网访问 都会 经过wan2 到openwrt,然后根据你的深度学习软件的分流情况决定是否加密,再回到爱快的lan1 再流向外网。
此时你的上网速度和传统的旁路由模式完全一样,略慢。

# 配置国内域名强制走wan1直连

流控分流 > 分流设置 > 域名分流,选择wan1 ,输入几个域名,输入客户端ip,建议 10.1.1.5-10.1.1.254 ,此时10.1.1.5-10.1.1.254 的设备访问这个域名会直接走wan1 , 不经过openwrt,速度飞快。
当然你自己输入太麻烦了。ikuai-bypass 可以自动帮你维护这个域名列表。

# 配置某些域名强制走wan2 交给openwrt处理

目的是啥,你肯定知道。配置和上面一样,同样 ikuai-bypass 可以自动帮你维护这个域名列表。

# 配置国内ip强制走wan1

因为域名清单里面的域名不能覆盖所有网站,还有一些是没有域名直接ip连接情况。所以需要维护一个根据ip分流的规则。
流控分流 > 分流设置 > 多线负载 自定义运营商 添加运营商 名称:国内ip地址 目的地址:输入几个国内的ip,备注:自定义
返回 流控分流 > 分流设置 > 多线负载 点右侧添加 运营商:选择你刚刚添加的名称,点wan1 后面的启用,保存。
此时 你访问这个ip上的网站或者其他东西,会强制走wan1 不经过openwrt,速度飞快。
同样 ikuai-bypass 可以自动帮你维护这个IP地址列表。

# 配置默认线路 确保网络100%可用性

把wan2 配置为默认线路,网络设置 > 内外网设置 wan2 同时打开

  • 默认网关:设此条线路为默认网关
  • 自动切换:掉线自动切换
  • 线路检测:HTTP www.google.com

此时,访问不在国内域名清单的域名,并且ip不再自定义运营商的国内ip地址的服务器,会默认走wan2。如果openwrt死机或者google连不上,会自动临时禁用wan2 默认走wan1。

# 使用ikuai-bypass 自动维护ip和域名规则。

# 配置文件

需要自定义一个配置文件 config.yml 格式如下。
然后运行 ./ikuai-bypass -c /路径/config.yml 即可在启动时候 自动更新一次规则文件,并在 cron指定的时间内定时运行。
下面的配置文件 会执行一下操作

  1. 自动登陆到 网址是 http://10.1.1.1 的爱快 使用用户名admin 密码 admin888登陆,如果登陆成功。
  2. 运营商/IP分流规则 他会帮你添加 一个 国内IP列表 的运营商,你需要去爱快 流控分流 > 分流设置 > 多线负载 添加规则,选择 国内IP列表 启用wan1
    也会添加几个 telegram google 等ip地址,你可以删掉那几行,也可以添加规则 启用wan2
  3. 另外会添加4个域名分流规则 分别强制走wan1 和wan2 你可以在下面配置文件清晰看到。需要注意的是 china-list 和 gfw两个清单 都很长,添加/更新的时候会很慢。你可以根据你的需求决定是否要保留,添加后会增加你访问网址的速度,但是会增加ikuai的性能消耗(大概增加30-120M内存消耗,cpu负载也会增加一点),如果你的ikuai配置很烂,可以去掉其他规则 只使用 国内IP列表 的IP分流即可 。

文件内容参考 https://github.com/joyanhui/ikuai-bypass/blob/main/config_example.yml

# 部署ikuai-bypass

ikuai-bypass 只要部署在可以访问到 爱快路由器的地方即可。

# 下载最新版

https://github.com/joyanhui/ikuai-bypass/releases

# 直接运行

1
./ikuai-bypass_linux_amd64 -c  /opt/ikuai-bypass/config_example.yml

# 服务模式 openwrt/alpine/rc/systemd

以openwrt为例

1
2
3
4
5
6
7
8
cd /root
wget https://github.com/joyanhui/ikuai-bypass/releases/download/v版本号/ikuai-bypass_v版本号_linux_amd64.tar.gz
tar -zxvf ikuai-bypass*linux_amd64.tar.gz
rm ikuai-bypass*linux_amd64.tar.gz
# 默认配置文件 自己可以根据需求编辑一下
wget -c https://github.com/joyanhui/ikuai-bypass/raw/main/config_example.yml -O kuai-bypass.yml 
# 测试  
/root/ikuai-bypass  -c /root/kuai-bypass.yml

添加服务

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
cat >/etc/init.d/ikuai-bypass<< \EOF
#!/bin/sh /etc/rc.common
#service startup sequence
START=99
start() {
        #start your process with parameters in background
        /root/ikuai-bypass  -c /root/kuai-bypass.yml  &
}
stop() {
        killall ikuai-bypass 
}
EOF
chmod +x /etc/init.d/ikuai-bypass
# 开机启动
service  ikuai-bypass enable
# 现在启动
service  ikuai-bypass start
#或者
/etc/init.d/ikuai-bypass start

重启 openwrt,然后shell运行 ps |grep ikuai-bypass 验证一下是否开机自动启动。
如果不能自动启动,在系统 启动项 本地启动脚本 添加一行 放到 exit 0 前面

1
sh -c 'sleep 30 && /etc/init.d/ikuai-bypass start ' &

# docker

我没有打包docker镜像,因为完全没必要,你可以自己用下面的命令启动一个docker

1
2
3
4
5
6
7
8
mkdir ~/ikuai-bypass/ && cd ~/ikuai-bypass_exe
wget -c https://github.com/joyanhui/ikuai-bypass/raw/main/ikuai-bypass_linux_amd64
chmod +x ./ikuai-bypass_linux_amd64
wget -c https://github.com/joyanhui/ikuai-bypass/raw/main/config_example.yml

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_linux_amd64 -c  /opt/ikuai-bypass/config_example.yml

如果你想部署到爱快内的docker里面 下载 alpine镜像,上传两个文件,然后入口 命令修改为 类似下面的命令即可

1
chmod +x /opt/ikuai-bypass/ikuai-bypass_linux_amd64  && /opt/ikuai-bypass/ikuai-bypass_linux_amd64 -c  /opt/ikuai-bypass/config_example.yml

# 其他补充

# 自定义规则和ikuai-bypass的规则

ikuai-bypass 自动维护的规则 都会添加备注 IKUAI_BYPASS ,只要你添加的自定义的规则备注不是这个即可。

# 关于实例配置文件

实例配置文件使用了 https://mirror.ghproxy.com 作为github的代理方便可以在无科学环境更新规则,但是ghproxy有被gfw污染的先例,请自行更新更稳定的或者自建的github代理。

# 是否可以替代原版ikuai-bypass

可以直接替代,参考上面的docker配置

Licensed under CC BY-NC-SA 4.0
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计