ZeroTier 全局路由网关是一套主要针对 CentOS 系统开发的脚本工具集,帮助您轻松将 Linux 服务器配置为 ZeroTier 网络的双向网关。通过本工具,您可以实现 ZeroTier 虚拟网络与外部网络之间的通信。
免责声明:本项目仅用于学习和研究目的,不得用于商业用途。如有违反相关法律法规的使用场景,一切后果由使用者自行承担。
- 双向网络转发:允许 ZeroTier 网络内的设备访问互联网,同时允许外部访问 ZeroTier 网络内的服务
- 自动检测网络接口:智能识别 ZeroTier 接口和外网接口
- 智能防火墙配置:自动设置 iptables 规则以确保安全性和网络连通性
- 网络性能优化:优化内核参数提升网关转发性能
- 状态监控:提供简单的监控脚本查看网关状态
- 自动修复:周期性检查网络配置,确保服务稳定运行
- GFW List 分流:支持基于 GFW List 的智能分流,只有列表中的网站才通过全局路由
- IPv6 支持:可选的 IPv6 支持功能
- 便携式打包:支持生成单一可执行的打包文件
- CentOS 7/8 系统
- 已安装 ZeroTier 客户端并加入网络
- Root 权限
可以使用以下命令快速下载并运行最新的集成脚本:
curl -fsSL https://github.com/gmij/zerotier-globalroute/releases/latest/download/zerotier-gateway-bundle.sh -o deploy.sh && chmod +x deploy.sh && sudo ./deploy.sh或者使用wget:
wget -O deploy.sh https://github.com/gmij/zerotier-globalroute/releases/latest/download/zerotier-gateway-bundle.sh && chmod +x deploy.sh && sudo ./deploy.sh- 克隆或下载本仓库到您的服务器
- 执行安装脚本:
chmod +x zerotier-gateway.sh
./zerotier-gateway.sh脚本会自动检测网络接口并配置必要的规则。
如果您想使用单文件版本,可以先运行打包脚本:
./build.sh生成的 zerotier-gateway-bundle.sh 文件包含了所有必要的组件,可以直接在目标系统上运行。打包版本可以方便地迁移到不同服务器,只需复制整个安装目录即可。
脚本支持以下参数:
-z, --zt-if <接口名称>- 指定 ZeroTier 网络接口-w, --wan-if <接口名称>- 指定外网接口-m, --mtu <值>- 设置 ZeroTier 接口 MTU 值(默认1400)-s, --status- 显示当前网关状态-b, --backup- 备份当前 iptables 规则-d, --debug- 启用调试模式-r, --restart- 重启网关(应用现有配置)-u, --update- 更新模式(保留现有接口设置)-U, --uninstall- 卸载网关配置--ipv6- 启用 IPv6 支持--stats- 显示流量统计--test- 测试网关连通性--gfwlist- 启用 GFW List 分流模式(只有列表中的站点才走全局路由)--update-gfwlist- 更新 GFW List--gfwlist-status- 显示当前 GFW List 状态
zerotier-gateway.sh- 主要脚本build.sh- 打包脚本cmd/- 功能模块目录detect.sh- 网络接口检测firewall.sh- 防火墙规则配置monitor.sh- 网络监控uninstall.sh- 卸载功能utils.sh- 实用函数
templates/- 配置模板目录- 包含系统配置和监控脚本的模板
此功能允许您实现智能分流,只有 GFW List 中的网站才通过 ZeroTier 网络路由,其他网站保持正常线路访问。
-
在安装脚本时添加
--gfwlist参数启用分流功能:./zerotier-gateway.sh --gfwlist
-
更新 GFW List:
./zerotier-gateway.sh --update-gfwlist
-
查看 GFW List 状态:
./zerotier-gateway.sh --gfwlist-status
- 脚本会下载并解析最新的 GFW List
- 通过 dnsmasq 进行域名解析,将匹配的域名 IP 地址加入 ipset
- 使用 iptables 规则,只将 ipset 中的 IP 地址通过 ZeroTier 路由
- 其余流量保持原有路径不变
分流功能需要安装以下组件(脚本会自动安装):
- ipset:用于存储 IP 地址集合
- dnsmasq:用于域名解析和 ipset 集成
- curl/wget:用于下载 GFW List
- base64:用于解码 GFW List
- 本工具仅用于合法的网络环境配置,请遵守当地相关法律法规
- 使用前请确保您对服务器有足够的操作权限
- 建议在配置前备份现有的网络和防火墙设置
- 如有问题,可使用
--debug参数获取详细日志 - GFW List 分流功能需要正常的 DNS 解析,推荐使用可靠的 DNS 服务器
如需卸载网关配置:
./zerotier-gateway.sh --uninstall
./zerotier-gateway.sh -U如果您遇到连接问题:
- 使用
zt-status命令检查网关状态 - 检查防火墙规则是否正确应用
- 验证 ZeroTier 网络配置是否正确
- 检查路由表设置
欢迎提交问题报告和改进建议。如果您想贡献代码,请确保遵循项目的代码风格并提交详细的变更说明。
本项目采用 MIT 许可证 - 详见 LICENSE 文件