nslookup命令詳解

2021-05-22 19:09:51 字數 4572 閱讀 3063

nslookup命令詳解

nslookup 是乙個監測網路中dns伺服器是否能正確實現網域名稱解析的命令列工具。它在 windows nt/2000/xp 中均可使用,但在windows 98中卻沒有整合這乙個工具。

nslookup 必須要安裝了tcp/ip 協議的網路環境之後才能使用。

現在網路中已經架設好了一台 dns 伺服器,主機名稱為 linlin ,它可以把網域名稱 www.company.com 解析為 192.168.0.1 的ip位址,這是我們平時用得比較多的正向解析功能。

檢測步驟如下:

在 windows 2000 中單擊「開始」->「程式」->「附件」->「命令提示符」,在 c:/> 的後面鍵入 nslookup www.company.com ,「回車」之後即可看到如下結果:

server: linlin

address: 192.168.0.5

name: www.company.com

address: 192.168.0.1

以上結果顯示,正在工作的 dns 伺服器的主機名為 linlin ,它的 ip 位址是192.168.0.5 ,而網域名稱www.company.com 所對應的 ip 位址為 192.168.0.1 。那麼,在檢測到 dns 伺服器 linlin 已經能順利實現正向解析的情況下,它的反向解析是否正常呢? 也就是說,能否把ip位址192.168.0.1反向解析為網域名稱www.company.com ?我們在命令提示符c:/>的後面鍵入 nslookup 192.168.0.1 ,得到結果如下:

server: linlin

address: 192.168.0.5

name: www.company.com

address: 192.168.0.1

這說明,dns 伺服器 linlin 的反向解析功能也正常。

然而,有的時候,我們鍵入nslookup www.company.com ,卻出現如下結果:

server: linlin

address: 192.168.0.5

*** linlin can't find www.company.com: non-existent domain

這種情況說明網路中dns伺服器 linlin 在工作,卻不能實現網域名稱 www.company.com的正確解析。此時,要分析dns伺服器的配置情況,看是否 www.company.com 這一條網域名稱對應的 ip 位址記錄已經新增到了dns的資料庫中。

還有的時候,我們鍵入nslookup www.company.com ,會出現如下結果:

*** can't find server name for domain: no response from server

*** can't find www.company.com : non-existent domain

這時,說明測試主機在目前的網路中,根本沒有找到可以使用的 dns 伺服器。此時,我們要對整個網路的連通性作全面的檢測,並檢查dns伺服器是否處於正常工作狀態,採用逐步排錯的方法,找出 dns 服務不能啟動的根源。

配置好dns伺服器,新增了相應的記錄之後,只要ip位址保持不變,一般情況下我們就不再需要去維護dns的資料檔案了。不過在確認網域名稱解釋正常之前我們最好是測試一下所有的配置是否正常。許多人會簡單地使用ping命令檢查一下就算了。不過ping指令只是乙個檢查網路聯通情況的命令,雖然在輸入的引數是網域名稱的情況下會通過dns進行查詢,但是它只能查詢a型別和cname型別的記錄,而且只會告訴你網域名稱是否存在,其他的資訊一概欠奉。所以如果你需要對dns的故障進行排錯就必須熟練另乙個更強大的工具nslookup。這個命令可以指定查詢的型別,可以查到dns記錄的生存時間還可以指定使用那個dns伺服器進行解釋。

查詢ip位址

nslookup 網域名稱

以下是a記錄的返回情況。

如果目標網域名稱是乙個別名記錄(cname),nslookup就開始顯示出和ping命令不同的地方了,請看查詢cname記錄的結果。由於cname和a記錄最後都是活的ip位址,所以一般情況下兩者是等同看待的,命令的格式相同。

注意這次nslookup返回了三行資訊,前兩行顯示這是乙個cname記錄,對應的網域名稱和ip位址。最後顯示的就是目標網域名稱, 並註明alias(別名)。如果網域名稱不存在會怎樣呢?

看得懂最後以行的英文嗎,不懂沒關係記住形狀就可以了。如果乙個指定型別的網域名稱不存在對應的記錄同樣也是這種結果。

查詢其他型別的網域名稱

前面兩個命令我們沒有加任何引數,所以預設情況下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位址記錄

看看oray.net的郵件伺服器記錄吧。

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

我再看看名字伺服器記錄是怎麼樣的。

看起來和mx記錄的格式差不多,一般情況下伺服器會同時返回對應的位址。不過也有不返回的情況。

在這裡我希望大家注意一行顯示「non-suthoritativeanswer:」,這一行在前面的例子中都沒有顯示過。它的出現代表這個結果是從伺服器的快取中得到的。所以提醒你這不是乙個授權的答案。前面我們進行的幾次查詢過程中192.168.1.104這台機器就採用了我們第一篇文章中描述的過程查詢了oray.net的網域名稱。在這個過程中不但快取了www.oray.net、test.oray.net以及oray.net的mx記錄等最終結果。也包括獲取的名字伺服器等中間結果。隱含的查詢了oray.net的ns記錄。後面我們還會介紹這個過程。

指定使用的名字伺服器

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

nslookup [-qt=型別] 目標網域名稱 指定的dns伺服器ip或網域名稱

我們可看看以下的命令結果:

那麼到底快取多久呢?

檢查網域名稱的快取時間

檢查網域名稱的快取時間需要我們使用乙個新的引數:-d

格式如下:

nslookup –d [其他的引數] 目標網域名稱 [指定的伺服器位址]

請看範例

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

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

網域名稱解釋過程的模擬

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

看看下面的範例:

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

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

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

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

nslookup命令詳解

nslookup命令用於查詢dns的記錄,檢視網域名稱解析是否正常,在網路故障的時候用來診斷網路問題。nslookup的用法相對來說還是蠻簡單的,主要是下面的幾個用法。這個可能大家用到最多,查詢乙個網域名稱的a記錄。nslookup domain dns server 如果沒指定dns server...

Nslookup命令詳解

2007 05 15 14 46 15 標籤 nslookup命令 推送到技術圈 中執行查詢,那麼第乙個查詢將作為 解析為 192.168.0.1 的ip位址,這是我們平時用得比較多的正向解析功能。檢測步驟如下 在 windows 2000 中單擊 開始 程式 附件 命令提示符 在 c 的後面鍵入 ...

nslookup命令詳解

nslookup 是乙個監測網路中dns伺服器是否能正確實現網域名稱解析的命令列工具。它在 windows nt 2000 xp 在之後的windows系統也都可以用的,比如win7,win8等 中均可使用,但在windows 98中卻沒有整合這乙個工具。nslookup 必須要安裝了tcp ip ...