查看單個文章
舊 2006-05-20, 05:49 PM   #13 (permalink)
psac
榮譽會員
 
psac 的頭像
榮譽勳章
UID - 3662
在線等級: 級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時
註冊日期: 2002-12-07
住址: 木柵市立動物園
文章: 17381
現金: 5253 金幣
資產: 33853 金幣
預設

揭開Windows網路鄰居的內幕秘密

 有關網路芳鄰的問題,問的人一直比較多,在理解上存在的誤區也普遍較為嚴重。鑒於Microsoft的NETBIOS我的文件不是很細緻,我四處收集了一些相關資料加上自己的實踐經驗寫了這個系列,希望能對大家有所說明 。


  本來想為了增加可讀性,把這個系列寫成問答的形式,不過一時之間腦袋裡也編不出這麼多的問題,還是按部就班先感性的對微軟的瀏覽服務作一大致介紹,然後再深入分析NETBIOS的具體工作機理,大家要是有什麼問題,可以提出來我們一起討論。

  (一)微軟網路瀏覽程序簡介

  在「Windows NT系統管理技術內幕」一書中,講到了一個非常具有代表性的問題,我把它摘抄了下來:

  問:什麼情況下會導致在網路鄰居中電腦能看見卻無法訪問或可以訪問卻看不見?請選項最佳答案:

A.你的網路存在物理問題,比如網線
B.作為域主瀏覽器的Windows NTserver的瀏覽服務壞了
C.Windows NTserver網路卡有問題
D.你的網路沒有問題,用戶描述的是正常的微軟瀏覽現象

正確答案,書上的解釋。微軟的網路瀏覽可能在使用中出現"中斷",而實際上它們並沒有中斷, 這種誤解是由於用戶對微軟網路瀏覽的處理程序不熟悉造成的。

就像同學們經常在抱怨的「為什麼別人的網路芳鄰可以用,我的卻不行?」「為什麼有時候可以瀏覽,有時候卻無法瀏覽網路?」解鈴還須繫鈴人,讓我們一起去看看微軟的網路瀏覽到底是如何實現的。鑒於大家可能對NT的「域」概念還不甚瞭解,出現瀏覽故障的也多為98的電腦,我將以98的「工作組模式」為大家講解

  (二)網路瀏覽

  1.什麼是瀏覽列表(Browsing List)
 
  在微軟網路中,用戶可以在瀏覽列表裡看到整個網路(何指?子網還是廣播域?大家可以考慮考慮)上所有的電腦。當你通過網路芳鄰視窗開啟整個網路時,你將看到一個工作組列表,再開啟某個工作組,你將看到裡面的電腦列表(也可在 DOS方式下用net view /domain:workgroupname指令得到),這就是我們所說的 Browsing List。工作組從本質上說就是共享一個瀏覽列表的一組電腦,所有的工作組之間都是對等的,沒有規定不可以讓所有的電腦同處於一個工作組中。

  2.瀏覽列表在哪裡

  有人說:網路芳鄰裡的電腦列表是廣播查詢得來的。可有人舉反例說:我的同學都關機了,可我還是能在網路芳鄰裡看到它,應該是從HUB或交換機之類較為固定的設備的快取中取得的。其實他們都只說對了一個方面,把他們二人的說法結合起來就是正確答案了--- 瀏覽列表是通過廣播查詢瀏覽主控伺服器,由瀏覽主控伺服器提供的。

  3.瀏覽主控伺服器又是什麼

  瀏覽主控伺服器是工作組中的一台最為重要的電腦,它負責維護本工作組中的瀏覽列表及指定其他工作組的主控伺服器列表,為本工作組的其他電腦和其他來訪本工作組的電腦提供瀏覽服務,每個工作組都為會每個傳輸傳輸協定選項一個瀏覽主控伺服器,而我們經常遇到的無法瀏覽網路的錯誤大多是因為你所處的工作組沒有瀏覽主控伺服器而造成的。你可以在一個工作組中用NBTSTAT -a computername 指令找出使用NBT傳輸協定的瀏覽主控伺服器,它的標幟是含有\\_MSBROWSE_ 名字段。

  4.瀏覽主控伺服器是如何指定的

預設情況下,win98工作組中的瀏覽主控伺服器是該工作組中第一台啟用文件及列印機共享功能的電腦,也允許手動式將一台win電腦設定為瀏覽主控伺服器(方法會在後面講述網路組態時具體介紹,但由於瀏覽主控伺服器需要維護動態瀏覽列表,效能會受影響),如果一個工作組中有多台電腦設定了這個選項,或是現用的瀏覽主控伺服器關閉了系統,又沒有其他電腦啟用主控設定時,就要進行主控瀏覽器的選舉。

  5.如何通過瀏覽器選舉產生瀏覽主控伺服器

  關於瀏覽器的選舉報文,不太好抓包,我就只好按書上的東西來講述了.其實程序很簡單,首先由一台電腦傳送一個選舉臨界報文,該報文包含了來自傳送電腦的訊息(作業系統,版本及NET名等),選舉報文向網路中廣播,工作組中的每一台電腦都會用自身訊息與選舉報文進行優先等級比較,主要是作業系統起主要作用,記得好像是NT Server>NT Workstation>Win98>WFWG,反正到最後是那個自身條件最好的成為新的瀏覽主控伺服器.




  當一台win98進入網路時,如果它帶有伺服器服務(啟用了文件及列印機共享)會向網路廣播宣告自己的存在,而瀏覽主控伺服器會取得這個宣告並將它放入自己維護的瀏覽列表中;而沒有在相應傳輸協定上綁定文件及列印機共享的電腦則不會宣告,因而也就不會出現在網路鄰居裡了。當客戶電腦想獲得需要的網路資源列表時,首先會廣播發出瀏覽請求,瀏覽主控伺服器收到請求後,如果請求的是本組的瀏覽列表,則直接將客戶所需的資源列表發回;如果請求的是其它工作組的瀏覽列表,瀏覽主控伺服器會根據本身Browsing List中的記錄找到相應工作組的主控瀏覽器返回給用戶,用戶可從那裡得到它想要的瀏覽列表。至於如何去和另一台電腦共享交換資源,就不是我們這裡要討論的問題了。

  明白了網路瀏覽的原理,下面我給大家講一個有用的套用,現在很多同學出於安全的考慮都不太歡迎陌生人通過網路芳鄰訪問自己的電腦,可有時下部電影又需要給認識的同學共享出來,因而還不能移除文件及列印機共享服務。怎麼辦?有些人給共享名加個$,以達到隱藏的效果,可這用DOS下的net share是可被看到的;有些人給共享加上密碼,可聽說這也是有辦法破解的,而且很容易激起「黑客同志」的好奇心。有沒有辦法將自己的機器在網路鄰居裡隱藏起來呢?而對於認識的同學可以讓他用\\IP 來訪問。想對了,關鍵就是要阻止自己的機器向網路中去宣告自己,而且我知道我們其中的一些
人已經將此變成了現實,至於方法嘛,就不要來問我了。

  註:因為有關win98瀏覽服務的資料很少,涉及的書籍也多為以NT的「域」模型進行介紹,因而我只能根據自己的理解結合netxray的實踐來測試,細節部分難 免有錯,歡迎大家指正。

  7.在我的網路芳鄰裡為什麼有些電腦訪問不了

  如果微軟的網路芳鄰真能做到所見即所得,相信抱怨它的人不會像現在這麼多,可通過前面對瀏覽服務的介紹,大家已經知道這是不可能的,因為瀏覽列表的獲得不是通過訪問其中每一台電腦得到的,很多時候網路中的電腦並不能正確更新瀏覽列表。當一台電腦正常關機時,它會向網路發出廣播宣告,使瀏覽主控伺服器及時將它從瀏覽列表中移除;而非正常關機後,瀏覽列表裡仍會把該 列項保持很長一段時間(NT下是45分鍾),這就是我們仍能在網路鄰居裡看到它的原因.而98的穩定性是眾所周知的 ----在還沒來得及關機前就已經崩潰了^-^

  SMB(Server Message Block)傳輸協定在NT/2000中用來作文件共享,在NT中,SMB執行於NBT(NetBIOS over TCP/IP)上,使用137,139(UDP),139(TCP)連接阜。在2000中,SMB可以直接執行在tcp/ip上,而沒有額外的NBT層,使用TCP 445連接阜。因此在2000上應該比NT稍微變化多一些。

  可以在「網路連接/內容/TCPIP傳輸協定/內容/進階/WINS中設定啟用或者禁用NBT(NetBIOS over TCP/IP)。

  當2000使用網路共享的時候,就面臨著選項139或者445連接阜了。下面的情況確定會話使用的連接阜:

  1、如果客戶端啟用了NBT,那麼連接的時候將同時訪問139和445連接阜,如果從445連接阜得到回應,那麼客戶端將傳送RST到139連接阜,終止這個連接阜的連接,接著就從445連接阜進行SMB的會話了;如果沒有從445連接阜而是從139得到回應,那麼就從139連接阜進行會話;如果沒有得到任何回應,那麼SMB會話失敗。

  2、如果客戶端禁用了NBT,他就將只從445連接阜進行連接。當然如果伺服器(開共享端)沒有445連接阜進行SMB會話的話,那麼就會訪問失敗了,所以禁用445連接阜後,對訪問NT機器的共享會失敗。

  3、如果伺服器端啟用NBT,那麼就同時監聽UDP 137、138連接阜和TCP139,445。如果禁用NBT,那麼就只監聽445連接阜了。

  所以對於2000來說,共享問題就不僅僅是139連接阜,445連接阜同樣能夠完成。
__________________
http://bbsimg.qianlong.com/upload/01/08/29/68/1082968_1136014649812.gif
psac 目前離線  
送花文章: 3, 收花文章: 1631 篇, 收花: 3205 次