linux nslookup

比如我想查看 一個IP地址的域名的話:可以用nslookup這個命令
(117)yyang@milse05#nslookup ip_address

參考:http://roclinux.cn/?p=2441
【nslookup何許人?】

nslookup命令,是Linux裏非常常用的網絡命令,簡而言之就是“查DNS信息用的”。

通過man nslookup可以看到對於nslookup的官方解釋是“query Internet name servers interactively”。

【nslookup作者何許人?】

通過man nslookup可以看到其作者是Andrew Cherenson,我尋找到了他的Linkedin主頁,原來

他是一位計算機科學的高材生,曾經就讀於哈佛大學和加州大學伯克利分校。

目前就職於ChoiceStream公司,

【系統沒有nslookup命令?】

如果你的Linux系統沒有nslookup命令,那麼八成是你沒有安裝bind-utils包。

直接yum install bind-utils就可以解決問題了。

【nslookup的兩種模式】

nslookup是一個能夠查詢互聯網域名服務器信息的程序。他有兩種工作模式,即“交互模式”和“非交互模式”。

在“交互模式”下,用戶可以向域名服務器查詢各類主機、域名的信息,或者輸出域名中的主機列表。

而在“非交互模式”下,用戶可以針對一個主機或域名僅僅獲取特定的名稱或所需信息。

【如何進入交互模式?】

進入交互模式,總共有兩種方法。


第一種方法,直接輸入nslookup命令,不加任何參數,則直接進入交互模式,此時nslookup會連接到默認的域名服務器(即/etc/resolv.conf的第一個dns地址)。

第二種方法,是支持選定不同域名服務器的。需要設置第一個參數爲“-”,然後第二個參數是設置要連接的域名服務器主機名或IP地址。

【如何進入非交互模式?】

如果你直接在nslookup命令後加上所要查詢的IP或主機名,那麼就進入了非交互模式。當然,這個時候你也可以在第二個參數位置設置所要連接的域名服務器。

【選項和參數】

nslookup不僅支持設置參數,也是支持設置選項(options)的。比如可以使用-query來設置查詢類型爲主機信息,同時設置初始超時時限爲10秒:

nslookup -query=hinfo -timeout=10
【交互模式很強大】

1 直接查詢域名
如果你直接輸入域名(以www.baidu.com舉例),會有類似如下的輸出:

$ nslookup
> www.baidu.com
Server:         61.139.2.69 //上連的DNS服務器
Address:        61.139.2.69#53 //上連的DNS服務器的IP地址與端口號

Non-authoritative answer: //非權威答案,即從上連DNS服務器的本地緩存中讀取出的值,而非實際去查詢到的值
www.baidu.com   canonical name = www.a.shifen.com. //說明www.baidu.com有個別名叫www.a.shifen.com
Name:   www.a.shifen.com //域名www.a.shifen.com
Address: 119.75.217.56 //對應的IP地址之一
Name:   www.a.shifen.com
Address: 119.75.218.77//對應的IP地址之二
2 server [domain]
首先nslookup會連接到當前的默認上連DNS服務器去查詢domain的IP地址,並將之作爲當前默認上連DNS服務器。
另外,還有一個命令叫做lserver [domain],它與server的區別在於,它是取本地的第一臺DNS服務器來查詢domain的IP地址,並將之作爲當前默認上連DNS服務器。(lserver中的首字母l就是local的意思)

$ nslookup
> www.baidu.com //以默認的上連DNS服務器來查詢
Server:         61.139.2.69
Address:        61.139.2.69#53

Non-authoritative answer:
www.baidu.com   canonical name = www.a.shifen.com.
Name:   www.a.shifen.com
Address: 119.75.218.77 //對應的描述信息爲“北京市 百度網訊科技”
Name:   www.a.shifen.com
Address: 119.75.217.56
> server 8.8.8.8 //更改了上連的DNS服務器地址
Default server: 8.8.8.8
Address: 8.8.8.8#53
> www.baidu.com ////以更改後的上連DNS服務器來查詢
Server:         8.8.8.8
Address:        8.8.8.8#53

Non-authoritative answer:
www.baidu.com   canonical name = www.a.shifen.com.
Name:   www.a.shifen.com
Address: 220.181.111.147 //對應的描述信息爲“北京市(南三環洋橋電信機房) 電信”
可見,兩個不同的上連DNS服務器返回的IP地址是不同的。

3 exit
退出nslookup的交互模式。

4 set all
列出nslookup工具的常用選項的當前設置值。

> set all
Default server: 8.8.8.8 //當前的上連DNS服務器
Address: 8.8.8.8#53 //當前的上連DNS服務器的IP地址和端口

Set options:
  novc                  nodebug         nod2
  search                recurse
  timeout = 0           retry = 3       port = 53
  querytype = A         class = IN
  srchlist =
5 set class=[value]
可以更改查詢類,而不同的類設定了不同的協議族。

IN:Internet類(默認)
CH:Chaos類
HS:Hesiod類
一般我們最長使用IN。而Hesiod之前僅在M.I.T(Massachusetts Institute of Technology,即麻省理工學院)範圍內使用,現在甚至已經無人使用。而Chaos也幾乎滅絕,曾經BIND套裝用Chaos來協助檢查版本號信息。

6 set [no]debug
可以用來設置是否進入調試模式。如果set debug,則會進入到調試模式,查詢過程中會顯示完整的響應包以及其中的交互包。

$ nslookup
> set debug //進入調試模式
> www.baidu.com
Server:         61.139.2.69
Address:        61.139.2.69#53

------------
    QUESTIONS: //發出的查詢請求
        www.baidu.com, type = A, class = IN 
    ANSWERS: //返回的信息
    ->  www.baidu.com
        canonical name = www.a.shifen.com.
        ttl = 1192
    ->  www.a.shifen.com
        internet address = 119.75.217.56
        ttl = 262
    ->  www.a.shifen.com
        internet address = 119.75.218.77
        ttl = 262
    AUTHORITY RECORDS:
    ADDITIONAL RECORDS:
------------
Non-authoritative answer:
www.baidu.com   canonical name = www.a.shifen.com.
Name:   www.a.shifen.com
Address: 119.75.217.56
Name:   www.a.shifen.com
Address: 119.75.218.77
7 set [no]d2
開啓了高級調試模式,會輸出很多nslookup內部工作的信息,包括了許多函數調用信息。

8 set domain=[name]
用於設置默認的域。這樣的話,對於所有不包含“.”的查詢請求,都會自動在尾部追查此域。

$ nslookup
> set all //首先顯示上連DNS服務器信息以及所有的當前選項信息
Default server: 61.139.2.69
Address: 61.139.2.69#53
Default server: 8.8.8.8
Address: 8.8.8.8#53
Default server: 202.102.224.68
Address: 202.102.224.68#53

Set options:
  novc                  nodebug         nod2
  search                recurse
  timeout = 0           retry = 3       port = 53
  querytype = A         class = IN
  srchlist =  //可以看到srchlist(即search list爲空)
> set domain=baidu.com //設置默認域爲baidu.com
> image //直接查詢image
Server:         61.139.2.69
Address:        61.139.2.69#53

Non-authoritative answer:
image.baidu.com canonical name = image.n.shifen.com. //可以看到已默認追加了.baidu.com域,變成了image.baidu.com
Name:   image.n.shifen.com
Address: 220.181.111.131
> set domain= //清除domain設置
> image
Server:         61.139.2.69
Address:        61.139.2.69#53

Non-authoritative answer:
Name:   image
Address: 61.139.8.100 //於是,可以發現,域名解析又被劫持了...
9 set [no]search
如果設置了set search,那麼當查詢的字串中只包含一個句點,且結尾非句點時,nslookup會將domain設置的域追加到查詢字串的尾部來嘗試查詢。

10 set port=[value]
衆所周知,DNS默認的服務端口是53。當某些特殊情況,此端口改變時,可以通過本命令來設置。

11 set type=[value]
也可以寫成set querytype=[value],用於更改信息查詢類型。
默認情況下,nslookup是查詢域名所對應的A記錄,而如果你想查詢其對應的MX記錄等信息時,就需要專門設置type值了。
目前常用的type值如下:

A:查看主機的IPv4地址
AAAA:查看主機的IPv6地址
ANY:查看關於主機域的所有信息
CNAME:查找與別名對應的正式名字
HINFO:查找主機的CPU與操作系統類型
MINFO:查找郵箱信息
MX:查找郵件交換信息
NS:查找主機域的域名服務器
PTR:查找與給定IP地址匹配的主機名
RP:查找域負責人記錄
SOA:查找域內的SOA地址
UINFO:查找用戶信息
例如,針對MX類型的查詢結果如下:

> set type=MX
> baidu.com //查詢MX信息
Server:         61.139.2.69
Address:        61.139.2.69#53

Non-authoritative answer:
baidu.com       mail exchanger = 20 jpmx.baidu.com.
baidu.com       mail exchanger = 20 mx50.baidu.com.
baidu.com       mail exchanger = 10 mx.mailcdn.baidu.com.
baidu.com       mail exchanger = 20 mx1.baidu.com.

Authoritative answers can be found from:
> set type=A
> baidu.com //查詢A記錄
Server:         61.139.2.69
Address:        61.139.2.69#53

Non-authoritative answer:
Name:   baidu.com
Address: 123.125.114.144
Name:   baidu.com
Address: 220.181.111.85
Name:   baidu.com
Address: 220.181.111.86
12 retry=[number] / timeout=[number]
可以用來設置查詢重試的次數,以及每次查詢的超時時限。

【總結】
其實nslookup命令的man信息不長,大家仔細閱讀個20、30分鐘也就基本掌握了。
nslookup命令很小,但卻很實用,它是我們與DNS服務器之間很好很方便的通訊橋樑。
--------------------- 
作者:忽略的愛 
來源:CSDN 
原文:https://blog.csdn.net/huluedeai/article/details/50674286 
版權聲明:本文爲博主原創文章,轉載請附上博文鏈接!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章