2022.5.27更新:添加一个prerouting不匹配OP流量

2022.5.9更新:排除部分端口

20220426更新自动更新地址列表

其实在wireguard那期使用的就是这个分流,目前来说分流的方法有三种:IP地址分流,OSPF分流,BGP分流。今天单独写了这个也算齐全了。
ROS分流一直涉及一个问题,DNS分流。DNS分流可以使用七层协议,但是我觉的不是特别好用,所以建议大家DNS放在OP或者单独的系统,我推荐的是MosDNS,所以这篇文章不涉及DNS分流了。

获取CN地址列表

方法一

我们需要使用curl命令下载生成IPIP发布在github的中国地址列表ROS的脚本

curl -s https://raw.githubusercontent.com/17mon/china_ip_list/master/china_ip_list.txt |sed -e 's/^/add address=/g' -e 's/$/ list=CNIP/g'|sed -e $'1i\\\n/ip firewall address-list' -e $'1i\\\nremove [/ip firewall address-list find list=CNIP]' -e $'1i\\\nadd address=10.0.0.0/8 list=CNIP comment=private-network' -e $'1i\\\nadd address=172.16.0.0/12 list=CNIP comment=private-network' -e $'1i\\\nadd address=192.168.0.0/16 list=CNIP comment=private-network'>cnip.rsc

这个已经添加了内网地址

方法二

下载别人制作好的脚本
http://www.iwik.org/ipcountry/mikrotik/CN

这个导入后记得添加自己的内网地址

方法三

使用我制作的每天生成的脚本
www.truenasscale.com/cnip.rsc

这个已经添加了内网网段192.168.0.0/16和10.0.0.0/24

导入

使用import命令导入ROS

图片.png

排除openwrt

因为这个IP地址分流,分流指向的网关可以是内网其他的设备(如openwrt),所以我们这提前给它排除一下,以防止分流规则重复匹配openwrt

图片.png

图片.png

图片.png

标记分流

我们需要创建一个routing table

图片.png

图片.png

我们还需要建立一个proxy的地址列表,里面写我们让走代理的IP地址

图片.png

然后标记

图片.png

图片.png

图片.png

图片.png

然后设置路由表

图片.png

网关就是你要分流到的地址,可以是OpenWRT,wireguard等等。

自动更新地址列表

地址列表虽然简简单,但是不会自动更新,不过我们可以写一个脚本让他更新,我已经做好了更新的服务器,我们只需要直接用就可以了。

注意:前面导入的地址列表最好一开始就用方法三的(也就是我做的)

创建脚本

图片.png

图片.png

名字最好和我一样:update-cnip

脚本:

/tool fetch mode=http url="https://www.truenasscale.com/cnip.rsc" \
dst-path=cnip.rsc
/im file=cnip.rsc
/file remove [find name="cnip.rsc"]
:log info ("update done")

图片.png

创建定时任务

图片.png

名字:update-cnip

内容:

:execute script="update-cnip"

我这里设置的每7天执行一次脚本,IP地址列表一般不会有什么变动,所以不用经常更新,服务器上的列表是每天更新。

排除部分端口

有粉丝想要排除一些高端口,其实只需要一步

图片.png

如图在我们创建的标记里面,协议选择tcp(根据自己需求),dst port里面填我们要排除的端口

写法可以是像图片一样用冒号分隔,也可以是个范围如:1300-65535

图片.png

最后修改:2022 年 05 月 27 日
感谢您的支持