nslookup 是診斷 DNS 基礎設施的核心工具,支援互動與非互動模式。前提:已安裝 TCP/IP 協議。當網路禁用 ping/telnet 時,nslookup 仍可分析域名解析路徑。
nslookup [-SubCommand ...] [{ComputerToFind | [-Server]}]
-SubCommand:指定子命令 (如 set type=mx、ls、finger)。ComputerToFind:查詢目標主機名或 IP。若非當前 DNS 域,需加尾點 (如 example.com.)。-Server:指定 DNS 伺服器,省略則用預設。nslookup www.example.com [dns-server]
nslookup [-] [dns-server]
> set type=mx
> example.com
> server 8.8.8.8
> www.google.com
> exit
互動模式技巧:Ctrl+B 中斷、exit 退出、\command 轉義內建命令。
| 錯誤訊息 | 原因 | 對策 |
|---|---|---|
| Timed out | DNS 伺服器超時無回應 | set timeout 增加超時 / set retry 增加重試 |
| No response from server | 目標主機未運行 DNS 服務 | 確認埠 53 開放、服務啟動 |
| No records | 域名存在但無該類型記錄 | set querytype 切換類型 (A/AAAA/MX/NS/TXT/CNAME) |
| Non-existent domain | 域名不存在 | 檢查拼字、域名註冊狀態 |
| Connection refused / Network unreachable | 無法建立 TCP/ UDP 53 連線 | 檢查防火牆、路由、ACL |
| Server failure | DNS 伺服器內部錯誤 | 查看伺服器日誌、聯繫管理員 |
| Refused | DNS 伺服器拒絕服務 (如遞歸查詢未授權) | 使用授權伺服器或授權區域查詢 |
| Format error | 查詢封包格式錯誤 | 檢查 nslookup 版本/參數語法 |
C:\> nslookup
Default Server: dns.example.com
Address: 192.168.1.1
> sina.com.cn
Server: dns.example.com
Address: 192.168.1.1
Non-authoritative answer:
Name: sina.com.cn
Address: 218.30.66.101
輸出說明:Default Server/Address 為當前使用的 DNS;Non-authoritative answer 表示非授權回應 (快取);Name/Address 為查詢結果。
set debug / set d2:顯示完整 DNS 封包內容 (標頭、問題、回答、授權、附加區域)。ls -d domain.com:列出域域傳送 (AXFR) 所有記錄 (需權限)。set vc:強制使用 TCP 53 連線 (測試 TCP DNS 通道)。root:查詢根域名伺服器。nslookup 雖歷久彌新,但現代替代工具 dig (Domain Information Groper) 輸出更結構化、支援 DNSSEC、EDNS0、COOKIE 等擴展,建議並行掌握。