📖 工具简介
当 ZeroTier VPN 启用"Override Default Route"(覆盖默认路由)功能时,所有网络流量都会通过 ZeroTier,导致访问中国大陆网站变慢。本工具通过配置特定的路由规则,使中国大陆 IP 地址段和私有地址段走本地网关,其他流量继续通过 ZeroTier。
⚠️ 重要提示:本工具需要管理员权限运行。路由配置是临时的,系统重启后会自动恢复原始配置。
🚀 快速开始
方式一:在线执行(推荐,无需下载)
直接在 PowerShell 中运行以下命令,脚本会自动从 GitHub 下载并执行:
📡 添加路由
复制以下命令到 PowerShell(管理员)执行:
irm https://raw.githubusercontent.com/bachbear/zerotier-split-china/main/released/fix-routes-simple.ps1 | iex
🧹 清理路由
复制以下命令到 PowerShell(管理员)执行:
irm https://raw.githubusercontent.com/bachbear/zerotier-split-china/main/released/cleanup-routes-simple.ps1 | iex
方式二:下载后执行
从 GitHub 下载脚本文件到本地,然后双击运行:
💾 本地执行
下载后双击运行批处理文件:
fix-routes.bat- 添加路由cleanup-routes.bat- 清理路由
⚠️ 确保所有文件在同一目录下
方式三:克隆仓库
git clone https://github.com/bachbear/zerotier-split-china.git cd zerotier-split-china\released # 双击运行 fix-routes.bat 或 cleanup-routes.bat
💡 功能说明
添加路由(fix-routes.bat)
- 自动检测 ZeroTier 网关和本地网关
- 为私有 IP 段(10.x.x.x、172.16.x.x、192.168.x.x 等)添加本地路由
- 为约 8789 个中国大陆 IP 段添加本地路由
- 支持 ZeroTier 的两种路由模式(默认路由分流模式和传统模式)
清理路由(cleanup-routes.bat)
- 删除所有指向本地网关的中国 IP 路由
- 删除所有指向本地网关的私有 IP 路由
- 恢复所有流量通过 ZeroTier
- 执行前会要求用户确认
📋 路由规则说明
私有 IP 地址段(硬编码)
| IP 段 | 说明 |
|---|---|
| 10.0.0.0/8 | A 类私有网络 |
| 172.16.0.0/12 | B 类私有网络 |
| 192.168.0.0/16 | C 类私有网络 |
| 169.254.0.0/16 | 链路本地地址 |
| 127.0.0.0/8 | 环回地址 |
| 224.0.0.0/4 | 组播地址 |
中国大陆 IP 段
从 china-ip.txt 文件读取,包含约 8,789 个 CIDR 格式的 IP 地址段。
数据来源:APNIC、CNNIC 等官方机构发布的 IP 地址分配信息。
🔧 技术原理
ZeroTier 两种路由模式
默认路由分流模式(推荐,ZeroTier 1.8+)
ZeroTier 使用
ZeroTier 使用
0.0.0.0/1 和 128.0.0.0/1 两条路由劫持所有流量。利用最长前缀匹配原则,我们添加的中国 IP 路由(如 1.0.1.0/24)会自动优先于 /1 路由。
传统模式
ZeroTier 使用
ZeroTier 使用
0.0.0.0/0 路由,跃点数较高(>1000)。通过高跃点数实现低优先级,保留本地默认路由。
Windows 路由优先级规则
- 最长前缀匹配(更具体的路由优先):如
1.0.1.0/24优先于0.0.0.0/1 - 跃点数(Route Metric,越小越优先)
- 路由来源优先级
- 路由添加顺序
✅ 执行效果
添加路由后
- ✅ 中国大陆 IP 地址 → 本地网关(快速访问)
- ✅ 私有 IP 地址 → 本地网关
- ✅ 其他国际 IP → ZeroTier VPN
清理路由后
- ✅ 所有流量 → ZeroTier VPN
🛠️ 故障排除
查看当前路由表
route print -4
检查特定路由
Get-NetRoute -DestinationPrefix "1.0.1.0/24"
查看默认路由
Get-NetRoute -DestinationPrefix "0.0.0.0/0" | Format-Table
常见问题
| 问题 | 解决方案 |
|---|---|
| 脚本运行后没有效果 | 检查是否有管理员权限,查看脚本输出的错误信息 |
| 检测不到 ZeroTier 网关 | 确认 ZeroTier 已连接,运行 route print -4 查看路由表 |
| 某些中国网站仍然走 ZeroTier | 检查 china-ip.txt 是否完整,确认目标 IP 在列表中 |
📁 文件清单
| 文件名 | 说明 |
|---|---|
| fix-routes.bat | 添加路由的批处理文件(推荐使用) |
| cleanup-routes.bat | 清理路由的批处理文件(推荐使用) |
| fix-routes-simple.ps1 | 添加路由的 PowerShell 脚本 |
| cleanup-routes-simple.ps1 | 清理路由的 PowerShell 脚本 |
| china-ip.txt | 中国大陆 IP 地址段列表(8789 条) |
| README.html | 本说明文档 |
⚠️ 注意事项
- 管理员权限必需:路由配置需要管理员权限
- 非持久化路由:使用
route.exe添加的路由在系统重启后会丢失,需要重新运行脚本 - 文件依赖:确保
china-ip.txt文件存在于脚本同目录下 - 网络环境:不同网络环境的 ZeroTier 网关地址可能不同,脚本会自动检测
📞 技术支持
如有问题或建议,请通过以下方式联系:
- 邮箱:[email protected]
- GitHub Issues:提交问题和反馈
- ZeroTier 官方文档:https://docs.zerotier.com/