- NetBIOS是網路上設備命名和發現的關鍵。 Windows但如今它已經過時,並且存在安全隱患。
- DNS 和 mDNS 實現了現代名稱解析:DNS 用於大型網絡,mDNS 用於無伺服器本地環境。
- 停用客戶端和伺服器(包括 DHCP 伺服器)上的 NetBIOS 可以減少攻擊面,尤其是在公共網路和企業中。
- 規劃適當的 NetBIOS 和 DNS 名稱對於避免衝突、Active Directory 問題和解析失敗至關重要。
在許多家庭和企業網路中,NetBIOS、DNS 和 mDNS 等術語仍然經常出現,有時甚至被混淆,彷彿它們是同一回事,但實際上它們的用途截然不同。如果您使用 Windows 多年,肯定見過電腦名稱共用資料夾或印表機的情況,卻完全不了解其背後的協定。
事實上,NetBIOS 幾十年來一直是 Windows 網路中識別電腦的標準方法,但如今它顯然已經過時,會帶來安全風險,而且現在有更強大的現代替代方案,例如 DNS 和 mDNS。了解每種方案的工作原理、適用場景以及何時停用它們,是避免網路出現各種問題和安全隱患的關鍵。
什麼是NetBIOS?它的實際運作原理是什麼?
NetBIOS(網路基本輸入/輸出系統)本身並非傳輸協議,而是程式介面和服務集,旨在使應用程式能夠在無需關注底層細節的情況下透過網路進行通訊。它起源於 20 世紀 80 年代,遠早於 TCP/IP 在 Windows 環境中標準化。
在 OSI 模型中,NetBIOS 運行於第五層(會話層),因此它依賴其他協定(例如 TCP 或 UDP)在有線區域網路和無線網路中傳輸資料。它本身並不定義資料傳輸格式;相反,它負責應用程式會話的建立、訊息的傳送和錯誤處理。
從使用者的角度來看,NetBIOS 的用途非常簡單,例如在網路上「查看電腦名稱」。在啟用 NetBIOS 的網路中,每台電腦都有一個唯一的名稱,當您在舊版的 Windows 中瀏覽共用資源或工作群組時,就會顯示該名稱。
儘管這項技術現在已被視為過時技術,但為了向後相容,許多 Windows 系統仍然預設啟用它。這意味著即使您很少使用它,這項功能仍然存在,並且從安全角度來看,它可能存在安全漏洞。
NetBIOS 提供三種主要服務,每種服務都運行在特定的連接埠上,並在網路通訊中扮演非常明確的角色:
- 會話服務它是一種面向連線的服務,可以以客戶端/伺服器或點對點模式運作。它基於 TCP 協議,使用 139 連接埠。它負責管理兩台電腦之間資料交換會話的建立、維護和關閉。
- 數據報服務它提供了一種無連接機制,使用通常透過廣播發送的資料封包類型訊息。它透過 UDP 協定在 138 連接埠上運行,並負責舊版 Windows 網路上的大部分經典廣播流量。
- 命名服務此服務負責註冊 NetBIOS 名稱並將其解析為 IP 位址。當透過 TCP/IP 協定運作時,它使用 UDP 連接埠 137。此服務可以依賴本機文件,例如: LMHOSTS 或在伺服器上 WINS(Windows Internet 名稱服務)它充當動態名稱資料庫。

繼續使用NetBIOS的優缺點
儘管 NetBIOS 已經過時,但它仍然有一些優勢,這也解釋了為什麼它在許多 Windows 電腦上仍然活躍,尤其是在新舊系統共存的環境中。
NetBIOS 的優點很多,其中有幾個實際方面,多年來一直讓管理員和使用者的工作變得更輕鬆:
- 無需複雜配置即可自動解析名稱在小型網路中,NetBIOS 允許電腦透過名稱相互發現,而無需 DNS 伺服器或複雜的配置。對於一般使用者來說,這非常方便:只要打開電腦,就能看到另一台電腦上的共用資料夾。
- 與經典 Windows 的深度集成NetBIOS 在所有舊版 Windows 工作階段中均已啟用,並且是許多網路應用程式的基礎,尤其是在 Windows NT、2000 和 XP 時代。這就是為什麼一些較舊的軟體仍然需要它的原因。
- 面向開發人員的抽象透過提供標準接口,程式設計師不必重新發明路由錯誤或底層尋址問題的恢復程序。
然而,現在缺點遠大於優點,尤其是在安全性和可擴展性方面:
- 它沒有為其傳輸定義標準資料格式。與追求多種不同網路協定棧和系統之間互通性的現代架構相比,這使得它缺乏靈活性。
- 在大型網路上擴展性較差隨著設備數量的增長,廣播和無連接資料報的大量使用往往會使網路過載,產生不必要的流量,並使管理變得困難。
- 這是一個被認為不安全且過時的協議。它存在歷史遺留漏洞,缺乏現代加固控制措施,並且通常會增加一個額外的攻擊面,許多管理員更傾向於透過停用它來消除這個攻擊面。
停用 NetBIOS 對效能和安全性的影響
在現代 Windows 電腦上停用 NetBIOS 通常對安全性的影響大於對效能的影響,而且幾乎總是利大於弊。但了解此過程中可能出現的問題至關重要。
從效能角度來看,這種變化通常並不顯著。 NetBIOS 用於解析本機網路上的名稱,並允許某些裝置交換資訊。目前版本的 Windows 主要依賴 DNS 和純 TCP/IP,因此 NetBIOS 的作用很大程度上是輔助性的。
停用此功能可減少易受攻擊的攻擊面,例如拒絕服務 (DoS) 攻擊或枚舉資源和裝置等攻擊。攻擊者可以利用開放的 NetBIOS 服務來淹沒網路、取得內部 IP 位址和名稱,甚至嘗試存取配置錯誤的共用資料夾。
最大的風險在於與舊版應用程式的相容性:管理程式、舊版資料庫或非常老舊的工具可能依賴基於 NetBIOS 的 SMB 1.0 傳輸。如果突然停用 NetBIOS,其中一些應用程式可能會運行緩慢、間歇性崩潰,甚至完全停止工作。
印表機、映射磁碟機或仍使用 NetBIOS 進行名稱廣播或解析的共用資源等網路共用功能也可能受到影響。如果這些資源未正確註冊到 DNS 或未使用更現代的協議,則可能無法存取。
建議先進行一次小規模的初步清點或分析:檢查哪些應用程式和裝置仍然使用 NetBIOS(例如,使用 Wireshark 等工具擷取流量),並逐一評估其運作是否可以遷移到更現代的 SMB、DNS 或 mDNS,然後再按下「紅色按鈕」並在整個網路中將其關閉。
NetBIOS 在公共網路和控制不善的環境中所存在的風險
在公共網路(咖啡館 WiFi、機場、飯店等)上啟用 NetBIOS 是個壞主意,因為它會暴露您電腦的數據,並可能在您不知情的情況下助長攻擊。
主要風險之一是未經授權存取共享資源:如果您的筆記型電腦透過與 NetBIOS 相關的協定共享任何資料夾或印表機,則同一網路上的網路犯罪分子可能會嘗試找到這些資源並存取它們,如果權限設定不夠嚴格的話。
另一個危險是網路間諜或偵察。 NetBIOS 可以洩漏電腦名稱、可能的工作群組、有時甚至是作業系統及其 IP 位址。這些資訊看似無害,卻能幫助攻擊者繪製網路拓樸圖並選擇攻擊目標。
NetBIOS 也曾被利用來傳播惡意軟體:蠕蟲、勒索軟體和其他類型的惡意程式碼利用其漏洞和枚舉電腦的便利性,在隔離不完善的內部網路中從一個裝置跳到另一個裝置。
因此,在您無法控制的網路上,最好盡可能減少舊式服務的使用。如果您經常連接公共 Wi-Fi,停用 NetBIOS、關閉不必要的共享資源以及始終啟用防火牆幾乎是必須的。
NetBIOS 名稱和 DNS 名稱解析
最容易讓人困惑的地方之一是NetBIOS名稱和DNS名稱之間的區別。雖然它們有時會重合,但它們並不相同,解析方式也不同。
NetBIOS 主機名稱通常是一個單獨的標籤,一個簡單的字串,用於識別 NetBIOS 範圍內的主機。例如,“SERVER01”或“LAPTOP-MARIA”。此名稱透過 NetBIOS 名稱服務註冊,並透過廣播或 WINS 協定進行通告。
另一方面,DNS 處理的域名由多個部分組成:主機名稱和域名,它們共同構成 FQDN(完全限定域名)。例如,「server01.company.local」或「fileserver.corp.example.com」。這種層級結構的設計初衷是為了服務大型網路和網際網路。
在許多產品(例如 SunLink Server 和類似環境)中,這兩個世界結合在一起:軟體取得裝置的 NetBIOS 名稱並將其與 DNS 網域連接起來以產生 FQDN,從而確保為 NetBIOS 設計的應用程式與基於純 TCP/IP 的應用程式之間的互通性。
為了解析 TCP/IP 網路上的名稱,電腦除了向外部伺服器發出簡單的 DNS 查詢外,還可以使用多種方法:
- WINS(Windows Internet 名稱服務)它維護一個動態資料庫,將 NetBIOS 名稱與 IP 位址關聯起來。在子網眾多、純粹廣播不切實際的環境中,它非常有用。
- NetBIOS 廣播解析度(b 節點)此方法定義於 RFC 1001/1002,它使每個裝置透過 IP 網路廣播其名稱,並回應對其的查詢請求。雖然簡單,但在大規模應用中會產生大量噪音。
- 標準 DNS 解析此功能用於尋找 DNS 名稱和 IP 位址之間的關聯,尤其是在存取本機子網路以外的服務時。某些舊版解決方案(例如某些檔案伺服器)可能不會直接使用此功能。
- LMHOSTS 和 HOSTS 文件允許手動定義靜態對應關係。
LMHOSTS它與 NetBIOS over TCP/IP 配合使用,用於 Microsoft 電腦名稱;HOSTS它用於 Windows Sockets 類型應用程式中的通用 DNS 名稱。
在混合網路中,一個非常常見的現像是,同一裝置透過 IP 位址和 NetBIOS 名稱都能正確回應,但透過 DNS 名稱卻無法回應。在這些情況下,通常是由於 SMB 版本差異和協定協商問題(例如,用戶端停用了 SMB1,而伺服器非常老舊)造成的,這會導致在列出資源時出現類似「SMB1 已停用 — 沒有可用的工作群組」的錯誤。 smbclient.
mDNS:適用於沒有 DNS 伺服器的本機網路的輕量級替代方案

當我們談到沒有自己的 DNS 伺服器的小型網路時,mDNS(組播 DNS)就派上了用場。這項技術旨在讓設備無需集中式伺服器即可相互發現,它使用組播而不是傳統的名稱伺服器。
mDNS 是零配置網路 (Zeroconf) 概念的一部分,該概念最初由蘋果在 2000 年代初期倡導。蘋果在其 Bonjour 技術中實現了該概念,以便 Mac、印表機和其他設備可以在本地網路上自動找到彼此。
隨著時間的推移,mDNS 在 IETF RFC 6762 中標準化,並被整合到Linux和後來的 Windows 系統中。如今,像 Chromecast 和智慧音箱這樣的裝置都依賴 mDNS 來發布服務並被用戶發現,而無需任何用戶配置。
mDNS的基本操作雖然簡單,但卻非常有效。當設備想要解析類似這樣的名稱時: equipo.local它會向多播位址 224.0.0.251 (IPv4) 或 ff02::fb (IPv6) 的 5353 連接埠發送 UDP 查詢。所有監聽該位址的電腦都會收到該查詢。
如果這些裝置中有任何一台擁有所要求的名稱,它會傳送另一個多重播送訊息來回應,指示該名稱與其 IP 位址之間的對應關係。網路上的所有參與者都會收到此回應,並更新其 mDNS 快取。只要資訊仍然有效,就無需重複查詢該名稱。
為了避免網路擁塞,mDNS 包含一些節省流量的機制。例如,擁有快取回應的用戶端可以「通告」它認為正確的訊息,只有當實際的網域擁有者偵測到資訊過時時,才會發送自己的回應。這限制了更新快取所需的訊息數量。
需要注意的是,mDNS 實際上僅限於特殊的「.local」網域。帶有此副檔名的主機名稱透過本機網路上的多重播放進行解析,但其他頂級網域名稱(例如「.com」或「.es」)則不由 mDNS 處理;它們由傳統的 DNS 解析方式處理。因此,mDNS 不適用於解析公共網址。
在 Windows 生態系中,本地解析協定的演進過程如下:
- 在版本中 Windows XP中 當時主要使用 NetBIOS 名稱服務透過廣播來發布名稱,這造成了大量的網路雜訊。
- 從 Windows Vista 被介紹 LLMNR(鏈路本地組播名稱解析)它將廣播改為組播,但這項技術仍然主要是為 Windows 環境設計的。
- 從 Windows 10,微軟押注mDNS繼承自類 Unix 世界,旨在提供與第三方設備的更高相容性,並遵循開放標準。
因此,如果您想要的是一個現代化的家庭網絡,其中設備可以通過名稱相互發現而無需設置 DNS 伺服器,那麼將路由器的 DNS用於互聯網訪問,將 mDNS 用於本地服務,比繼續依賴 NetBIOS 要更簡潔、更標準。
Windows 和 Active Directory 中的 NetBIOS 和 DNS 命名約定
在專業環境中,為電腦、網域和組織單位選擇合適的名稱比看起來重要得多。 Windows 和 Active Directory 對 NetBIOS 和 DNS 的有效字元、最大長度和保留名稱都執行相當嚴格的規則。
以下規則通常適用於 NetBIOS 團隊名稱:
- 允許的字符允許使用所有字母數字字元(ASCII)和句點,但名稱不能以句點開頭。由於 NetBIOS 名稱實際上通常與 DNS 主機名稱一致,因此它也繼承了後者的一些限制。
- 禁忌字符不允許使用的符號包括反斜線 (\)、斜線 (/)、冒號 (:)、星號 (*)、問號 (?)、雙引號 («)、小於號 (<)、大於號 (>)、垂直線 (|) 或逗號 (,)。
- Longitud最少 1 個字符,最多 15 個有效字符。 Windows 內部保留第 16 個字元用於標識服務。
- 大寫和小寫雖然 NetBIOS 會區分大小寫,但 Windows 使用大寫名稱,實際上,系統並不會區分大小寫。
- 句點用作字段分隔符句點可以將名稱拆分為 NetBIOS 作用域識別碼和電腦名稱,但作用域的使用是一種過時的做法,不建議在現代 Active Directory 林中使用。
DNS主機名稱和DNS網域有其自身的一套規則,旨在確保與RFC和非微軟伺服器的兼容性:
- 有效字符:字母 AZ、數字 0-9、連字號 (-) 和句點 (.) 用於分隔網域名稱中的標籤。
- 不允許使用字符逗號、波浪號、冒號、感嘆號、@符號、井號、美元符號、百分號、抑揚符、&符號、撇號、括號、花括號、底線和空格等字元均被排除在外。
- 格式規則第一個字元必須是字母數字字元;最後一個字元不能是連字符或句點。此外,由於 DNS 限制,僅包含數字的名稱對於 Active Directory 網域成員電腦無效。
- 最大長度每個名稱標籤(句點之間)最多可以有 63 個字元;完整的 FQDN 在 DNS 中最多可以達到 255 個字符,並且由於 SYSVOL 路由問題,存在一些實際限制,例如網域控制器的 FQDN 不超過大約 155 位元組。
Windows 也維護一個保留字表,其中列出了不應用作帳戶、網域或網站名稱的保留字(例如,SYSTEM、SERVER、ANONYMOUS、USERS、INTERNET、DOMAIN、COMPANY 等)。忽略這些建議可能會導致信任關係、複製或腳本出現異常問題,因為這些腳本會假定這些名稱指的是特殊實體。
另一個需要注意的概念是獨立命名空間,當電腦的主 DNS 後綴與其所屬的 DNS 域不符時,就會發生這種情況。這種情況可能發生在將舊的 NT 4.0 網域控制站升級到現代 Windows 林時,或在未變更電腦主後綴的情況下重新命名網域時。
在獨立的命名空間中,網域控制站將其 SRV 記錄註冊到其網域的區域中,但將其 A 主機註冊到不同的區域(與其主 DNS 後綴關聯的區域)。這可能會使 DNS 服務在尋找控制器時感到困惑,並導致異常的名稱解析行為。
在 Active Directory 基礎架構中,針對 DNS 名稱的一般最佳實務通常建議:
- 使用易於記憶且能體現團隊目的或組織結構的名稱。
- 將 AD 網域名稱與電腦的主 DNS 後綴對齊。
- 對於可能與公共名稱衝突的內部網,應避免使用通用頂級域名(.com、.net、.org)。
- 不要將 .local 頂級網域用於新建立的林,因為它與 mDNS 密切相關。
- 為了簡化管理,將域的層級深度減少到從根域算起不超過五層。
關於組織單元 (OU) 和 Active Directory 網站名稱,限制較為寬鬆,但建議仍然相同:選擇描述性名稱,且名稱應合理簡短,不會導致將來混淆(例如,避免根 OU 與未來的子網域同名)。
現代企業環境中的 NetBIOS
儘管 NetBIOS 已不再是主流,但它在許多公司仍然活躍,尤其是在那些繼續依賴傳統應用程式或舊系統(如 Windows XP 或 Windows Server 2003)的公司中。
許多企業仍在運行上世紀90年代或本世紀初開發的關鍵業務應用程序,涵蓋從管理軟體到基於NetBIOS的SMB 1.0資料庫系統等。遷移這些系統需要耗費時間、預算和進行測試,因此只要一切運作正常,許多公司就傾向於「維持現狀」。
問題在於,在當前環境下,安全是絕對優先的。 NetBIOS 和 SMB 1.0 是許多惡意軟體和入侵工具最青睞的攻擊目標,因為它們允許這些工具列舉裝置、發現保護不力的共享資源,甚至注入或傳播惡意程式碼。
在Active Directory和DNS已經配置完整的網路中,NetBIOS通常是多餘的。網域控制器和用戶端可以透過DNS解析名稱,使用Kerberos進行身份驗證,並在最新版本中使用SMB,而無需依賴舊版服務。
公司合理的做法是,系統管理員進行初步分析:審查哪些設備和應用程式仍然使用 NetBIOS(例如,透過流量擷取或檢查連接埠 137-139),記錄這些依賴關係,並計劃用受支援的解決方案替換它們。
許多組織的經驗表明,在企業網路中保持 NetBIOS 運作通常會帶來更多麻煩而不是好處,尤其是在有嚴格的合規性、稽核或網路分段要求的情況下。
如何在 Windows 10 和 11 中逐步停用 NetBIOS
在執行 Windows 10 或 11 的現代電腦上,停用 NetBIOS 非常簡單,可以透過多種方式實現:透過 TCP/IP 設定、登錄編輯器或使用WMI命令列。
從 TCP/IP 屬性停用 NetBIOS
對於許多用戶來說,最直接的方法是使用網路圖形介面,透過存取正在使用的適配器(Wi-Fi 或乙太網路)的進階設定。
- 打開菜單 首頁 然後進入 組態 > 網絡與互聯網.
- 點擊 更改適配器選項 查看可用的網路介面。
- 右鍵點選您正在使用的轉接器(Wi-Fi 或 LAN),然後選擇 性能.
- 選擇 Internet協議版本4(TCP / IPv4) 然後點擊 性能.
- 在出現的視窗中,轉到 進階選項 然後打開標籤 WINS.
- 檢查選項 停用 TCP/IP 上的 NetBIOS接受所有對話方塊並關閉。
從那時起,該適配器將停止使用 NetBIOS。如果將來需要重新啟用它,只需重複相同的步驟,然後選擇啟用選項或讓 DHCP 控製配置。
在登錄編輯器中停用 NetBIOS
如果您希望進行更精細的控制,或者想使用腳本或 GPO 應用程式更改,您可以透過修改 Windows 註冊表中與適配器對應的配置值來實現。
- 打開菜單 首頁,寫道 註冊表編輯器 然後運行它(或按) WIN + R,寫道
regedit並接受)。 - 導航至金鑰
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NetBT\Parameters\Interfaces. - 裡面你會看到幾把鑰匙 環丙烷每個適配器對應一個選項。選擇與要停用 NetBIOS 的介面對應的選項。
- 在右側面板中,找到值 Netbios選項 並雙擊它。
- 將其值更改為 2 停用 TCP/IP 上的 NetBIOS 並儲存變更。
套用此設定後,所選適配器的 NetBIOS 將被停用。 Windows 10 和Windows 11的操作步驟類似,並且可以整合到自動化腳本中,用於多台電腦。
從命令提示字元禁用 NetBIOS
在管理環境中,另一種非常有用的方法是使用命令列中的 WMI,尤其是當您想要自動化操作或逐步記錄變更時。
- 打開一個窗口 命令提示 (CMD),可以從「開始」功能表或透過 WIN + R 和寫作
cmd. - 運行命令:
wmic nicconfig get caption,index,TcpipNetbiosOptions - 寫下 索引 您要停用 NetBIOS 的適配器(該列)
index). - 執行命令:
wmic nicconfig where index=X call SetTcpipNetbios 2
替代 X 按下適配器的索引號(例如,4)。
此命令會停用所選適配器上的 TCP/IP 介面的 NetBIOS。它是一種使用腳本或遠端管理工具將此變更快速套用到多台電腦的方法。
從 DHCP 伺服器停用 NetBIOS
如果您管理擁有自己的 DHCP 伺服器的網絡,您也可以從伺服器端強制執行 NetBIOS 行為,以便指示所有從該範圍取得 IP 的用戶端停用 NetBIOS。
- 在伺服器上,轉到 首頁 > 程式 > 管理工具 > DHCP.
- 在導覽面板中,展開您的 服務器, 然後他 範圍 對應的輸入 範圍選項.
- 點擊 設定選項 並轉到選項卡 進階選項.
- 在清單上 供應商類別選擇 Microsoft Windows 2000 選項 (或與您的客戶對應的那個)。
- 確保使用者類別為預設值(使用者類別).
- 勾選複選框 001 Microsoft NetBIOS 停用選項 在可用選項中。
- 在該地區 數據輸入,介紹 0x2 並確認 接受.
從那一刻起,從該 DHCP 作用域接收配置的用戶端將理解為必須停用 TCP/IP 上的 NetBIOS,從而統一整個網路的行為,而無需逐一觸碰每個裝置。
為什麼今天值得停用 NetBIOS
除了技術細節之外,考慮停用 NetBIOS 的主要原因是安全性問題。 NetBIOS 是一種過時且維護不善的協議,儘管實際上沒有人需要它,但許多系統仍然預設啟用它。
許多現代攻擊都依賴過時的協議,原因可能是這些協議沒有打補丁、缺乏最新的安全措施,或者只是因為人們出於習慣而一直啟用它們。此外,許多 Windows 系統在首次啟動時預設啟用 NetBIOS ,這又為攻擊者創造了另一個可利用的漏洞。
這並不意味著NetBIOS本身俱有“惡意”,而是意味著它已經過時了。正如使用存在已知漏洞的舊版本WinRAR或不受支援的Office套件毫無意義一樣,繼續依賴一個平臺本身已經用更安全的替代方案取代的協議也毫無意義。
在 DNS、mDNS、現代 SMB 和 Active Directory 足以滿足所有名稱解析和共用需求的環境下,保持 NetBIOS 運作往往弊大於利。如果您發現不再存在任何明顯的依賴關係(或您可以取代剩餘的依賴項),那麼停用 NetBIOS 是增強整體網路安全的簡單步驟。
關鍵在於關閉那些不再發揮作用的舊門:審查哪些服務正在實際使用,關閉那些已經過時的服務,並依靠 DNS 和 mDNS 等現代標準,以便設備能夠繼續相互發現,但無論是在家還是在辦公室,都能以更強大、更安全的方式進行。
對字節世界和一般技術充滿熱情的作家。我喜歡透過寫作分享我的知識,這就是我在這個部落格中要做的,向您展示有關小工具、軟體、硬體、技術趨勢等的所有最有趣的事情。我的目標是幫助您以簡單有趣的方式暢遊數位世界。