关键字: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,省去手动更新麻烦。
- 自动从 APNIC(
痛点 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
- 自动生成单条 mangle 规则,写入
功能特点
- 自动化下载:从 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)
- 依赖库:
requests
pip 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
运行效果
