nslookup
nslookup(name server lookup)直接問 DNS 伺服器:「這個名稱對應哪個位址?」瀏覽器、ping、curl 都會先做名稱解析;解析錯了,後面全部連錯地方。Windows、macOS、多數 Linux 都內建 nslookup。Linux/macOS 上更詳細的替代品是 dig。
基本用法
查 A 紀錄(名稱 → IPv4):
輸出前半是「你問了哪一台 DNS」,後半是答案。Non-authoritative answer 表示這台伺服器給的是快取,不是該網域的權威伺服器——日常除錯這很正常。
指定要問哪一台 DNS(比對本機 ISP DNS 與公共 DNS 是否一致):
反向查詢(IP → 名稱,若有 PTR):
查其他紀錄類型:
nslookup -type=MX example.com
nslookup -type=NS example.com
nslookup -type=AAAA example.com
nslookup -type=TXT example.com
只輸入 nslookup 會進入互動模式,可連續查、用 server 1.1.1.1 換伺服器、用 set type=MX 換類型,exit 離開。
什麼時候該用它
- ping 得到
could not find host,或瀏覽器說找不到伺服器。 - ping IP 成功、ping 名稱失敗:幾乎就是 DNS。
- 懷疑本機快取過期:Windows 先
ipconfig /flushdns,再 nslookup;見 ipconfig。 - 兩台 DNS 答案不同:指定
8.8.8.8與公司 DNS 各查一次,就能判斷是區域設定還是權威紀錄的問題。
dig 範例(Linux/macOS 常用):
輸出分 QUESTION/ANSWER,TTL 與權威旗標比較清楚。Windows 預設沒有 dig,nslookup 就夠日常使用。
教學影片
How a DNS Server (Domain Name System) works.(PowerCert Animated Videos,約 6 分鐘、數百萬次觀看)用動畫走一遍解析路徑:本機快取 → resolver(常是 ISP)→ 根伺服器 → TLD → 權威名稱伺服器。先建立「nslookup 在問誰」的地圖,再看指令比較不會迷路。
How to use nslookup, dig, and host to make dns requests(danscourses)實際打指令:非互動查詢、互動模式、set type=、以及 dig/host 的對照。適合當操作示範。
相關資料
- Microsoft Learn:nslookup
- 上一頁:traceroute 本機 DNS 快取:ipconfig