GeoIP是什么意思?

一句话结论

把 IP 地址对应到国家或地区的数据库,规则里常用它判断一个地址是否属于国内。

Clash 系规则里的 GEOIP 条目会拿地址去这份库里查归属,再按结果直连或走代理。库由第三方维护,数据过旧或归属有误,就会出现国内站被送进代理的现象。

GeoIP 本质上是一张对照表:给一段 IP 地址,告诉你它登记在哪个国家或地区。代理客户端借这张表做粗粒度分流,比逐个写域名省事得多。

它在规则里怎么用

规则写成“GEOIP,国家代码,去向”的形式,例如把归属为国内的地址直连。要比对地址,请求就得先有地址:域名请求会被解析一次再查表,这也是 IP 类规则后面常见 no-resolve 的原因,细节看 Clash 规则怎么写。

在哪里会看到它

  • 配置的 rules 段里的 GEOIP 条目。
  • 客户端更新页里的“地理库”“GeoIP 数据”之类的更新按钮。
  • 路由规则的预设选项里,如“国内地址直连”。

常见误解

  • 库是完全准确的。 地址归属会变化,库也有滞后;它给出的是登记信息,不是用户的实际位置。
  • GEOIP 和规则集是一回事。 前者按地址归属查表,后者是你或他人整理的域名、地址清单,见 规则集。
  • 更新一次就一劳永逸。 数据需要持续更新,是否自动更新取决于客户端设置。

怎么判断它是否出了问题

国内网站变慢时,到连接记录里看这个站点命中的是哪条规则。若落在兜底规则上,说明它没被库判成国内,先更新地理库,再复测。分层排查见 开了梯子后国内网站变慢,整体概念见 分流。库的格式与更新方式随内核而异,以官方文档为准。

路由类客户端也有同样的思路:v2rayN 之类的客户端把“国内地址直连”做成了预设选项,背后依赖的同样是一份地址归属库,思路见 v2rayN 路由规则怎么设置。库里查不到的地址会怎么处理,各客户端行为不一,遇到时去看当前文档,不要凭印象判断。

哪些文章讲到了GeoIP

想对照具体机场的记录?

机场榜单和机场目录里,价格、线路、协议、节点地区都是逐家列着的;不确定该装哪个客户端,试试客户端筛选器。