GeoIP的安装和更新

Monday, April 26, 2021

简介

GeoIP是IP地理位置数据库,可以根据IP地址(支持 IPv4 和 IPv6), 定位该 IP 所在的地理位置和 ASN 等信息。

GeoIP目前已经升级到 GeoIP2,GeoIP2 有两个版本,一个免费版(GeoLite2),一个收费版本(GeoIP2, 200$起步)。与付费版相比,最大的差别就是免费版的精确度相对较低,但是对于大部分项目来说,其实免费版已经足够了。

GeoIP库被广泛使用,比如 ClashShadowrocketNginxLogStash 等。

注册

自 2019 年 12 月 30 日起,MaxMind 要求用户必须 注册帐户 并获取许可密钥以下载 GeoLite2 数据库,需要注意注册的时候不要开启 VPN,实测开启 VPN 注册会失败。

注册后需要生成一个整数,并记录自己的 AccountID 和 LicenseKey,如下图所示:

Centos7中Logstash使用最新版GeoIP并自动更新

Centos7中Logstash使用最新版GeoIP并自动更新

使用

  1. 安装GeoIP

    yum install geoip geoip-devel
    
  2. 安装更新程序 geoipupdate

    # 下载更新程序
    wget https://github.com/maxmind/geoipupdate/releases/download/v4.2.2/geoipupdate_4.2.2_linux_amd64.tar.gz
    # 解压
    tar xf geoipupdate_4.2.2_linux_amd64.tar.gz && cd geoipupdate_4.2.2_linux_amd64/
    # 将更新文件添加到 /usr/bin
    mv geoipupdate /usr/bin/
    
  3. 编辑配置文件并更新数据库

    # 编辑配置文件
    vim /usr/local/etc/GeoIP.conf
    
        # 修改 AccountID 和 LicenseKey 为上面记录的值
        AccountID [your account id]
        LicenseKey [your license key]
    
        # 修改需要下载的ip库,下述只是示例,根据自己需要配置
        EditionIDs GeoLite2-ASN GeoLite2-City GeoLite2-Country
    
        # 修改ip库的保存路径
        DatabaseDirectory [your/path/to/save/geoip/data]
    
    # 更新数据,数据文件后缀为 mmdb,比如 GeoLite2-City.mmdb 和 GeoLite2-Country.mmdb
    geoipupdate
    
  4. 创建定时任务自动更新

    # 编辑定时任务
    crontab -e
    
    # 增加配置,需要自行修改更新时间以及日志路径
    0 * * * 6 /usr/local/bin/geoipupdate > /var/log/geoipupdate.log 2>&1
    
Linux GeoIP Linux

树莓派3b连接wifik8s搭建ELK