nslookup,dig,host的用法詳解


0.前言

我們在日常上網時都是用域名訪問網路,如www.baidu.com,而在實際尋址過程中,是使用IP地址,如180.101.49.11,域名到IP地址的解析是通過DNS服務器來實現的,系統中我們可以用一些網絡命令來解析指定的域名。比如說nslookup,dig和host命令。

1.nslookup

1.1 nslookup命令簡介

nslookup命令用於查詢DNS記錄,查看域名解析是否正常,在網絡故障時可以用來診斷網絡問題。

nslookup命令分為直接查詢指定參數查詢。

直接查詢的語法為nslookup domain [dns-server],其中domain是要查詢的域名,dns-server是可選字段,默認使用本地DNS服務器解析。

指定參數查詢的語法為 nslookup -qt=type domain [dns-server],其中type表示參數類型,常見類型有:

A 地址記錄(IPV4)
AAAA 地址記錄(IPV6)
CNAME 別名記錄
MX 郵件服務器記錄
PTR 反向記錄

格式:

nslookup [FQDN] [server]

選項與參數:

  1. 可以直接在 nslookup 加上待查詢的主機名或者是 IP,[server] 可有可無;
  2. 如果在 nslookup 后面沒有加上任何主機名或 IP,那將進入 nslookup的查詢功能,在 nslookup 的查詢功能當中,可以輸入其他參數來進行特殊查詢,

例如:
set type=any : 列出所有的信息『正解方面配置文件』
set type=mx : 列出與 mx 相關的信息!

1.2 nslookup應用

使用nslookup www.baidu.com 解析百度的域名

其中119.29.29.29是域名服務器地址(騰訊DNSPod DNS),端口為53號,canonical name是別名,Address指的是域名對應的IP地址。
除此之外,我們可以指定域名服務器,比如 nslookup www.baidu.com 8.8.8.8

然后再使用指定參數查詢,如 nslookup -q=AAAA www.qq.com 的IPV6地址(注:Linux下使用nslookup -q=type domain)

我們可以查詢到對應的IPV6地址。此外我們還可以使用MX參數解析郵件服務器的地址,使用PTR參數通過IP地址反向解析出域名,此處不再贅述。

2.dig

2.1 dig簡介

除了常用的nslookup之外,有一個更為強大的命令dig,dig是UNIX/BSD系統都自帶的DNS診斷工具,使用起來比較靈活,功能也足夠強大,windows下的nslookup功能比較簡單,Linux下的dig命令支持更多DNS查詢功能,比如DNS跟蹤,一半使用dig domain +trace進行DNS解析跟蹤。
當本地的DNS服務器去訪問一個域名的時候,整個域名解析的完整過程如下:

2.2 dig應用

1.dig查詢www.baidu.com的ip全過程

我們結合具體的例子來看一下DNS解析域名的具體過程。

首先在終端輸入dig www.baidu.com +trace

拆解這整個過程,可以看出從119.29.29.29服務器返回了13個根域名服務器信息,系統從13個根服務器隨機選擇一個進行訪問。

我們可以看到系統隨機選擇了根域名服務器e.root-servers.net,並返回了.com域名服務器列表

系統選擇了e.gtld-servers.net並返回了a.shifen.com.的域名服務器列表。

接下來系統訪問ns7.baidu.com並返回了www.baidu.com的域名服務器列表。

最后得到www.baidu.com的IP地址為180.76.76.92。

  1. 查詢 linux.vbird.org 的 SOA 相關信息
dig -t soa linux.vbird.org

由於 dig 的輸出信息實在是太豐富了,又分成多個部分去進行回報,因此很適合作為 DNS 追蹤回報的一個指令呢! 你可以透過這個指令來了解一下你所設定的 DNS 數據庫是否正確,並進行除錯喔! _!此外,你也可以透過『 -t type 』 的功能去查詢其他服務器的設定值,可以方便你進行設定 DNS 服務器時的參考喔!正解查詢完畢,接下來玩一玩反解吧!

  1. 查詢180.101.49.11 (百度)反解析
dig -x 180.101.49.11

反解相當有趣!從上面的輸出結果來看,反解的查詢目標竟然從180.101.49.11變成了 101.180.in-addr.arpa. 這個模樣~這是啥鬼東西?不要怕,這等我們講到反解時再跟大家進一步解釋。 你現在要知道的是,反解的查詢領域名,跟正解不太一樣即可,尤其是那個怪異的 in-addr.arpa. 結尾的數據,可以先記下來。

3.host

3.1 host簡介

格式:

host [-a] FQDN [server]
host -l domain [server]

選項:
-a :代表列出該主機所有的相關信息,包括 IP、TTL 與除錯訊息等等
-l :若后面接的那個 domain 設定允許 allow-transfer 時,則列出該domain所管理的所有主機名對應數據

server:這個參數可有可無,當想要利用非 /etc/resolv.conf 內的 DNS 主機來查詢主機名與 IP 的對應時,就可以利用這個參數了

3.2host應用

1.使用默認值來查出百度的IP

host www.baidu.com

  1. 查出百度的所有重要參數
host -a www.baidu.com

  1. 強制以 8.8.8.8 這部 DNS 服務器來查詢
host www.baidu.com 8.8.8.8

  1. 找出 sxjy.com領域的所有主機對應
host -l sxjy.com

怎么會無法響應呢?這樣的響應是因為管理 vbird.org 領域的 DNS 並不許我們的領域查詢,畢竟我們不是 vbird.org 的系統管理員,當然沒有權限可以讀取整個vbird.org 的領域設定啰!這個『 host -l 』是用在自己的 DNS 服務器上,本章稍后談到服務器設定后,使用這個選項就能夠讀取相關的數據了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM