Clash GeoIP和GeoSite数据库使用指南:精准分流的基础
Clash GeoIP和GeoSite数据库使用指南
在 Clash 的分流规则体系中,除了基于域名和关键词的规则外,GeoIP 和 GeoSite 是实现大规模、自动化分流的两大利器。它们让配置者无需手动维护成千上万条规则,只需依靠成熟的数据库即可完成精准的国内外流量分流。本文将深入讲解这两项技术的原理、数据源选择以及实战配置方法。
GeoIP与GeoSite的基本概念
什么是GeoIP
GeoIP 是一种根据 IP 地址判断其所属地理位置的技术。在 Clash 中,GeoIP 数据库通常包含以下信息:
- IP 地址段对应的国家或地区代码
- 部分数据库还包含 ASN(自治系统号)信息
- 可用于判断目标服务器是否位于中国大陆
Clash 规则中常见的 GEOIP,CN,DIRECT 就是利用 GeoIP 数据库,将目标 IP 位于中国的流量直接连接。
什么是GeoSite
GeoSite 则是根据域名判断其所属类别或服务类型的数据库。与 GeoIP 基于 IP 不同,GeoSite 基于域名规则,常见分类包括:
geolocation-cn:中国大陆常见网站geolocation-!cn:中国大陆以外的常见网站google、apple、microsoft:特定厂商服务category-ads:广告域名集合category-games:游戏相关域名
通过 GeoSite,可以实现“所有大陆网站直连、所有海外网站走代理”这样简洁而高效的规则。
两者的核心区别
| 对比维度 | GeoIP | GeoSite |
|---|---|---|
| 判断依据 | 目标 IP 地址 | 目标域名 |
| 适用阶段 | 域名解析后的连接阶段 | 域名解析前的规则匹配阶段 |
| 精度特点 | 对 IP 归属判断准确 | 对服务类型分类准确 |
| 主要用途 | 兜底分流、IP 归属判断 | 精细化分流、按服务类型路由 |
| 典型规则 | GEOIP,CN,DIRECT |
GEOSITE,cn,DIRECT |
常用GeoIP/GeoSite数据源
Loyalsoldier分支
目前国内 Clash 用户最常用的数据源是 Loyalsoldier 维护的 v2ray-rules-dat 项目,特点包括:
- 数据更新频繁,覆盖主流网站
- 分类细致,包含广告、流媒体、游戏等专项分类
- 同时提供 GeoIP 和 GeoSite 两种数据库
- 与 Clash Meta/Mihomo 内核兼容性良好
ACL4SSR
ACL4SSR 是国内另一个知名的规则项目,主要提供:
- 完整的 Clash 配置文件模板
- 预置的 Rule Provider 规则集
- 适合不想从零配置的用户直接使用
官方v2fly数据库
v2fly 社区维护的数据库更加国际化,特点:
- 分类标准统一
- 更新稳定
- 但对中国大陆网站的覆盖不如 Loyalsoldier 细致
如何选择
选择数据源时可以考虑以下因素:
- 更新频率:数据越新,分流效果越好
- 覆盖范围:是否包含你常用的服务和网站
- 分类粒度:是否需要广告过滤、流媒体解锁等专项分类
- 内核兼容性:确认数据库格式与当前 Clash 内核匹配
在Clash中配置GeoIP和GeoSite
基本规则写法
在 Clash 配置文件的 rules 部分,可以这样使用:
rules:
# GeoSite 规则:中国大陆域名直连
- GEOSITE,cn,DIRECT
# GeoSite 规则:常见广告域名拒绝
- GEOSITE,category-ads,REJECT
# GeoIP 规则:中国大陆 IP 直连
- GEOIP,CN,DIRECT
# 兜底规则:其他全部走代理
- MATCH,PROXY
数据库路径配置
默认情况下,Clash 会自动下载并使用内置的数据库。但如果你希望使用自定义数据库,可以在配置中指定:
geodata-mode: true
geox-url:
geoip: "https://cdn.jsdelivr.net/gh/Loyalsoldier/v2ray-rules-dat@release/geoip.dat"
geosite: "https://cdn.jsdelivr.net/gh/Loyalsoldier/v2ray-rules-dat@release/geosite.dat"
在Clash Meta/Mihomo中的增强配置
新版 Mihomo 内核支持更灵活的数据库配置:
geox-url:
geoip: "https://fastly.jsdelivr.net/gh/MetaCubeX/meta-rules-dat@release/geoip.dat"
geosite: "https://fastly.jsdelivr.net/gh/MetaCubeX/meta-rules-dat@release/geosite.dat"
mmdb: "https://fastly.jsdelivr.net/gh/MetaCubeX/meta-rules-dat@release/geoip.metadb"
geo-auto-update: true
geo-update-interval: 24
上述配置表示:
- 使用 MetaCubeX 维护的规则数据库
- 开启自动更新
- 每 24 小时检查一次更新
GeoIP与GeoSite分流策略实战
策略一:简洁的国内外分流
适合大多数用户的标准配置:
rules:
- GEOSITE,private,DIRECT
- GEOSITE,cn,DIRECT
- GEOSITE,geolocation-cn,DIRECT
- GEOSITE,geolocation-!cn,PROXY
- GEOIP,private,DIRECT,no-resolve
- GEOIP,CN,DIRECT,no-resolve
- MATCH,PROXY
这种写法的逻辑是:
- 私网地址直接连接
- 中国大陆域名直接连接
- 非中国大陆域名走代理
- 对中国大陆 IP 兜底直连
- 其他流量全部走代理
策略二:广告过滤优先
如果你希望先拦截广告,可以这样排列:
rules:
- GEOSITE,category-ads-all,REJECT
- GEOSITE,category-ads,REJECT
- GEOSITE,cn,DIRECT
- GEOSITE,geolocation-!cn,PROXY
- GEOIP,CN,DIRECT,no-resolve
- MATCH,PROXY
将广告规则放在前面,可以确保广告域名被优先拦截,不会进入后续的分流判断。
策略三:流媒体单独分流
针对 Netflix、Disney+ 等流媒体服务,可以设置专门策略组:
proxy-groups:
- name: Streaming
type: select
proxies:
- 香港节点
- 美国节点
- 日本节点
rules:
- GEOSITE,netflix,Streaming
- GEOSITE,disney,Streaming
- GEOSITE,hulu,Streaming
- GEOSITE,bilibili,DIRECT
- GEOSITE,youku,DIRECT
常见问题与注意事项
GeoIP判断不准确
GeoIP 数据库并非实时更新,可能出现以下情况:
- 某些 CDN 节点的 IP 归属与实际服务地区不一致
- 新分配的 IP 段尚未被收录
- 跨国云服务器的 IP 归属可能显示为服务器所在地
解决方法:
- 定期更新 GeoIP 数据库
- 对特定服务使用域名规则(GeoSite)优先
- 必要时手动添加 IP 规则补充
no-resolve参数的作用
在 GeoIP 规则后添加 no-resolve 非常重要:
- GEOIP,CN,DIRECT,no-resolve
它的作用是:如果域名还没有被解析为 IP,就跳过这条 GeoIP 规则,避免产生不必要的 DNS 查询。这样可以提高匹配效率,也能减少 DNS 泄漏风险。
数据库文件过大
如果使用的是完整版数据库,文件可能达到几十 MB,会带来以下影响:
- Clash 启动时加载时间变长
- 内存占用增加
- 低配置设备可能出现卡顿
优化建议:
- 使用精简版数据库(如 Loyalsoldier 的 lite 版本)
- 仅在需要时使用 GeoIP/GeoSite 规则
- 对固定访问的网站使用域名规则替代
总结
GeoIP 和 GeoSite 是 Clash 分流规则体系中的基础设施。掌握它们的使用方法,可以让你的配置文件从几百条臃肿的域名规则,简化为几十条清晰的分流策略。
对于普通用户,建议采用“GeoSite 为主、GeoIP 兜底”的策略:先用 GeoSite 判断域名类型,再用 GeoIP 处理那些无法通过域名判断的连接。同时注意选择更新及时、覆盖全面的数据源,并定期更新数据库,以保证分流规则的准确性和时效性。
这篇教程有帮助吗?立即下载Clash入门试试吧!
全平台支持 · 安全无毒 · 官方最新版