文章編號: 200525 - 上次校閱: 2005年6月6日 - 版次: 2.0

使用 NSlookup.exe

系統提示本文適用於您使用的作業系統之外的作業系統。與您不相關的文章內容已停用。

在此頁中

全部展開 | 全部摺疊

結論

Nslookup.exe 是用來測試和疑難排解 DNS 伺服器的命令列管理工具。此工具是透過 [控制台] 與 TCP/IP 通訊協定一起安裝。本文包含使用 Nslookup.exe 的幾種提示。

其他相關資訊

如果要使用 Nslookup.exe,請注意下列事項:
  • TCP/IP 通訊協定必須安裝在執行 Nslookup.exe 的電腦上
  • 當您從命令提示字元執行 IPCONFIG /ALL 命令時,至少必須指定一種 DNS 伺服器。
  • Nslookup 永遠會從目前的內容移轉名稱。如果您無法完整地限定名稱查詢 (即在結尾使用 .),查詢將附加到目前的內容。例如,目前的 DNS 設定是 att.com,且查詢是在 www.microsoft.com 上執行;則因為未限定查詢,第一個查詢將成為 www.microsoft.com.att.com。這個問題在其他供應商版本的 Nslookup 中可能有所不同,本文旨在澄清 Microsoft Windows NT Nslookup.exe 的問題。
  • 如果您實行 [Microsoft TCP/IP 內容] 頁面 [DNS] 索引標籤中定義的「網域字尾搜尋順序」中搜尋清單的用法,就不會發生移轉。查詢將附加到清單所指定的網域字尾。 如果要避免使用搜尋清單,請一律使用「完整格式網域名稱」(也就是在名稱結尾加上 .)。

Nslookup.exe 可在以下兩種模式中執行:互動式與非互動式。非互動模式在只需傳回單一片段資料時很有用。 非互動模式的語法是:

   nslookup [-option] [hostname] [server]
				

如果要在互動模式啟動 Nslookup.exe,只需在命令提示字元輸入 nslookup:

   C:\> nslookup
   預設伺服器: nameserver1.domain.com
位址: 10.0.0.1
   >
				

在命令提示字元輸入 help 或 ? 將產生可用命令的清單。 在命令提示字元輸入的任何內容如果無法辨識為有效的命令,則會假設成是主機名稱,並會使用預設伺服器嘗試加以解析。如果要中斷互動式命令,請按 CTRL+C。如果要結束互動模式並返回命令提示,請在命令提示字元輸入 exit

下列是說明輸出,並且包含完整的選項清單:

命令:  (識別碼以大寫顯示,[] 表示是選擇性的)

 NAME            - 列印關於主機/網域 NAME 的資訊,使用預設
伺服器
 NAME1 NAME2     - 同上,不同的是使用 NAME2 做為伺服器
 help 或 ?       - 列印一般命令的資訊
 set OPTION      - 設定選項

    all                 - 列印選項、目前的伺服器和主機
    [no]debug           - 列印除錯資訊
    [no]d2              - 列印詳細的除錯資訊
    [no]defname         - 將網域名稱附加到每個查詢
    [no]recurse         - 要求遞迴的查詢解答
    [no]search          - 使用網域搜尋清單
    [no]vc              - 始終使用虛擬電路
    domain=NAME         - 將預設網域名稱設為 NAME
    srchlist=N1[/N2/.../N6] - 將網域設為 N1,將搜尋清單設為 N1、N2
等等
    root=NAME           - 將根伺服器設為 NAME
    retry=X             - 將重試次數設為 X
    timeout=X           - 將初始的逾時間隔設為 X 秒
    type=X              - 設定查詢類型 (例如,A、ANY、CNAME、MX、
                          NS、PTR、SOA、SRV)
    querytype=X         - 與類型相同
    class=X             - 設定查詢類別 (例如 IN (網際網路)、ANY)
    [no]msxfr           - 使用 MS 快速區域轉送
    ixfrver=X           - 目前使用於 IXFR 轉送要求的版本

 server NAME     - 將預設伺服器設為 NAME,使用目前預設的伺服器
 lserver NAME    - 將預設伺服器設為 NAME,使用初始的伺服器
 finger [USER]   - 在目前的預設主機追蹤選擇性的 NAME
 root            - 將目前的預設伺服器設為根伺服器
 ls [opt] DOMAIN [> FILE] - 列出網域中的位址 (選擇性:輸出至
檔案)

    -a          -  列出正式名稱與別名
    -d          -  列出所有記錄
    -t TYPE     -  列出指定類型的記錄 (例如,A、CNAME、
                   MX、NS、PTR 等等)

 view FILE       - 排序 'ls' 輸出檔案並使用 pg 檢視
 exit            - 結束程式
				

在命令提示字元執行 set 命令,可以在 Nslookup.exe 中設定許多不同的選項。輸入 set all 可取得這些選項的完整清單。請見以上內容,在 set 命令下方有列印出的可用選項資料。


查詢不同的資料類型

如果要在網域名稱區中查詢不同的資料類型,請在命令提示字元使用 set typeset q[uerytype] 命令。例如,如果要查詢郵件交換程式資料,請輸入下列內容:
   C:\> nslookup
   預設伺服器: ns1.domain.com
位址: 10.0.0.1

   > set q=mx
   > mailhost
伺服器: ns1.domain.com
位址: 10.0.0.1

   mailhost.domain.com     MX 喜好設定 = 0,郵件交換程式 =
                           mailhost.domain.com
   mailhost.domain.com     網際網路位址 = 10.0.0.5
   >
				

第一次進行遠端名稱的查詢時,答案是可管理的,但之後的查詢則是無法管理的。第一次查詢遠端主機時,本機 DNS 伺服器會連絡可管理該網域的 DNS 伺服器。本機 DNS 伺服器會接著快取該資訊,所以之後的查詢會超出本機伺服器快取而以無法管理的方式進行回答。


直接從另一部名稱伺服器查詢

如果要直接查詢另一部名稱伺服器,請使用 serverlserver 命令來切換到該名稱伺服器。lserver 命令使用本機伺服器取得所切換的伺服器位址,而 server 命令則使用目前的預設伺服器取得該位址。

範例:
   C:\> nslookup

   預設伺服器: nameserver1.domain.com
位址: 10.0.0.1

   > server 10.0.0.2

   預設伺服器: nameserver2.domain.com
位址: 10.0.0.2
   >
				

使用 Nslookup.exe 轉送整個區域

使用 ls 命令,可讓 Nslookup 用來轉送整個區域。這在查看遠端網域中的所有主機時非常有用。ls 命令的語法是:

   ls [- a | d | t type] domain [> filename]
				

使用不含引數的 ls 將傳回所有位址與名稱伺服器資料的清單。-a 參數將傳回別名與正式名稱,-d 將傳回所有資料,而 -t 將依類型篩選。

範例:

   >ls domain.com
   [nameserver1.domain.com]
    nameserver1.domain.com.    NS     伺服器 = ns1.domain.com
    nameserver2.domain.com                 NS     伺服器 = ns2.domain.com
    nameserver1                            A      10.0.0.1
    nameserver2                            A      10.0.0.2

   >
				

您可以封鎖 DNS 伺服器中的區域轉送,只讓經過授權的位址或網路執行此函式。如果已設定區域安全性,將傳回下列錯誤:
*** Can't list domain example.com.: Query refused (*** 無法列出網域 example.com.:查詢被拒)

如需詳細資訊,請參閱「Microsoft 知識庫」中的下列文件:
193837? (http://support.microsoft.com/kb/193837/ ) Windows NT 4.0 DNS Server Default Zone Security Settings

疑難排解 Nslookup.exe

預設伺服器逾時

啟動 Nslookup.exe 公用程式時,可能會發生下列錯誤:
*** Can't find server name for address w.x.y.z: Timed out (*** 找不到位址 w.x.y.z 的伺服器名稱:逾時)

注意w.x.y.z 是「DNS 服務搜尋順序」清單中列出的第一個 DNS 伺服器。

*** Can't find server name for address 127.0.0.1:Timed out (*** 找不到位址 127.0.0.1 的伺服器名稱:逾時)

第一個錯誤代表無法聯繫 DNS 伺服器,或未在該電腦上執行服務。如果要修正這個問題,請在該伺服器上啟動 DNS 服務或檢查可能的連線問題。

第二個錯誤代表「DNS 服務搜尋順序」清單中未定義任何伺服器。如果要修正這個問題,請將有效 DNS 伺服器的 IP 位址新增至此清單中。

如需詳細資訊,請參閱「Microsoft 知識庫」中的下列文件:
172060? (http://support.microsoft.com/kb/172060/ ) NSLOOKUP:Can't Find Server Name for Address 127.0.0.1

啟動 Nslookup.exe 時找不到伺服器名稱

啟動 Nslookup.exe 公用程式時,可能會發生下列錯誤:

*** Can't find server name for address w.x.y.z: Non-existent domain (*** 找不到位址 w.x.y.z 的伺服器名稱:不存在的網域)


當名稱伺服器的 IP 位址沒有 PTR 記錄時,可能就會發生這個錯誤。 當 Nslookup.exe 啟動時,會執行反向對應以取得預設伺服器的名稱。如果沒有 PTR 資料,就會傳回此錯誤訊息。 如果要修正這個問題,請確認反向對應區域存在,並包含名稱伺服器的 PTR 記錄。

如需詳細資訊,請參閱「Microsoft 知識庫」中的下列文件:
172953? (http://support.microsoft.com/kb/172953/ ) 如何安裝並設定 Microsoft DNS Server

子網域上的 Nslookup 失敗

在子網域上查詢或執行區域轉送時,Nslookup 可能會傳回下列錯誤:

*** ns.domain.com can't find child.domain.com.: Non-existent domain (*** ns.domain.com 找不到 child.domain.com.:不存在的網域)
*** Can't list domain child.domain.com.: Non-existent domain (*** 無法列出網域 child.domain.com.:不存在的網域)


在 DNS Manager 中,可在主要區域下方新增網域,以建立子網域。以此種方式建立子網域不會個別建立網域的 db 檔案,因此,查詢該網域或在該網域上執行區域轉送將導致前述錯誤。 在父系網域上執行區域轉送,會同時列出父系網域與子網域的資料。如果需要替代的解決方案,請在 DNS 伺服器上為子網域建立新的主要區域。

這篇文章中的資訊適用於:
  • Microsoft Windows 2000 Server
  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows NT Server 4.0 Standard Edition
關鍵字:?
kbinfo KB200525
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。