深入了解“网上邻居”原理

深入了解“网上邻居”原理

第一部分摘自:

[1]http://security.ctocio.com.cn/tips/310/6646310.shtml

安全基础 深入了解“网上邻居”原理

            有关网上邻居的问题,问的人一直比较多,在理解上存在的误区也普遍较为严重。鉴于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,反正到最后是那个自身条件最好的成为新的浏览主控服务器。

  6.整个网络浏览的过程是怎样的

  当一台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端口同样能够完成。

  三、关于空会话

  The NULL session,关于空会话
  NULL会话(空会话)使用端口也同样遵循上面的规则。NULL会话是同服务器建立的无信任支持的会话。一个会话包含用户的认证信息,而NULL会话是没有用户的认证信息,也就好比是一个匿名的一样。
  没有认证就不可能为系统建立安全通道,而建立安全通道也是双重的,第一,就是建立身份标志,第二就是建立一个临时会话密匙,双方才能用这个会话进行加密数据交换(比如RPC和COM的认证等级是PKT_PRIVACY)。不管是经过NTLM还是经过Kerberos认证的票据,终究是为会话创建一个包含用户信息的令牌。(这段来自Joe Finamore)
  根据WIN2000的访问控制模型,对于空会话同样需要提供一个令牌。但是空会话由于是没有经过认证的会话,所以令牌中不包含用户信息,因此,建立会话双方没有密匙的交换,这也不能让系统间发送加密信息。这并不表示空会话的令牌中不包含SID,对于一个空会话,LSA提供的令牌的SID是S-1-5-7,这就是空会话建立的SID,用户名是ANONYMOUS LOGON。这个用户名是可以在用户列表中看到的。但是是不能在SAM数据库中找到,属于系统内置的帐号。
  (关于这部分对NULL SESSION的分析,可以参照:《NULL Sessions InNT/2000》http://rr.sans.org/win/null.php)
  NULL会话几乎成为了微软自己安置的后门,但是微软为什么要来设置这样一个“后门”呢?我也一直在想这个问题,如果NULL会话没有什么重要的用途,那么微软也应该不会来设置这样一个东西。好不容易才在微软上找到这个: 当在多域环境中,要在多域中建立信任关系,首先需要找到域中的PDC来通过安全通道的密码验证,使用空会话能够非常容易地找到PDC,还有就是关于一些系统服务的问题。而且LMHOSTS的#Include就需要空会话的支持,可以参考文章: http://support.microsoft.com/default.aspx?scid=kb;EN-US;q121281; http://support.microsoft.com/default.aspx?scid=kb;EN-US;q124184
  其实建立一个空会话的条件也非常严格。首先要能够满足上面的,也就是打开TCP 139和TCP 445端口。我们可以从一次关闭这两个端口的情况中看得出来。服务器关闭445和139端口,然后我们来进行空会话的连接。首先,客户端打算连接的是445端口,然后再试图连接139端口。当然最后还是失败了。
  仅仅开放这两个端口还不行,服务器还必须得打开IPC$共享。如果没有IPC共享,即使共享一个文件,有权限为Anonymous Logon,也不能建立会话,即使权限设置为完全控制,出现的连接错误依然是权限不够。这和其他帐号是不一样的。如果要允许一个文件夹共享能够类似IPC$(命名管道而非共享)能够使用空会话,那么需要修改注册表: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters\中的:NullSessionShares,添加新的共享名,这样才能建立一个共享的空会话。这时,将不依赖IPC的存在了。

(即使这样的空会话对于后面的突破也是一点没可取之处的,因为没有了IPC$命名管道,RPC不可取了,这下知道IPC这个命名管道的具体实现了。呵呵)
  虽然空会话建立的要求很严格,但是那都是默认建立的。既然是默认的,对于使用WIN2K系统的服务器来说,就还是有利用的价值。最明显的就是空会话可以很方便地连接到其他的域,枚举用户、机器等。这也就是扫描软件进行探测的原理。

  四、共享技巧

  1.有些人给共享名加个$,以达到隐藏的效果,可这用DOS下的net share是可被看到的;
  这种隐藏只是微软Windows标准客户端net view的限制,不是服务端的限制,网络传输过程中是一视同仁的,所以直接修改客户端解除这种限制或者使用第三方客户端软件均可看到所谓的隐藏共享,比如smbclient就是典型代表。
  2.有些人给共享加上密码,可听说这也是有办法破解的
  这个破解要看是什么层面上的,纯暴力破解的就不必说了,那当然总是可以的。而9598另有漏洞,就是他那个著名的vredir.vxd,服务端验证密码时所用长度居然是客户端提供的,这就意味着至多猜测256次(事实上没这么多,考虑可打印字符范围)即可进入。当初N多人用这种办法非法浏览别人的机器。2000年报告微软,现在已修补。 http://security.nsfocus.net/inde ... o=view&adv_id=6
  顺便说一句,利用该漏洞可以快速穷举出原始口令,虽然在攻击中这是不必要的。
  3. 因而我只能根据自己的理解结合netxray的实践来测试,细节部分难免有错,推荐www.ethereal.com提供的Ethereal,这是我所见过的对SMB解码最强的免费软件,有Unix/Windows版,提供源码。
  4. 在2000中,SMB可以直接运行在tcp/ip上,而没有额外的NBT层,使用TCP 445端口。因此在2000上应该比NT稍微变化多一些。
  事实上正相反,在ssaxh_capabilities字段中指明不使用"扩展安全验证",此时使用原有身份验证机制,只需去掉NBT层的Session Request,将139/TCP改成445/TCP,一样可以成功建立空会话,并且成功打开\\IPC$。
  至于更高层的RPC Over SMB,更是不必作任何变动。换句话说,从139/TCP换到445/TCP,整个通信过程中减少了一对NBT Session Request/Response,后面的报文对于两者来说是完全一致的。
  而所谓的NBT层,即使在445通信中也未去掉,一直存在着,区别只是上面这段话。
  5. 如果客户端启用了NBT,那么连接的时候将同时访问139和445端口,微软并没有让139/TCP与445/TCP公平竞争。发起连接的SYN包在宏观上是同时发出的,具体起来,有时是先向139/TCP发起连接请求,有时是先向445/TCP发起连接请求,有点随机性。
  在向139/TCP发送三次握手的最后一个ACK报文时,Windows顺手携带了数据,这里以一个刻意弄错的NetBIOS名(*SMBSERV<00...(8)>做了一次NBT Session Request。而445/TCP不需要NBT层的会话。
  由于刻意弄错的NetBIOS名,139/TCP很难竞争过445/TCP。服务端返回Negative NBTSession Response,并且执行了close()操作。这使得必须重新建立到139/TCP的连接(传输层的TCP连接)。
  可以看出,那个刻意弄错的NetBIOS名仅仅是为了给445/TCP制造抢先的机会。遗憾的是,445/TCP不争气,这个端口上的任务繁重、负载较高,即使在这种不公平竞争的情况下,139/TCP仍有可能重新抢在445/TCP之前建立NBT会话(注意,不是TCP连接)。于是445口会回送RST,后续SMB会话建立在139/TCP连接之上。
  微软自己的操作系统不认"*SMBSERV<00...(8)>",但是Samba Server 2.2.5认,居然返回Positive Session Response。这成为精确识别Samba Server的方法之一。
  微软在<>中不会提这些的,只是说139/TCP、445/TCP公平竞争,优先使用最早返回的响应报文。不要相信它的鬼话。
  话说回来,如非需求所致,完全不必关心这种差别。有需求的时候,这种差别是致命的。
  6. 最明显的就是空会话可以很方便地连接到其他的域,枚举用户、机器等。这也就是扫描软件进行探测的原理。
  XP、2003缺省禁止在空会话上进行PolicyAccountDomainInformation查询,可以看到LsarOpenPolicy2(44)失败,权限否定。如果事先指定有效帐号、口令建立SMB会话,而非空会话,LsarOpenPolicy2(44)将成功返回。

======================================================================================================

第二部分摘自:

[2]http://vod.sjtu.edu.cn/help/Article_Show.asp?ArticleID=875

[3]http://vod.sjtu.edu.cn/help/Article_Show.asp?ArticleID=886

深入了解"网上邻居"原理(1)

作者:尤扬 张楚楠 阿里巴巴 转贴自:电脑爱好者

    说到“网上邻居”,相信很多人都很熟悉。操作系统安装完毕后,桌面上仅有的几个图标中就包含了“网上邻居”。但是,要说起“网上邻居”的工作机制,可能大家就不太清楚了。
  要说“网上邻居”的工作机制,需要联系一下生活中的例子:比如我——UU,要拜访一个远方的朋友——PP,我要去他的家里,那么应该怎么样做?答案是先找到PP的家,然后再确定看看PP让不让我进他的家里。不要认为这是笑话,“网上邻居”的工作机制就是这样的。



  “网上邻居”也是浏览器?

  在一个局域网中,只要双击桌面的“网上邻居”,就能看到所在网络中的所有用户,这一切似乎都顺理成章。可你有否想过:Windows怎么知道这些电脑叫什么名字、在什么地方?它是如何获得它们的位置的?
  在阐述这个问题之前,先来举一个例子:新生入学时,所有学生来到教室,坐在自己的位置上,这时每个同学之间互不相识,怎样才能互相熟悉呢?大家一定会想到自我介绍,没错,如果所有人都在座位上,依次自我介绍就可以了。
  但如果现在有人缺席,或今后有人转学,过几天又有新生入学怎么办?所以,需要班长来做一件工作——建立花名册,登记所有同学的名字,并及时修改,用于其他同学查询。
  这样还不够,如果所有人都找班长问问题,班长一定会忙不过来,所以其他班干部也要复印一份花名册,分担班长的工作压力。
  Windows中“网上邻居”的工作机制和这个例子十分相似,我们一起来看看下面这部大片吧。

  【片 名】 “网上邻居”在行动
  【出品公司】 Microsoft
  【出品年代】 Windows 95流行时期
  【适合观众】 电脑爱好者
  【导  演】 比尔•盖茨
  【主  演】 主浏览器—班长

  备份浏览器—班干部
  浏览列表—花名册
  客户机—班级成员

  从Windows 2000开始,通过“网上邻居”进行的访问实际上是通过browser service(浏览服务)来进行的,下面就浏览服务的几个关键地方向大家讲解一下。

  1.花名册——浏览列表(browser list)

  浏览列表就像是班级的花名册,是浏览服务的关键部分。通过这个列表,基于Windows的电脑才能发现处于网络上面的电脑和服务资源,浏览列表像一个地址簿,它告诉你的电脑在哪里有资源。你的电脑通过这个列表中的信息将电脑名称解析成IP地址,提供给用户来进行访问。

  2.班长与副班长——不同类型的浏览器

  Windows的浏览服务体系由一个主浏览器(master browser)、多个备份浏览器(backup browsers)和浏览客户端(browser clients)组成,这有点像上面例子中的班长、副班长和班级成员。主浏览器负责维护当前网络中的浏览列表,并将这个浏览列表发送到备份浏览器,而浏览服务的客户机通过查询备份浏览器来获得当前环境中的浏览列表。

  3.班级成员——客户机

  使用“网上邻居”进行浏览的客户机,就好像班级的普通成员,他们需要通过班长或是副班长来获得花名册,从而得知其他同学的位置和名字。

“民主”的查询过程

  下面我们来描述一下完整的浏览查询过程。

  1.一个客户机的查询过程

  当一台电脑需要浏览网络时,它需要知道网络中的资源列表(也就是浏览列表),那么它需要发送数据报u到备份浏览器(Backup Browser)那里去查询。这就好像新来的同学不知谁是副班长一样,首次浏览网络的电脑并不知道谁是备份浏览器。这时,它会执行一个“广播”操作。
  这个操作和真正广播有点类似,它的作用像是对全班大声宣布:“谁是班长?我是UU,我来了!”这个声音只有班长(主浏览器)会听到。主流浏览器取得这个通告后,将它放入自己维护的花名册(浏览列表)中,用来给其他人查询。
  小提示
  为什么有的电脑在“网上邻居”中看不到?
  大家都知道,要在“网上邻居”中看到自己和别人,必须在TCP/IP协议上选中“文件及打印机共享”这个选项。这是为什么呢?原因是这样的:如果没有选定这个选项,该计算机即使连入局域网,也不会发出通告,“班长”不知道,其他电脑自然也就不会在“网上邻居”里看到它了。
  客户机向当前网络中的主浏览器(Master Browser)发送一个叫“GetBackupList”的数据报,当主浏览器收到这个数据报之后,它就会提供当前网络中的可用备份浏览器的列表(也就是“副班长”的名单和位置),客户机从这个列表中选择三个备份浏览器的信息,并缓存起来。从此以后,浏览服务就从这三个信息中选择一个进行查询工作。
  u 数据报
  一种独立的数据实体,它包含从源电脑传送到目标电脑的完整信息,而源电脑和目标电脑及传输网络之间先前无需进行数据交换。 简而言之,数据报是TCP/IP在通过网络传送文件之前,将其预先打包划分的形式。
  小提示
  如果一个客户机三次无法联络到主浏览器(这就是网络中可能存在的丢包情况),那么它就会发起一个新的主浏览器的选举(关于选举,将在下文中阐述),并且向调用浏览服务的应用软件发一个叫“ERROR_BAD_NETPATH”的通知,“网上邻居”就会报告“无法找到网络路径”之类的错误信息。
  实例:把我的电脑在“网上邻居”上隐藏
  要完成这个目的,可以通过一个命令来实现:
  在“运行”窗口输入NET CONFIG SERVER /HIDDEN:YES。回车后,别人会发现你从“网上邻居”中消失了。
  注意这个/HIDDEN参数,YES代表隐藏,NO代表不隐藏。

  2.主浏览器也要“民主”产生

  主浏览器是工作组中的一台最为重要的电脑,它负责维护本工作组中的浏览列表及指定其他工作组的主控服务器列表,为本工作组的其他计算机和来访本工作组的计算机提供浏览服务。
  每个工作组都会为每个传输协议选择一个主浏览器,而我们经常遇到的无法浏览网络的错误大多是因为所处的工作组没有主浏览器造成的。
  有时,我们会碰到如图1所示的情况,点击“启动”按钮也无法启动Computer Browser服务。
  主浏览器是怎么产生的呢?缺省情况下,工作组中的主浏览器是该工作组中第一台启用文件及打印机共享功能的电脑,也允许手工将一台电脑配置为主浏览器。如果一个工作组中有多台电脑配置了这个选项,或是当前的主浏览器关闭了系统,又没有其他电脑启用主控设置时,就要进行主控浏览器的选举。
图1

实例1:选举主浏览器过程

  如果网络中没有了主浏览器,要怎样选举呢?首先,由一台电脑发送一个数据报,该数据报包含了来自发送电脑的信息(操作系统、版本及计算机名等),数据报向网络中广播,工作组中的每一台电脑都会用自身信息与它进行优先级比较,操作系统的版本起主要作用。最后,自身条件最好的电脑成为新的主浏览器。
  系统将按照以下优先级顺序从电脑中选择主浏览器和备份浏览器:

  Windows Server 2003
  Windows XP
  Windows 2000 Advanced Server
  Windows 2000 Server
  Windows 2000 Professional
  Microsoft Windows NT 4.0 Server Enterprise Edition
  Microsoft Windows NT 4.0 Server
  Microsoft Windows NT 4.0 Workstation
  Microsoft Windows 98
  Microsoft Windows 95
  Microsoft Windows for Workgroups 3.11

  另外,如果一台电脑的运行时间相对较长,在同等条件下它会赢得选举。如果最后所有因素都相同,那么选举会采用字符标准(包含数字和符号),就是说如果一台电脑名字为“A”,和名字为“X”的电脑比较,那么“A”就会赢得选举。
  实例2:指定某台电脑为主浏览器
  难道主浏览器就必须选举产生,不能指定吗?其实也不是,作为管理员,只要在希望成为主浏览器的机器(一般配置较高)上打开注册表编辑器,在[HKEY_LOCAL_MACHINE
\SYSTEM\CurrentControlSet\Services\Browser\Parameters]一项中,将注册表键“IsDomainMaster”的值改为“True”即可。这样,这台电脑就会成为一个主浏览器。
  这台电脑启动时,如果网络中已经有了主浏览器,那么它就会发起一个新的选举,而在选举中它常常会赢得选举(难道是贿选?)。当然,如果其他电脑也配置了这个选项,那么它们之间的竞争就要看选举的规则了。
  Just Do it

  让某台机器永远不成为浏览器

  如果为了降低某台机器的负载,希望它永远不成为浏览器,可以在[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Browser\Parameters]一项中修改“MaintainServerList”的值为“No”就可以了,代表这台电脑将不会成为浏览提供者,同时Computer Browser服务也将无法启动,强行启动就会出现图1中的故障。

3.一个客户机的通知过程

  通知,作为维护浏览列表的主要手段,其种类很多,这里只介绍一个客户机的通知。一个新来的客户机,要告诉主浏览器“我来了”,一台新联入网络的电脑会发送一个直接的数据报给主浏览器告知这台计算机的存在,而主浏览器,会将这个信息加入Browser List,并每隔一段周期进行验证。
  初次进行时,这个周期是1分钟、2分钟、4分钟和8分钟,最后到12分钟,而之后每12分钟客户机都会发一个通知,通知主浏览器“我还在呢”。如果经过三个周期(36分钟),主浏览器都没有听到“我还在呢”的通知,那么它就会把这个客户机的名字从Browser List中删除掉,“网上邻居”中就再也不会有这个用户了。
  实例:解读“机去楼不空”的常见现象
  问题:一台连入网络的电脑非正常关机,比如down掉了,为什么在“网上邻居”中还可以看到它,但不能访问呢(见图2)?

图2

    原因:因为主浏览器会在三个周期之后才会把它从Browser List中删除,这个周期是36分钟,而备份浏览器从主浏览器那里同步数据还要12分钟,一个客户机会缓存三个备份浏览器的信息,所以这个删除操作在整个网络中通知到常常要花费72分钟的时间,也就是说要72分钟整个网络中的电脑才会知道某某电脑没有了。
  解决方法1:静静地等待一段时间,如果只是简单网络,往往一台电脑既是主浏览器又是备份浏览器,所以等待一段时间,最长36分钟之后,这个问题就会解决。
   解决方法2:修改通知周期。如果修改通知周期,那么这个36分钟的累计时间就会减少,修改方法:在注册表中修改[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters]项,新建一个“Announce”的键值,类型为REG_DWORD,数值默认为720,对应12分钟。

  小提示
  修改通知周期,要在所有的联入网络的计算机上修改才会有效,增加通知周期会减少网络中数据报的数量,但是会花费更长的时间来维护浏览列表;如果减少通知周期,浏览列表会更快地完成更新,但网络中的数据报流量会大幅增加。所以,是否修改,要根据自己网络的实际情况具体决定。

  “网上邻居”强力技巧 + 故障解决

  1.强力技巧

  (1)让“网上邻居”实现多点下载和断点续传
  很多人喜欢直接通过访问“网上邻居”来共享文件,但使用“网上邻居”则有诸多不便:既不能多点下载,又无法断点续传。其实只要在本地机器架设FTP服务器,就可以让“网上邻居”实现多点下载和断点续传。具体做法如下。
  在本地电脑上利用SERV-U架设FTP服务器,然后设置站点和用户权限,在这里按照默认选项设置就行了。有关SERV-U架设的基本操作,很多文章已经介绍,这里不再赘述。
  在SERV-U中添加虚拟目录。在第一步“Physical path”的地方直接填入共享名,如\\192.168.0.1\xxx之类。后续步骤与添加本地目录方法相同。
  通过Flashget的站点资源探索器进入ftp://192.168.0.1(也就是下载文件所在计算机的IP地址)。进入相应目录后,在右边窗口文件列表中选择要下载的文件或目录,单击右键,选择“下载”。
  由于利用了Flashget的多点下载属性,在局域网条件下可以极大提高速度,网络状况良好情况下是原速度的若干倍,同时可以完美支持断点续传。
  (2)不将最新打开的共享文档添加到“网上邻居”中
  Windows会在“网上邻居”中自动记忆下最近打开过的共享文档,如果不喜欢这项设置,可以在[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer]下新建一个名为“NoRecentDocsNetHood”的DWORD,然后将它赋值为1即可。
  (3)让“邻居”更容易找到自己
  一般情况下,一块网卡只能配置一个IP地址,但实际上可以为它添加更多IP地址。这样,你的电脑将会更频繁地向网络发送广播信息,对于新安装的操作系统,此方法可以帮助别人尽快找到你。在本地网卡上依次点击“属性→TCP/IP属性→高级”,然后按下“添加”按钮即可输入新的IP地址和子网掩码。
  小提示
  虽然一块网卡可以配置多个IP地址,但在网络邻居中连接的IP地址只有一个—网卡所配置的第一个IP地址。

(4)删除“网上邻居”保存的密码

  访问网上邻居时提示输入密码,我为了方便,点了保存密码,但现在不想要这台电脑保存这个密码了,该如何清除呢?Windows XP的方法是依次进入“设置→控制面板→用户帐户”,然后点击你的账号,再点击左上角的“管理我的网络密码”。
  如果是Windows 9x用户,只要删除该用户的PWL文件即可。

  (5)加速“网上邻居”的启动速度
  进入Windows XP的“网上邻居”后,它会搜索自己的共享目录、共享打印机以及和网络相关的计划任务,然后才显示出来,这样速度会慢很多。这些功能对我们没多大用的话,可以将其删除。在注册表编辑器中找到[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Current Version\Explore\RemoteComputer\NameSpace],删除其下的{2227A280-3AEA-1069-A2DE08002B30309D}(打印机)和{D6277990-4C6A-11CF87- 00AA0060F5BF}(计划任务),重启即可。

  2.故障解决方案

   故障现象1: 一个小型网络,电脑之间物理连接没有任何问题,每台电脑都没有安装任何防火墙软件,但其中一台电脑出现“网上邻居”没有任何信息,输入“NET VIEW”命令结果是“清单是空的”,但是,网络中的其他电脑“网上邻居”中却有这台电脑的信息,并能正常访问。
   原因: 由于“Microsoft 网络客户端”协议没有绑定,或Workstation服务不正常造成的(见图3)。
图3

解决方法:将“Microsoft网络客户端”协议勾选,这一点对于Windows 98系统同样重要,只是设置的位置有所区别。

  你知道吗?

  细心的读者可能已经发现了,上面的例子是在没有防火墙的条件下进行的,为什么要强调这一点呢?因为Browser服务是通过网络广播方式进行,很多防火墙会对广播的几个端口进行封堵(因为微软的NetBIOS协议有漏洞,会随机泄漏内存中的数据)。同样,Windows XP中的ICF(Internet连接防火墙)也会有这种作用。
故障现象2:初次通过“网上邻居”连接一台基于Windows XP的电脑时,我们都会遇到这个现象(见图4)。
图4

这时,不管在对话框中输入任何密码,都没有作用,而此时也不能修改登录使用的账户。

  原因:默认情况下,处于工作组状态的Windows XP Professional版本和Windows XP home版本电脑都会使用GUEST账户作为网络访问的默认账户。而在默认情况下WindowsXP中的GUEST账户为禁用状态,所以会出现这个现象。
  解决方法:启用GUEST账户,然后参照本刊2004年第9期《Windows XP和平共享之终极报告》介绍的方法处理即可。
  小提示
  Windows XP中有一个很有意思的小“BUG”,就是在“用户账户”中的来宾GUEST账户的启用和停用状态和实际的情况可能不一致。
  但是,通过本地用户和组进行设置时,始终和实际情况保持相同状态。
  故障现象3:有些电脑连入网络后,发现“网上邻居”无法看到其他用户,而设置和物理连接都没有异常。
  原因:在“我的电脑”上选择“属性→计算机名”,检查“计算机描述”内容,看看是否过长。
  解决方法:在“运行”窗口输入“net config server /srvcomment:"text"”(不包括外侧引号),回车后即可把“计算机描述”改为“text”。重启电脑,检查“网上邻居”是否恢复正常。
  故障现象4:“网上邻居”中“邻近的计算机”图标丢失。
  原因:误删除造成。
  解决方法:在Windows 2000中,如果不小心删除了“网上邻居”中的这个图标,可以通过修改注册表的方法找回来,其实有一个更加简单的方法:就是在“我的电脑→属性→网络标识→属性”菜单中,将当前计算机加入另外一个工作组,这样,“邻近的计算机”图标就会重建,再把工作组改回来就可以了。

[注]我更改了原博客的格式已经更正了内容上“通假字”。在此谢过2位作者~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值