Windows中名稱解析順序

析順序的2個重要的因素:第一,OS版本,第二,節點模式。OS版本決定了Netbios解析優先還是DNS解析優先。節點模式決定了先查WINS還是先廣播。

簡介

Windows 名稱解析順序

Windows中名字解析的順序是怎樣的?很多中文的技術文章或者前後矛盾,或者語焉不詳,是他們錯了么?不是,只是沒有把特定的條件說清楚了罷了。

比如這個常見的說明名字解析順序的圖片:

但是這個順序一定正確嗎?回答應該是,在特定的場合下,是正確的。這個特定場合指的是1)OS是Windows 9x/NT以前,2)採用了H-Mode的節點模式。但是這些,很多引用了這張圖片的文檔都沒有解釋。

決定名字解析順序的2個重要的因素:第一, OS 版本,第二, 節點模式。OS版本決定了Netbios解析優先還是DNS解析優先。節點模式決定了先查WINS還是先廣播。

---Windows 2000以後(包括2000、XP、Vista、Win7、2003、2008)都先查DNS,後查NetBIOS。

---Windows 9x/NT以前的,都先查NetBIOS,後查DNS。

接下去我們用問答的方式來解釋一些常見問題。

Q: DNS 名的查詢順序:

DNS cache --> HOSTS 檔案 --> DNS Server

Q: NetBIOS 名的查詢順序:

如果是H-mode的話: NetBIOS cache --> WINS Server --> 廣播 --> LMHOSTS 檔案

如果是其他模式,WINS和廣播的順序會有不同,見下文。

Q: HOSTS LMHOSTS 檔案的位置

%SystemRoot%\System32\drivers\etc

%SystemRoot%通常都是C:\Windows,NT下是C:\WINNT

(查看SystemRoot的路徑,可以在cmd下輸入set命令)

預設情況下, lmhosts 檔案並不存在,系統有一個 lmhosts 樣本檔案 lmhosts.sam ,您可以仿照 lmhosts.sam 檔案來編寫您的 lmhosts

Q: 如何看當前節點模式?

ipconfig /all

Q: 有那些 mode

有四種mode:b,p,m,h

Q: 每種 mode 的具體含義?

B-mode:Broadcast Mode,只廣播

P-mode: Point-to-point mode,只查WINS

M-mode: Mixed mode,先廣播,後WINS

H-mode: Hybrid mode,先WINS,後廣播

Q: 默認 mode 是什麼?

設定了WINS時,默認mode是H-mode,沒設定WINS默認mode是B-mode

Q: 各個 mode Reg 鍵值

B-mode:0x1

P-mode: 0x2

M-mode: 0x4

H-mode: 0x8

Q: mode 的動態設定

通過DHCP分配地址的時候,可以配置NodeType,在註冊表中

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Netbt\Parameters

DHCPNodeType的值說明了從DHCP獲得的Node Type

Q: 如何改 mode

通常情況下,不需要改 Mode !使用默認的 H-mode 即可!

在註冊表中添加或者修改NodeType鍵值。

默認情況下,不存在NodeType鍵值,可以手工創建。

NodeType鍵值覆蓋(優先權高於)DHCPNodeType的鍵值。

NodeType的位置在:

Windows 2000 and Windows NT

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Netbt\Parameters

Key: NodeType

Value Type: REG_DWORD - Number

Valid Range: 1,2,4,8 (b-node, p-node, m-node, h-node)

Windows 9x

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\MSTCP

Key: NodeType

Value type: DWORD

Valid range: 1, 2, 4, or 8

Q: 如何顯示 DNS Cache

ipconfig /displaydns

Q: 如何手工清空 DNS Cache

ipconfig /flushdns

Q: DNS Cache 有效期多少時間?

10分鐘。

Q: 如何停用 DNS Ca che

在Windows服務中的DNS Client服務(短名dnscache)負責DNS Cache任務,只要停用這個服務,就可以停用DNS Cache。

注意,即使關掉DNS Client服務,計算機仍然可以通過DNS伺服器來解析DNS名。

關掉DNS Client服務的辦法,可以輸入命令:

net stop dnscache

sc servername stop dnscache

或者在圖形界面,services.msc控制台中關閉該服務。

Q :如何查看 NetBIOS Cache

nbtstat –c

Q: 如何清空 NetBIOS Cache

nbtstat -R

注意R必須大寫

總結

最後總結一下,一台加入AD的Windows XP電腦的名字解析順序默認應該是:

DNS cache --> HOSTS 檔案 --> DNS Server –> NetBIOS cache --> WINS Server --> 廣播 --> LMHOSTS 檔案

如果是一台Win95的工作組電腦,並且沒有WINS,(還記得嗎?沒有配WINS,默認用B模式)則是:

NetBIOS cache --> 廣播 --> LMHOSTS 檔案 --> DNS cache --> HOSTS 檔案 --> DNS Server

相關詞條

熱門詞條

聯絡我們