在 Linux 下,有dig
、nslookup
、traceroute
等多種非常實用的網路調試工具。
dig
:是常用的域名查詢工具,可以用來測試域名是否正常。nslookup
:是常用的域名查詢工具,也就是查 DNS 資訊時用到的命令,它有兩種工作模式,分別為互動模式和非互動模式。
互動模式:使用者可以向域名伺服器查詢各類主機、域名的資訊或輸出域名中的主機列表。
非互動模式:使用者可以針對一個主機或域名僅獲取它特定的名稱或所需資訊。
traceroute
:是用於追蹤資料包在網路上傳輸時的全部路徑。
那麼,在這篇文章中,給大家介紹一個可以在終端下查詢 IP 地理資訊和 CDN 提供商的工具 —— nali
。
nali
中文裡的諧音是「哪裡」。它最初是基於 C 語言編寫的小工具,由於版本功能的缺失,js 版本包問題、支持的平臺有限。
後來基於 GoLang 重寫了這款工具,在原有功能的基礎之上增加了對 IPv6 的支持,並且增加了 Geoip2 資料庫。
1. nali 的特徵
- 支持多種資料庫
- 純真 IPv4 離線資料庫
- ZX IPv6 離線資料庫
- Geoip2 城市資料庫 (可選)
- IPIP 資料庫 (可選)
- ip2region 資料庫 (可選)
- CDN 服務提供商查詢
- 支持管道處理
- 支持互動式查詢
- 支持 IPv4 和 IPv6
- 支持多語言
- 查詢完全離線
- 全平臺支持
- 支持彩色輸出
2. nali 的安裝
通過原始碼安裝 nali,需預先安裝 Go >= 1.18 的版本。
# go install github.com/zu1k/nali
下載預編譯的可執行程序進行安裝 nali,可直接通過 nali 項目中的 Release 頁面選擇適合目前的系統及硬體架構的版本進行下載,解壓後直接運行即可。
我這以 CentOS 為例,直接下載的安裝包,進行解壓編譯並更新 nali。
--no-check-certificate
參數以不安全的方式連接進行下載。
# wget http://www.dwhd.org/wp-content/uploads/2015/08/nali-0.2.tar.gz --no-check-certificate # tar xf nali-0.2.tar.gz #cd nali-0.2 # ./configure && make && make install && nali-update
3. nali 的使用
查詢某個 IP 的地理資訊
# nali 9.9.9.9 9.9.9.9[美國 紐約IBM公司]
除上述查詢方式以外,還可以結合使用|
管道符進行查詢。
# echo IP:8.8.8.8 | nali IP:8.8.8.8[美國 加利福尼亞州山景市谷歌公司DNS伺服器]
同時查詢多個 IP 地址資訊
# nali 1.1.1.1 8.8.8.8 9.9.9.9 1.1.1.1[澳大利亞] 8.8.8.8[美國 加利福尼亞州山景市谷歌公司DNS伺服器] 9.9.9.9[美國 紐約IBM公司]
互動式查詢多個 IP 地址資訊,可執行nali
回車後,輸入 IP 地址,直到查詢完畢,使用exit
、quit
或Ctrl+C
退出互動式查詢。
# nali 219.141.136.10 219.141.136.10[北京市 電信] 180.76.76.76 180.76.76.76[北京市 百度公司] 223.5.5.5 223.5.5.5[中國 萬網] exit
nali
與dig
命令結合使用
# dig github.com +short | nali 20.205.243.166[美國 Computer]
nali
與nslookup
命令結合使用
# nslookup github.com 8.8.8.8 | nali Server: 8.8.8.8[美國 加利福尼亞州山景市谷歌公司DNS伺服器] Address: 8.8.8.8[美國 加利福尼亞州山景市谷歌公司DNS伺服器]#53 Non-authoritative answer: Name: github.com Address: 20.205.243.166[美國 Computer]
查看 CDN 服務提供商,CDN 服務通常使用 CNAME 的域名解析方式,需要與 nslookup 或 dig 結合使用。
# nslookup www.newduba.cn | nali Server: 192.168.1.1[區域網 對方和您在同一內部網] Address: 192.168.1.1[區域網 對方和您在同一內部網]#53 Non-authoritative answer: www.newduba.cn canonical name = www.newduba.cn.w.kunluncan.com. Name: www.newduba.cn.w.kunluncan.com Address: 111.31.66.218[中國 移動] Name: www.newduba.cn.w.kunluncan.com Address: 111.31.66.220[中國 移動] Name: www.newduba.cn.w.kunluncan.com Address: 111.31.66.225[中國 移動] Name: www.newduba.cn.w.kunluncan.com Address: 111.31.66.224[中國 移動] Name: www.newduba.cn.w.kunluncan.com Address: 111.31.66.221[中國 移動] Name: www.newduba.cn.w.kunluncan.com Address: 111.31.66.223[中國 移動] Name: www.newduba.cn.w.kunluncan.com Address: 111.31.66.219[中國 移動] Name: www.newduba.cn.w.kunluncan.com Address: 111.31.66.222[中國 移動]
只查詢 CDN 服務提供商
# nslookup www.xxx.cn | nali cdn
CNAME 域名單獨使用
# nalicdncdn.xxx.com
4. nali 的使用技巧
更新資料庫
# nali update
自定義 IP 資料庫,需設置環境變數NALI_DB_IP4
或NALI_DB_IP6
。
目前所支持的變數內容:
Geoip2 ['geoip', 'geoip2', 'geo'] Chunzhen ['chunzhen', 'qqip', 'qqwry'] IPIP ['ipip', 'ipipfree', 'ipip.net'] Ip2Resion ['ip2region', 'region', 'i2r']
若使用第三方的 IP 資料庫,需手動下載對應的 IP 資料庫。
Windows 平臺
使用 geoip 資料庫 set NALI_DB_IP4=geoip 或者使用 powershell $env:NALI_DB_IP4="geoip" 使用 ipip 資料庫 set NALI_DB_IP6=ipip 或者使用 powershell $env:NALI_DB_IP6="ipip"
Linux 平臺
使用 geoip 資料庫 export NALI_DB_IP4=geoip 使用 ipip 資料庫 export NALI_DB_IP4=ipip