Linux:IP與域名解析——nslookup與dig的功能和區別
1、nslookup
學習自:Linux nslookup命令詳解 – 編程技術之美-IT之美
Linux nslookup命令常見用法_SparLight的博客-CSDN博客
1)簡介
Linux中的nslookup命令用于查詢DNS服務器,獲取特定主機名的IP或域名的MX記錄等。
2)用法
nslookup 選項 主機名 DNS服務器
主機名:需要查詢的主機名或IP地址
DNS服務器:DNS服務器的IP或域名
選項:
選項 |
說明 |
| -query | 指定查詢類型,默認為A記錄 |
| -timeout | 指定查詢超時時間 |
| -debug | 顯示調試信息 |
| -help | 顯示幫助信息 |
| -version | 顯示版本信息 |
3)例子
①查詢指定主機名的IP
nslookup www.google.com

查詢結果分為兩組:
服務器、Address 和 名稱、Addresses
其中:
a)服務器、Address代表進行域名解析操作的DNS服務器的信息。
服務器:域名服務器的名稱。上圖UnKnown是一種常見的情況,看這個域名服務器的IP:192.168.253.86,可以發現這是一個本地IP。
說明nslookup成功找到了正在使用的DNS服務器的IP地址,即192.168.253.86(通常是本地路由器,承擔本地DNS功能),但無法獲取該DNS服務器的域名(也就是上邊的服務器:Unknown,即無法通過反向解析得知這個IP對應的服務器名稱)
由于路由器未配置PTR記錄(反向解析記錄,其作用是將IP映射到域名),沒有這個記錄時,nslookup就無法知道這個IP對應的服務器叫啥名字,只能顯示unknown。
不過,雖然DNS服務器的名字未知,但是后邊緊跟的Address顯示的IP地址卻是真實正在使用的DNS服務器(可能是路由器IP、運營商DNS、手動設置的公共DNS),nslookup就是通過這個IP地址完成了域名解析查詢。
b)非權威應答:名稱、Addresses
這一部分代表最終的解析結果。Addresses代表了待解析域名的真實IP,可以用于訪問該網站。
非權威應答:這個結果來自“緩存”或“非直接負責該域名的DNS服務器”(例如某個本地DNS服務器),但結果本身是正確的。
②查詢指定IP對應的主機名
nslookup 8.8.8.8

說明:nslookup后跟IP和后跟域名的區別
a)域名(正向解析)
直接查該域名的IP地址(A地址)
③查詢MX記錄
nslookup -query=mx google.com
④指定DNS服務器進行查詢
nslookup www.google.com 8.8.8.8
2、dig命令
1)簡介
dig是domain information group的簡寫,即域名信息組。
dig是一個常用的域名查詢工具,可以從DNS域名服務器查詢主機地址信息,獲取到詳細的域名信息。
dig名是Bind的一部分,本身沒有在Windows和Linux系統中集成,如果我們想要使用該命令就要先下載對應的軟件包。
2)軟件包安裝
Debian(Ubuntu,kali…)系列下安裝
apt-get install dnsutils
RedHat(RedHat,Centos,Fedora…)系列
yum install bind-utils
Windows
Windows下安裝dig命令比較繁瑣一點,需要先下載Bind,再添加環境變量,安裝教程鏈接:win10 安裝dig工具與使用dig命令3)用法
命令:dig DNS URL 選項
選項:
常規選項
dig www.baidu.com A # 查詢A記錄,如果域名后面不加任何參數,默認查詢A記錄 dig www.baidu.com MX # 查詢MX記錄 dig www.baidu.com CNAME # 查詢CNAME記錄 dig www.baidu.com NS # 查詢NS記錄 dig www.baidu.com ANY # 查詢上面所有的記錄 dig www.baidu.com A +short # 查詢A記錄并顯示簡要的返回的結果 dig www.baidu.com A +multiline # 查詢A記錄并顯示詳細的返回結果
從指定的DNS服務器進行查詢
如果不指定DNS服務器,可能會導致獲得的結果不準確;
如果不指定DNS服務器,dig會依次使用/etc/resolv.conf中的地址作為DNS服務器。
dig @192.168.0.2 www.baidu.com # 表示從192.168.0.2這個IP服務器對www.baidu.com進行A記錄查詢
查詢PTR記錄
dig -x 192.168.213.131 # 訪問PTR記錄,查詢該IP地址所對應的主機名 DNS解析是用域名查IP,而PTR記錄是IP查域名

4)例子及說明
dig www.baidu.com

①DIG行

這部分輸出了有關于它的版本信息(version 9.16.15)和全局的設置選項
②Got answer行

該行輸出了DNS返回的技術信息。比較重要的是status,如果status值為NOERROR,說明本次查詢成功。這段信息(即Got answer行顯示的信息)可以用命令選項 [no] comments來控制是否顯示。
③QUESTION SECTION行

查詢字段,顯示了我們要查詢的域名和服務,比如這里的A代表A記錄查詢,即主機查詢。
④ANSWER SECTION行

回答字段,返回查詢結果。
這里的結果表示:①要查詢www.baidu.com,先查詢CNAME記錄,對www.a.shifen.com進行訪問;②當訪問了www.a.shifen.com之后,該主機讓我們訪問110.242.68.3;③當訪問了110.242.68.3之后,該主機會告訴我們www.baidu.com的IP是110.242.68.4。
⑤

最后一節顯示了請求所花的時間、dns服務器、當前時間、查詢信息的大小。
3、nslookup與dig之間的區別
學習自:通過DNS和IP地址挖掘目標網絡信息:dig和nslookup_dig和nslookup區別-CSDN博客
dig會從域名的官方DNS服務器上獲取到精確的權威解答;
nslookup只會得到DNS解析服務器保存在Cache中的非權威解答。
對于一些采用了分布式服務器和CDN技術的大型網站,用nslookup查詢到的結果和dig查詢結果往往不同。

浙公網安備 33010602011771號