一. 局域网的邻居
作为最小网络分布结构的局域网,其基本作用是实现资源共享,那么怎么来实现局域网内资
源的共享的呢?
1. 局域网实现原理
局域网并不同于外界通讯使用的TCP/IP协议体系,它是一种建立在以太网(Ethernet)结构上
的网络分布,除了TCP/IP协议外,还涉及许多协议。
在局域网里,计算机之间通讯并不是通过IP进行的,而是通过网卡MAC地址.当一台计算机要查找另一台计算机时,它必须把目标计算机的IP通过ARP协议(地址解析协议)在物理网络中广播出去,计算机收到数据后就会判断这条信息是不是发给自己的,如果是,就会返回应答,并返回自身地址。当源计算机收到有效的回应时,它就得知了目标计算机的MAC地址并把结果保存在系统的地址缓冲池里,下次传输数据时就不需要再次发送广播了,这个地址缓冲池会定时刷新重建,以免造成数据冗余现象。实际上,共享协议规定局域网内的每台启用了文件及打印机共享服务的计算机在启动的时候必须主动向所处网段广播自己的IP和对应的MAC地址,然后由某台计算机(通常是局域网内某个工作组里第一台启动的计算机)承担接收并保存这些数据的角色,这台计算机就被称为“浏览主控服务器”,它是工作组里极为重要的计算机,负责维护本工作组中的浏览列表及指定其他工作组的主控服务器列表,为本工作组的其他计算机和其他来访本工作组的计算机提供浏览服务,它的标识是含有_MSBROWSE_名字段。这就是我们能在网络邻居看到其他计算机的来由,它实际上是一个浏览列表,用
户可以使用“nbtstat -r”来查看在浏览主控服务器上声明了自己的NetBIOS名称列表。
浏览列表记录了整个局域网内开启的计算机的资源描述,当我们要访问另一台计算机的共享资源时,系统实际上是通过发送广播查询浏览主控服务器,然后由浏览主控服务器提供的浏览列表来“发
现”目标计算机的共享资源的。
但是仅知道彼此的地址还不够,计算机之间必须建立一条连接的数据链路才能正常工作,这就需要另一个基本协议来进行了。NetBIOS(网络基本输入输出系统)协议是ibm开发的用于给局域网提供网络以及其他特殊功能的命令集,几乎每个局域网都必须在这种协议上面进行工作,NetBIOS相当于Intranet上的TCP/IP协议。而后推出的NetBEUI协议(NetBIOS用户扩展接口协议)则是对前者进行了功能扩充,这几个协议都是组成局域网的基本必备,最后为了建立连接,局域网还需要TCP/IP
协议。
2. Windows下的局域网共享
Windows系统对于局域网内机算机的身份和权限验证是在一个被称为“IPC”(命名管道)的组件技术上实现的,它实质上是Windows为了方便管理员从远方登录管理计算机而设置的,在局域网里
它也负责文件的共享和传输,所以它是Windows局域网不可缺的基础组件。
默认情况下,局域网之间的共享服务通过来宾帐户“Guest”的身份进行,这个帐户在Windows系统里权限最少,为方便阻止来访者越权访问提供了基础,同时它也是资源共享能正常进行的最小要求,任何一台要提供局域网共享服务的计算机都必须开放来宾帐户,命令是“net user guest
/active:yes”。
除了使用IPC作为身份验证,系统还使用SMB(Server Message Block)协议用来做文件共享,
这个协议与共享存在很大联系。 二. 局域网共享的实现
实现局域网共享,还需要进行一定的协议设置,才能实现资源共享。
首先,同一个局域网内的计算机IP地址应该是分布在相同网段里的,虽然以太网最终的地址形式为网卡MAC地址,但是提供给用户层次的始终是相对好记忆的IP地址形式,而且系统交互接口和网络工具都通过IP来寻找计算机,因此为计算机配置一个符合要求的IP是必须的,这是计算机查找
彼此的基础,除非你是在DHCP环境里,因为这个环境的IP地址是通过服务器自动分配的。
其次,要为局域网内的机器添加局域网协议,包括NetBIOS协议和NetBEUI协议,然后还要确认“Microsoft 网络的文件和打印机共享”已经安装并选中,确保系统安装了“Microsoft 网络客户端
\".
然后,用户必须为计算机指定至少一个共享资源,如某个目录、磁盘或打印机等,完成了这些工
作,计算机才能正常实现局域网资源共享的功能。
最后,计算机必须开启139、445这两个端口的其中一个,它们被用作NetBIOS会话连接,而且
是SMB协议依赖的端口,如果这两个端口被阻止,对方计算机访问共享的请求就无法回应。
三. 局域网共享故障的分析与排除
IPC、Server服务与共享故障
IPC(Internet Process Connection)是NT以上的系统为了让进程间通信而开放的命名管道,可以通过验证用户名和密码获得相应的权限,在远程管理计算机和查看计算机的共享资源时使用,微软把它用于局域网功能的实现,如果它被关闭,计算机就会出现“无法访问网络邻居”的故障。
在Windows NT以后的系统里,IPC是依赖于Server服务运行的,一些习惯了单机环境的用户可能会关闭这个服务,这样的后果就是系统将无法提供与局域网有关的操作,用户无法查看别人的计算
机,也无法为自己发布任何共享。
要确认IPC和Server服务是否正常,可以在命令提示符里输入命令net share,如果Server服务未开启,系统会提示“没有启动 Server 服务。是否可以启动 (Y/N) [Y]:”,回车即可以启动Server服务。如果Server服务已开启,系统会列出当前的所有共享资源列表,其中至少要有名为“IPC
除了Server服务以外,还有两个服务会对共享造成影响,分别是“Computer Browser”和“TCP/IP NetBIOS Helper Service”,前者用于保存和交换局域网内计算机的NetBIOS名称和共享资源列表,当一个程序需要访问另一台计算机的共享资源时,它会从这个列表里查询目标计算机,一旦该服务被禁止,IPC就认定当前没有可供访问的共享资源,用户自然就没法访问其他计算机的共享资源了;后者主要用于在TCP/IP上传输的NetBIOS协议(NetBT)和NetBIOS名称解析工作,NetBT协议为跨网段实现NetBIOS命令传输提供了载体,正因如此,早期的黑客入侵教材里“关于139端口的远程入侵”才能实现,因为NetBIOS协议被TCP封装起来通过Internet传输到对方机器里处理了,同样对方也是用相同途径实现数据传输的,否则黑客们根本无法跨网段使用网络资源映射指令“net
use”。对于本地局域网来说,NetBT是SMB协议依赖的传输媒体,也是相当重要的。
如果这两个服务异常终止,局域网内的共享可能就无法正常使用,这时候我们可以通过执行程序“services.msc”打开服务管理器,在里面查找“Computer Browser”和“TCP/IP NetBIOS Helper
Service”服务并点击“启动”即可。
系统安全策略与共享故障
熟悉Windows系统的用户或多或少都会接触到“组策略”(gpedit.msc),这里实际上是提供了一个比手工修改注册表更直观的操作方法来设置系统的一些功能和用户权限,但是这里的设置失误也
会影响到局域网共享资源的使用。
由于IPC本身就是用于身份验证的,因此它对计算机账户的配置特别敏感,而组策略里偏偏就有很多方面的设置是针对计算机账户的,其中影响最大的要数“计算机配置 – Windows配置 – 安全设置 – 本地策略 – 用户权利指派”里的“拒绝从网络访问这台计算机”,在Windows 2000系统里默认是不做任何限制的,可是自从XP出现后,这个部分就默认多了两个帐户,一个是用于远程协
助(也就是被简化过的终端服务)身份登录的3389用户名,另一个则是我们局域网共享的基本成员
guest!
许多使用XP系统的用户无法正常开启共享资源的访问权限,正是这个项目的限制,解决方法也
很容易,只要从列表里移除“Guest”帐户就可以了。
除了与帐户相关的策略,这里还有几个与NetBIOS和IPC相关的组策略设置,它们是位于“计算机配置 – Windows配置 – 安全设置 – 本地策略 – 安全选项”里的“对匿名连接的额外限制”(默认为“无”),对于XP以上的系统,这里还有“不允许SAM账户和共享的匿名枚举”(默认为“已停用”)、“本地账户的共享和安全模式”(默认为“仅来宾”),其中“对匿名连接的额外限制”的设置是可以直接扼杀共享功能的,当它被设置为“不允许枚举”时,其他计算机就无法获取共享资源列表,如果它被设置为“没有显式匿名权限就无法访问”的话,这台计算机就与共享功能彻底
告别了,不妨检查一下该项目。
因篇幅问题不能全部显示,请点此查看更多更全内容