Nslookup命令的使用 – [詳細]

  • 2020 年 7 月 13 日
  • 筆記

用法一、查詢IP地址

  nslookup最簡單的用法就是查詢域名對應的IP地址,包括A記錄和CNAME記錄,如果查到的是CNAME記錄還會返回別名記錄的設置情況。其用法是:

  nslookup 域名

# 示例
>nslookup www.baidu.com

伺服器: cache-a.guangzhou.gd.cn
Address: *.*.*.*

非權威應答:
名稱: www.a.shifen.com
Addresses: 14.215.177.39
14.215.177.38
Aliases: www.baidu.com

  nslookup命令會採用先反向解釋獲得使用的DNS伺服器的名稱。

如果域名不存在會怎樣呢?

>nslookup www.alksdjlk.com

伺服器:  cache-a.guangzhou.gd.cn
Address:  *.*.*.*

*** cache-a.guangzhou.gd.cn 找不到 www.alksdjlk.com: Non-existent domain

  如果域名不存在,則會會等待一段比較長的時間,然後提示”Non-existent domain”(不存在的域名)

  查詢其他類型的域名

  前面兩個命令我們沒有加任何參數,所以默認情況下nslookup查詢的是A類型的記錄。如果我們配置了其他類型的記錄希望看到解釋是否正常。這時候ping就無能為力了。比如我們配置了MX記錄,但是郵件伺服器只能發信不能收信,到底是域名解釋問題還是其他的問題Ping命令的檢查只能讓你誤入歧途。nslookup 這時候可以模擬你的其他伺服器進行域名解釋的情況。我們需要在nslookup上加上適當的參數。指定查詢記錄類型的指令格式如下:

  nslookup –qt=類型 目標域名

  注意qt必須小寫。

  類型可以是一下字元,不區分大小寫:

  A 地址記錄(Ipv4)
  AAAA 地址記錄(Ipv6)
  AFSDB Andrew文件系統資料庫伺服器記錄(不懂)
  ATMA ATM地址記錄(不是自動提款機)
  CNAME 別名記錄
  HINFO 硬體配置記錄,包括CPU、作業系統資訊
  ISDN 域名對應的ISDN號碼
  MB 存放指定郵箱的伺服器
  MG 郵件組記錄
  MINFO 郵件組和郵箱的資訊記錄
  MR 改名的郵箱記錄
  MX 郵件伺服器記錄
  NS 名字伺服器記錄
  PTR 反向記錄(從IP地址解釋域名)
  RP 負責人記錄
  RT 路由穿透記錄(不懂)
  SRV TCP伺服器資訊記錄(將有大用處)
  TXT 域名對應的文本資訊
  X25 域名對應的X.25地址記錄

>nslookup -qt=mx qq.com

伺服器:  cache-a.guangzhou.gd.cn
Address:  *.*.*.*

非權威應答:
qq.com  MX preference = 10, mail exchanger = mx3.qq.com
qq.com  MX preference = 30, mail exchanger = mx1.qq.com
qq.com  MX preference = 20, mail exchanger = mx2.qq.com

qq.com  nameserver = ns1.qq.com
qq.com  nameserver = ns4.qq.com
qq.com  nameserver = ns2.qq.com
qq.com  nameserver = ns3.qq.com
mx1.qq.com      internet address = 14.215.140.20
ns2.qq.com      internet address = 123.151.66.78
ns2.qq.com      internet address = 203.205.177.41
ns2.qq.com      internet address = 121.51.160.100
ns3.qq.com      internet address = 183.192.201.116
ns3.qq.com      internet address = 112.60.1.69
ns4.qq.com      internet address = 203.205.221.79
ns4.qq.com      internet address = 58.144.154.100
ns4.qq.com      internet address = 59.36.132.142
ns4.qq.com      internet address = 125.39.46.125
ns1.qq.com      internet address = 101.89.19.165
ns1.qq.com      internet address = 157.255.246.101
ns1.qq.com      internet address = 183.3.226.207
mx2.qq.com      AAAA IPv6 address = 2408:8756:3af0:10::102
mx1.qq.com      AAAA IPv6 address = 2402:4e00:8010::af

    上面是一個MX命令的使用,可以查詢出域名的郵箱伺服器記錄

 

  nslookup把伺服器的名稱和地址都給出來了,注意preference就是前面所說的優先順序,該數值越小則優先順序越高。

  指定使用的名字伺服器

  在默認情況下nslookup使用的是我們在本機TCP/IP配置中的DNS伺服器進行查詢,但有時候我們需要指定一個特定的伺服器進行查詢試驗。這時候我們不需要更改本機的TCP/IP配置,只要在命令後面加上指定的伺服器IP或者域名就可以了。這個參數在我們對一台指定伺服器排錯是非常必要的,另外我們可以通過指定伺服器直接查詢授權伺服器的結果避免其他伺服器快取的結果。命令格式如下:

  nslookup [-qt=類型] 目標域名 指定的DNS伺服器IP或域名 

 

 

這個命令直接從頂級域名伺服器查詢域名的NS記錄。所有的二級域名的NS記錄都存放在頂級域名伺服器中,這是最權威的解釋。注意這次沒有非授權結果的提示。對於二級域名的NS記錄查詢來說這肯定是授權結果。當我們修改域名的NS記錄的時候可以通過上述查詢知道修改的結果是不是已經在頂級域名伺服器上生效。不過即使已經生效也可能不能正常解釋,存在快取。

  那麼到底快取多久呢?

  檢查域名的快取時間

  檢查域名的快取時間需要我們使用一個新的參數:-d

  格式如下:

  nslookup –d [其他的參數] 目標域名 [指定的伺服器地址]

 

 

 

  我們忽略其他的看看Got answer後面幾行,包括了一個ttl數值。這個數值就是域名記錄的生存時間。

  這種查詢將整個DNS數據包的所有部分都揭示出來,大家可以看到DNS實際上並不是想像中那麼簡單的東西。具體的各部分解釋大家可以去看看相關的標準文檔。需要提醒大家的是一定要找到ANSWER:的內容,其他的東西都不是描述最終的結果。上面就不止一個地方又TTL數值。

域名解釋過程的模擬

  我們現在來模擬一下一台DNS伺服器接到一個不是自己管理的域的域名解釋過程。回憶一下第一篇文章的過程:

  首先我們會詢問根伺服器,然後根伺服器會讓我們去找對應的頂級伺服器。如果查詢的是oray.net,就會要求我們去找net的伺服器。

  這裡我們讓21cn.com的伺服器解釋www.oicp.net的域名,很顯然這台伺服器不用有這個域,需要詢問根伺服器。一般情況下DNS伺服器會幫我們完成全部的過程。這種解釋方式我們稱之為遞歸解析,為了讓大家看到這個過程我家了一個參數讓21cn.com的伺服器不要這樣做。這個參數是-norecurse。這樣理論上21cn.com會讓我們去問根伺服器,不過由於它已經快取了頂級伺服器的記錄,所以直接返回了管理net的頂級伺服器記錄。實際上大部分的查詢都不需要從根伺服器開始。大家看到了所有的頂級域名伺服器的地址都被返回。

  我們隨便選擇一個在進行查詢。

 

  這次頂級伺服器就返回了oicp.net的伺服器地址記錄的。然後我們就向這些記錄之一進行查詢,一定能夠得到答案。可能是一個地址、一個CNAME記錄或者告訴你不存在。

  nslookup的命令就介紹到這裡,其實nslookup還有許多其他參數。不過常用的就俄這麼幾個,另外如果大家不喜歡命令行方式的話。還有幾個圖形介面的nslookup功能的工具。不過大家還是需要了解域名解釋都有些什麼才能夠正確使用這些工具。