管理地理位置
Cloink的管理系统依赖于地理位置数据库。
Cloink 使用MaxMind 公司的 GeoLite2 城市数据库,根据 IP 地址识别对等节点的地理位置。
启动时下载数据库
- GeoLite2 城市数据库:下载连接
- GeoLite2 城市数据库(SHA256):下载连接
- GeoLite2 城市 CSV 数据库:下载连接
- GeoLite2 城市 CSV 数据库 (SHA256):下载连接
下载完成后,管理系统会准备数据库以供使用。如果数据库已存在,系统将加载并使用现有数据库。
更新GeoLite2 数据库
GeoLite2 数据库每周更新两次,以反映地理位置数据的变化。保持本地 GeoLite2 数据库的更新至关重要。服务management启动时,会查询下载 URL以检查当前数据库是否已过期。如果数据库已过期或不存在,则会自动下载并加载文件。重启服务management将触发更新检查。
--disable-geolite-update可以通过向命令传递标志management或在组合配置文件disableGeoliteUpdate: true中进行设置来禁用此行为:
disableGeoliteUpdate: true禁用此功能后,仅当数据目录中不存在 GeoLite 数据库文件时,服务才会下载数据库。如果存在多个数据库,则会加载日期最新的数据库。如果数据库不存在,则会下载并加载该数据库,但该数据库不会在management服务后续重启时更新。
完全禁用地址位置信息
如果您不需要基于地理位置的姿态检查,可以通过设置环境变量完全禁用地理位置服务:
NB_DISABLE_GEOLOCATION=true设置后,管理服务器将跳过地理位置初始化,并且不会尝试下载任何数据库。
故障排除
GeoLite2 在受限网络中下载失败
在某些网络环境下,GeoLite2 数据库的自动下载pkgs.netbird.io可能会失败。这种情况通常发生在以下情况下:
企业防火墙执行深度包检测 (DPI),拦截 HTTPS 流量并使用内部证书颁发机构重新签名证书。管理服务器无法验证这些拦截到的证书,导致下载过程中出现 TLS 错误。 出站访问受到防火墙规则pkgs.netbird.io或代理限制的阻止。
该服务器完全无法访问互联网(物理隔离环境)。
如果您受到影响,您可以手动提供 GeoLite2 数据库文件,而不是依赖自动下载:
- 通过在配置中传递
--disable-geolite-update标志或设置来禁用自动更新disableGeoliteUpdate: true,以防止服务器尝试下载或覆盖数据库。 - 从MaxMind 的 GeoLite2 页面下载 GeoLite2 城市数据库。您需要一个免费的 MaxMind 帐户才能下载 MMDB 文件。
- 将文件放置在管理数据目录中,并按照命名约定进行命名:
GeoLite2-City_YYYYMMDD.mmdb(例如,GeoLite2-City_20260127.mmdb)。
查找数据目录:
- 如果您使用的是 Docker 部署,数据目录通常在
/var/lib/cloink/management路径下 - 如果您使用的是自托管部署,数据目录通常在
/var/lib/cloink/management路径下。
/var/lib/docker/volumes/netbird_data/_data/目录内容大致如下:
root@selfhosted-1:/var/lib/docker/volumes/netbird_data/_data# ls -l
total 72452
-rw-r--r-- 1 root root 63524357 Feb 13 23:00 GeoLite2-City_20260127.mmdb
-rw-r--r-- 1 root root 425984 Feb 17 19:31 events.db
-rw-r--r-- 1 root root 7307264 Feb 13 23:00 geonames_20260127.db
-rw-r--r-- 1 root root 98304 Feb 18 14:07 idp.db
-rw-r--r-- 1 root root 2826240 Feb 18 14:07 store.db将下载的 GeoLite2 MMDB 文件复制到此目录,然后重启管理服务。服务器将自动检测并加载现有数据库文件,无需重新下载。
