在Openwrt中创建一个基于所有国内IP地址段的IPset,用以结合MWAN3等插件实现基于目的IP的流量分流。
国内IP网段数据源:https://www.ipdeny.com/ipblocks/data/countries/cn-aggregated.zone 权威好用,一共有5500多个经CIDR汇总后的网段。
在Openwrt路由器上执行:
wget -O- http://www.ipdeny.com/ipblocks/data/countries/cn.zone > ./chinaip.txt #下载IP数据文件到本机,命名为chinaip.txt
ipset create chnroute hash:net #创建名为chnroute的ipset
sed -i 's/^/add chnroute /' chinaip.txt #在chinaip.txt文件的每一行增加add chnroute的前缀,为批量导入做准备
ipset restore < chinaip.txt #批量导入IP段至ipset chnroute
IPset不会自动永久保存,路由器重启后会失效。为了使其持久化,可采用如下方法:
在/etc/sysupgrade.conf文件内添加一个需要系统保留的目录,比如/myfile/,该目录里的内容不会因为系统升级而丢失
将IPset chnroute保存至/myfile/目录下: ipset save chnroute -f /myfile/chnroute.ipset
在/etc/rc.local文件中添加一行命令 ipset restore < /myfile/chnroute.ipset 该命令会在每次系统重启后自动执行来恢复IPset