最近遭遇的一个网络共享文件访问故障非常奇怪,以某一台固定的主机为例,不同时间访问另外一台主机的共享文件时,却出现时通时不通的现象。
现象介绍
具体表现为在主机上运行“IP地址命令,来尝试连接另外一台主机,输入正确的用户名和密码之后却提示“当前没有可用的登录服务器来服务登录请求,但是过一阵子再使用相同的操作又有可能正常访问。
在对希望互访的两台计算机进行检查,发现它们有一个共同的特点,那就是它们都配置了两个IP地址。当前内网使用的IP地址是192.168.0网段的,网关为192.168.0.1;但为了让几台服务器之间进行文件交换,不让其他客户端访问,因此在服务器上又添加了10.10.20网段的IP地址,由于只是内网访问,因此就没有配置10.10.20网段的网关。
共享协议介绍
碰到这样的问题只能求助于网络。在网络上经过一翻搜索之后,才发现是因为共享协议才引发这个故障的。要想彻底认识这个问题,必须先了解共享协议的工作原理。
在Windows系统中,文件共享是通过SMB协议来完成的。SMB协议有两种工作方式,分别为NetBios Over TCP/IP(简称NetBT)和Direct hosting。当采用NetBT方式通信时,会通过NetBIOS接口来进行连接,分占别用UDP137、138和TCP139端口,其中137端口用来进行名字解析,138端口传递数据包,139用于会话服务,进行文件传输,因此最重要的就是139端口了;而采用Direct hosting则更为简单,直接跳过NetBIOS直接口,不需要进行名称解析,直接使用TCP445端口传输。
在早期的Windows系统之中,主要使用NetBIOS进行通讯,但是到了Windows 2000后,又新增加了Direct hosting方式,但并没有取消NetBT。同时NetBT是随网卡绑定的,并且只能绑定在网卡的第一个IP地址上,在本例中,即192.168.0网段的IP地址;而Direct hosting却没有这样的限制。在本例中,访问10.10.20网段的其它主机时,会优先使用自己绑定的同网段的IP地址进行连接,而不会采用192.168.0网段的地址进行连接。看到这里,大家或许已经明白了。问题的关键就在于主机不能自动识别采用正确的连接方式,而是采取的类似“随机抢答的方式,既可能采用NetBT,也可能采用Direct hosting,当选择前者时就会出现不通的故障,使用后者时则完全正常。
故障解决
知道了其真实原因后,解决起来就方便多了,我们只需要取消NetBT方式,强制使用Direct hosting即可。打开本地连接的属性窗口,双击其中的“Internet协议(TCP/IP),在打开的窗口中单击“高级按钮,再切换到“WINS选项卡,将其中的“NetBIOS设置设为“禁用TCP/IP上的NetBIOS选项,然后单击“确定按钮保存设置就可以了。
其实,解除问题的步骤是非常简单的。但是作为优秀的网络管理人员,在网络出现故障的时候,不仅要能够及时排除,而且能够知道引发故障的原因,对相关的原理能够有充分的了解,这样会提高网络素养,提高自己的综合能力将有极大的帮助。
Greenfoot是一款简单易用的Java开发环境,该软件界面清爽简约,既可以作为一个开发框使用,也能够作为集成开发环境使用,操作起来十分简单。这款软件支持多种语言,但是默认的语言是英文,因此将该软件下载到电脑上的时候,会发现软件的界面语言是英文版本的,这对于英语基础较差的朋友来说,使用这款软件就会...
07-05
Egret UI Editor是一款开源的2D游戏开发代码编辑软件,其主要功能是针对Egret项目中的Exml皮肤文件进行可视化编辑,功能十分强大。我们在使用这款软件的过程中,可以将一些常用操作设置快捷键,这样就可以简化编程,从而提高代码编辑的工作效率。但是这款软件在日常生活中使用得不多,并且专业性...
07-05
KittenCode是一款十分专业的编程软件,该软件给用户提供了可视化的操作界面,支持Python语言的编程开发以及第三方库管理,并且提供了很多实用的工具,功能十分强大。我们在使用这款软件进行编程开发的过程中,最基本、最常做的操作就是新建项目,因此我们很有必要掌握新建项目的方法。但是这款软件的专业性...
07-05
Thonny是一款十分专业的Python编辑软件,该软件界面清爽简单,给用户提供了丰富的编程工具,具备代码补全、语法错误显示等功能,非常的适合新手使用。该软件还支持多种语言,所以在下载这款软件的时候,有时候下载到电脑中的软件是英文版本的,这对于英语基础较差的小伙伴来说,使用这款软件就会变得十分困难,...
07-05