RouterOS 最新中国路由表自动更新与拆分工具

📅 2026-06-23 13:47:51 ✍️ admin 👁️ 733 ❤️ 33
RouterOS 最新中国路由表自动更新与拆分工具

关键字:RouterOS 最新中国路由表、中国 IP 路由表、RouterOS地址列表拆分、国际网络优化、电商路由优化

项目简介

https://github.com/miaolink/routeros_chinaip_new

本项目为 RouterOS 用户提供一个自动化工具,用于下载 最新、最全的中国 IP 路由表(基于 APNIC 数据),并生成 RouterOS 可直接导入的 .rsc 脚本文件。脚本将中国 IP 地址整合为单一地址列表(ChinaIp),确保逻辑正确性,简化配置。本工具通过自动化下载和生成 mangle 规则,优化 RouterOS 的网络分流效率,特别适合中国用户。项目解决以下痛点:

路由表更新繁琐:手动维护中国 IP 列表费时,更新不及时。

配置复杂:单一大型地址列表配置复杂,mangle 规则易出错。

性能与逻辑平衡:需在性能优化与逻辑正确性间找到平衡点。

用户痛点与解决方案

痛点 1:中国路由表更新困难

问题:中国 IP 网段(由 CNNIC、APNIC 分配)频繁更新,手动维护耗时,易遗漏。

解决方案:

自动从 APNIC(delegated-apnic-latest)下载最新中国 IPv4 路由表,备选 chnroute 数据源。

支持离线使用本地 delegated-apnic-latest 文件,允许用户手动调整。

一键生成 .rsc 文件,直接导入 RouterOS,省去手动更新麻烦。

痛点 2:地址列表配置复杂

问题:中国 IP 路由表通常包含 6000-8000 条 CIDR,单一列表配置复杂,且拆分可能导致逻辑错误(如非 IP 判断误标记)。

解决方案:

使用单一 ChinaIp 地址列表,避免拆分带来的逻辑问题。

确保逻辑正确:非中国 IP 准确标记,中国 IP 不被误处理。

简化配置:单一列表减少 mangle 规则数量,降低出错风险。

性能考虑:单一列表匹配耗时约 250-500μs,适合中低端 RouterOS 设备,未来可通过 CIDR 合并优化。

痛点 3:mangle 规则编写困难

问题:手动编写 mangle 规则(如 dst-address-list=!ChinaIp)繁琐,易出错。

解决方案:

自动生成单条 mangle 规则,写入 .rsc 文件末尾,匹配 dst-address-list=!ChinaIp。

支持自定义 src-address-list(默认 lan_IP)和 new-routing-mark(默认 GF_R)。

示例规则:/ip firewall mangle add chain=prerouting action=mark-routing new-routing-mark=G_R passthrough=no src-address-list=lan_IP dst-address-list=!ChinaIp

功能特点

自动化下载:从 APNIC 获取最新中国 IP 路由表,备选 chnroute。

单一地址列表:生成单一 ChinaIp 列表,确保逻辑正确,简化配置。

mangle 规则生成:可选自动生成单条 mangle 规则,支持自定义源地址列表和路由标记。

离线支持:检测本地 delegated-apnic-latest,允许手动调整。

中文提示:日志和交互提示为中文,适配中国用户。

跨平台:支持 Windows 11(可打包为 .exe),运行目录存储文件。

无备注:生成的 .rsc 文件无 # 备注,兼容 RouterOS 导入。

适用场景

RouterOS 用户需要定期更新中国 IP 路由表。

优化国内外网络流量分流。

简化高并发网络环境下的地址列表和 mangle 规则配置。

离线环境或需手动调整路由表。

安装与依赖

操作系统:Windows 11(兼容 Linux、macOS)

Python 版本:3.9+(推荐 3.12)

依赖库:requestspip install requests

安装步骤

下载并安装 Python:https://www.python.org/downloads/

勾选“Add Python to PATH”。

安装依赖:pip install requests

下载本项目:

克隆仓库:git clone https://github.com/miaolink/routeros_chinaip_new.git cd routeros_chinaip_new

或直接下载 china_ip_split_rsc.py.

使用方法

运行脚本

将 china_ip_split_rsc.py 放置在任意目录。

打开命令提示符(CMD)或 PowerShell:cd path\to\script\directory python china_ip_split_rsc.py

程序提示:

是否使用本地 delegated-apnic-latest 文件(默认否):发现本地文件:delegated-apnic-latest 是否使用本地 delegated-apnic-latest 文件?(y/N):

输入 y 使用本地文件,N 或回车下载最新数据。

是否添加 mangle 规则(默认是):是否在 .rsc 文件中添加 /ip firewall mangle 规则?(Y/n):

输入 Y 或回车包含规则,n 仅生成地址列表。

输出:

.rsc 文件(如 china_ip_list_20250618_104500.rsc)生成在程序目录。

下载文件(delegated-apnic-latest 或 CN.rsc)也在程序目录。

自定义参数

支持命令行参数:

--src-address-list:mangle 规则的源地址列表(默认 lan_IP)。

--routing-mark:mangle 规则的路由标记(默认 GF_R)。 示例:

python china_ip_split_rsc.py --src-address-list=my_lan --routing-mark=proxy_R

离线使用

手动下载 delegated-apnic-latest:https://ftp.apnic.net/apnic/stats/apnic/delegated-apnic-latest

放置在程序目录,调整后运行脚本,选择 y.

导入 RouterOS

上传 .rsc 文件到 RouterOS(通过 WinBox、SCP 或 FTP)。

导入:/import file=china_ip_list_20250618_104500.rsc

配置路由表:/ip route add routing-mark=GF_R gateway=198.18.20.20

示例

运行示例

cd C:\Scripts

python china_ip_split_rsc.py --src-address-list=my_lan --routing-mark=proxy_R

输出日志:

2025-06-18 10:45:00,123 - INFO - 发现本地文件:delegated-apnic-latest

是否使用本地 delegated-apnic-latest 文件?(y/N):y

2025-06-18 10:45:05,456 - INFO - 使用本地文件:delegated-apnic-latest

是否在 .rsc 文件中添加 /ip firewall mangle 规则?(Y/n):

2025-06-18 10:45:10,789 - INFO - 总中国 IP 条目数:8000

2025-06-18 10:45:10,890 - INFO - 添加 8000 条到列表 ChinaIp

2025-06-18 10:45:11,123 - INFO - 添加 1 条 mangle 规则,src-address-list=my_lan, routing-mark=proxy_R

2025-06-18 10:45:11,456 - INFO - 生成 china_ip_list_20250618_104500.rsc,包含 8000 条,单一 ChinaIp 列表,含 mangle 规则

生成的 .rsc 示例

/ip firewall address-list

add list=ChinaIp address=1.0.1.0/24

add list=ChinaIp address=14.0.0.0/10

...

add list=ChinaIp address=27.0.0.0/8

/ip firewall mangle

add chain=prerouting action=mark-routing new-routing-mark=proxy_R passthrough=no src-address-list=my_lan dst-address-list=!ChinaIp

运行效果

使用方法下载

软件下载:https://github.com/miaolink/routeros_chinaip_new