在网络运维和开发过程中,快速准确地获取 IP 地址的地理信息和其对应的 CDN 服务提供商,对于优化网络性能和定位问题至关重要。本⽂将介绍如何使用 Nali 并通过 Docker 容器化部署,确保系统的简洁性和可移植性。
什么是 Nali?
Nali 是⼀款开源的命令⾏⼯具,支持离线查询 IP 地址的地理位置和对应的 CDN 服务提供商。其名称取⾃中⽂“哪⾥”的谐⾳,旨在帮助⽤⼾快速定位 IP 的归属地。Nali ⽀持多种数据库,包括纯真 IPv4 离线数据库、ZX IPv6 离线数据库、GeoIP2 城市数据库等,能够在终端中直接显示查询结果,方便快捷。
为什么选择 Docker 部署?
使⽤ Docker 部署 Nali 有以下优势:
• 环境隔离: 避免对主机系统环境的污染,确保不同项⽬之间依赖度独立。
• 快速部署: 通过 Docker 镜像,可以在不同环境中快速部署和运⾏ Nali。
• 易于维护: 容器化的应⽤更易于更新和管理,提升运维效率。
部署步骤
1. 下载 Nali 可执行文件
⾸先,下载适⽤于 Linux 的 Nali 可执⾏⽂件。在撰写本⽂时,最新版本为 v0.8.1。您可以从 GitHub Releases ⻚⾯ 获取。 执⾏以下命令下载并解压:
wget https://github.com/zu1k/nali/releases/download/v0.8.1/nali-linux-386-v0.8.1.gz
gzip -d nali-linux-386-v0.8.1.gz
mv nali-linux-386-v0.8.1 nali
chmod +x nali
2. 编写 Dockerfile
在当前⽬录下创建⼀个名为 Dockerfile 的⽂件,内容如下:
FROM alpine:3.19
COPY ./nali /usr/bin/nali
# 安装 dig 和 nslookup
RUN apk add --update bind-tools
该 Dockerfile 基于 Alpine 3.19 镜像,复制已下载的 Nali 可执⾏⽂件到容器的 /usr/bin/ ⽬录,并安装 bind-tools 以提供 dig 和 nslookup 命令的⽀持。
3. 构建 Docker 镜像
在 Dockerfile 所在⽬录,执⾏以下命令构建镜像:
docker build -t nali:latest -f ./Dockerfile .
构建完成后,使⽤以下命令查看镜像是否创建成功:
docker images | grep nali
使用示例
镜像构建完成后,可以通过以下方式使用 Nali 进⾏ IP 信息查询。
查询单个 IP 的地理信息
docker run --rm -it \
-e NALI_HOME=/var/nali \
-v /var/nali:/var/nali \
nali:latest \
nali 1.2.3.4
⾸次查询时,Nali 会自动下载 IP 数据库。
查询多个 IP 的地理信息
docker run --rm -it \
-e NALI_HOME=/var/nali \
-v /var/nali:/var/nali \
nali:latest \
sh -c 'nali 1.2.3.4 4.3.2.1 123.23.3.0'
与 dig 指令配合使用
docker run --rm -it \
-e NALI_HOME=/var/nali \
-v /var/nali:/var/nali \
nali:latest \
sh -c 'dig www.baidu.com | nali'
与 nslookup 指令配合使用
docker run --rm -it \
-e NALI_HOME=/var/nali \
-v /var/nali:/var/nali \
nali:latest \
sh -c 'nslookup www.baidu.com | nali'
支持 IPv6 查询
docker run --rm -it \
-e NALI_HOME=/var/nali \
-v /var/nali:/var/nali \
nali:latest \
sh -c 'nslookup google.com | nali'
查询 CDN 服务提供商
docker run --rm -it \
-e NALI_HOME=/var/nali \
-v /var/nali:/var/nali \
nali:latest \
sh -c 'nslookup www.gov.cn | nali'
更新 IP 数据库
docker run --rm -it \
-e NALI_HOME=/var/nali \
-v /var/nali:/var/nali \
nali:latest \
nali update
项目地址
更多项⽬详细信息,请访问 Nali 的 GitHub 项目主页
快捷镜像
ccr.ccs.tencentyun.com/erik_xu/nali:latest
结语
通过以上步骤,您可以在 Docker 容器中快速部署并使用 Nali 进⾏ IP 地理信息和 CDN 服务提供商的查询。如果您在使用过程中有任何问题或需要技术支持,欢迎在公众号【跬步之巅】留言交流