配置
地区识别
原版在 Cloudflare 上通过 request.cf.country 自动识别探针位置。移植版复刻了这个能力,对业务代码零改动。
三种模式
| 值 | 是什么 |
|---|---|
maxmind | 本地 GeoLite2-Country.mmdb 数据库,离线查询(默认) |
ipinfo | ipinfo.io 在线查询,可配 token |
off | 关闭,地区留空,需在管理面板手动设置 |
GEOIP_PROVIDER=maxmindbash数据库从哪来
查找顺序:
GEOIP_MMDB_PATH环境变量指定的路径DATA_DIR/geoip/GeoLite2-Country.mmdb- 镜像内置的
/app/geoip/GeoLite2-Country.mmdb - 以上都没有时自动从公共镜像源下载(失败则功能降级并告警)
MaxMind 数据由 maxmind.com 提供,镜像源见 server/geoip.js 的 DOWNLOAD_URLS。
GeoLite2 数据库需要定期更新(MaxMind 每周发布)。镜像内置的那份会随新版本更新,自己放的那份需要你手动换。
缓存
同一个 IP 24 小时内只查一次,缓存上限 10000 条。所以开几百台机器也不会打爆本地查询。
手动指定国家
自动识别不对时(比如探针在 NAT 后面、出站 IP 和实际所在地不符),在编辑面板里直接填两位国家代码覆盖。自动识别会继续在底下更新,但显示的是你指定的值。