快捷搜索:  as

Windows 系统共享文件操作与原理详解

TCPIP协议访问资源大致是这样,我们通过网络邻居,UNC(UNC:通用命名规范)路径访问,一般是利用名字解析NETBIOS,dns,wins确 定对方的IP地址,获取对方共享资源列表,当点击共享资源时候,客户机对服务器端点发出建立会话请求,这发生在OSI七层模型的“传输层”。
为了在服务端和客户端之间传送TCP数据,必须先建立一个虚拟电路,也就是TCP连接,建立TCP连接的标准过程是这样的(也就是传说中的TCP三次握手):
首先,请求端(客户端)发送一个包含SYN标志的TCP报文,SYN即同步(Synchronize),同步报文会指明客户端使用的端口以及TCP连接的初始序号;
第二步,服务器在收到客户端的SYN报文后,将返回一个SYN+ACK的报文,表示客户端的请求被接受,同时TCP序号被加一,ACK即确认(Acknowledgement)。
第三步,客户端也返回一个确认报文ACK给服务器端,同样TCP序列号被加一,到此一个TCP连接完成。
以上的连接过程在TCP协议中被称为三次握手(Three-way Handshake)。

会话连接建立后,对方检查共享资源的级别。确定是何种级别后,客户端就可以访问到相应的资源了。

解决Windows系统不能共享的方法

  1. 使用共享,网络协议必须要有NetBIOS协议,否则第一条路就走不通了,没这个协议会导致无法使用计算机名访问共享,这里要批评一下有随便卸载NetBIOS协议的同学了,不知道卸载有什么后果就去卸载,这是非常盲目的做法!
  2. 接着,TCP访问是要有端口号的,那么共享所使用的端口号是TCP139、TCP445、UDP137、DP138,说到这里估计有些人就知道为什么 要卸载NetBIOS协议,为什么要关闭共享,因为在过去,共享是存在安全隐患的,所以大家通过“斩草除根”的方式去避免安全隐患。
    在ISO9000系统里,已经通过IP安全策略屏蔽了这些端口,所以你要访问共享时,必须关闭IP安全策略服务,否则端口不通,你肯定访问不了共享。
    操作方法:在开始,运行,输入cmd,然后在cmd下输入以下命令:
    net stop PolicyAgent //停止IP安全策略服务
    sc config PolicyAgent Start= Disabled //禁用IP安全策略服务
  3. 到这里,网络方面的问题解决了,剩下的就是权限的问题。我想玩过共享的人都该知道,有种共享方法叫做匿名共享,就是你输入共享路径,就可以直接打开共 享文件夹,要达到这个效果,你需要开启GUEST来宾用户,但是默认情况下,为了安全起见,GUEST用户默认都是禁用状态,所以我们需要把GUEST启 用,操作方法如下:
    在开始,运行,输入cmd,然后在cmd下输入以下命令:
    net user guest /active:yes
  4. 用户权限有了还不行,你还需要开启Server共享服务,否则仍然是无法使用共享的。
    操作方法:在开始,运行,输入cmd,然后在cmd下输入以下命令:
    sc config LanmanServer Start= Auto //将共享服务启动方式改为自动
    net start LanmanServer //启动共享服务
  5. 到这里总该可以访问了吧?或许可以了!如果还不可以,你还需要修改一个地方,那就是组策略里面的安全设置,操作方法如下:
    在开始,运行,输入cmd,然后在cmd下输入gpedit.msc,启动组策略
    Windows 系统共享文件操作与原理详解
    Windows 7
    2012-09-23_021142-1.png
  6. 此时,如果访问共享提示没有权限,那么你需要在你需要共享的分区上添加Everyone权限,如下图:
    2012-09-23_021142-2.png

至此,共享服务应该可以访问了,如果还不能访问,我只能建议你把系统重新装过,或者按照原理从头排查了

您可能还会对下面的文章感兴趣: