近期有给家里的网络做个分流,这里记录下脚本
将以下脚本放入system-scripts里面
{ :global result [/tool fetch url=https://raw.githubusercontent.com/misakaio/chnroutes2/master/chnroutes.txt as-value output=user]; # 路由表定义 :global "routetable" "国内网络" :if ($result->"status" = "finished") do={ # 清空定义的路由表 :foreach i in=[/ip route rule find table=$routetable] do={ :do { /ip route rule remove number=$i } on-error={ }; } :global content ($result->"data"); :global contentLen [ :len $content ] ; :global lineEnd 0; :global line ""; :global lastEnd 0; :do { :set lineEnd [:find $content "\n" $lastEnd ] ; :if ([:typeof $lineEnd] = "nil") do={ :error done } :set line [:pick $content $lastEnd $lineEnd] ; :set lastEnd ( $lineEnd + 1 ) ; :if ( [:pick $line 0 1] != "#" ) do={ :local entry [:pick $line 0 $lineEnd ] :if ( [:len $entry ] > 0 ) do={ # 从 result 处每行获取路由并加入ip route rule /ip route rule add action=lookup-only-in-table dst-address=$entry table=$routetable } } } while ($lineEnd <= $contentLen) on-error={} } }
可以设置一个cron定时运行进行更新
到这里路由表里面就已经出现了一个叫国内网络的表了,针对这个表就可以继续使用mangle或者rules进行修改下一跳进行分流了
是不是很简单
文章评论
很好,我是在github上把地址转成ros格式,在ros里定时下载直接用