首页 > 代码库 > [The network path was not found][0x80070035] 为何不能访问Windows共享?

[The network path was not found][0x80070035] 为何不能访问Windows共享?

安装了一个2008的VM,欢天喜地准备做一些测试,结果在用UNC访问VM的过程中出现了如下错误,

这个错误其实非常普遍,在google里搜error number能搜出好多文章,这其实也是最可怕的地方,搜出来的东西千奇百怪,却没有一个能和自己的错误对应上。

本例就是其中一个,windows firewall和AVG firewall全部关闭都没有任何效果,目标服务器关键服务也是启用的并且能以UNC访问本身。

于是打开Wireshark想看看问题到底在哪,其中绿色框住的部分是一次完整的通讯失败记录。

其中有两点应该被注意,

1. 明明用的是UNC访问Share,为何协议是http?理所应当是SMB才对。

2. Http1.1 503 Service Unavailable

第二点很好理解,因为不明原因使用了http协议,而服务器原本就没web service,自然报503 http错误。

于是再次打开google,搜索SMB http关键字,在MSDN找到如下文章一篇,

http://msdn.microsoft.com/en-us/library/windows/desktop/aa365233(v=vs.85).aspx

摘要关键部分如下,

In the OSI networking model, Microsoft SMB Protocol is most often used as an Application layer or a Presentation layer protocol, and it relies on lower-level protocols for transport. The transport layer protocol that Microsoft SMB Protocol is most often used with is NetBIOS over TCP/IP (NBT). However, Microsoft SMB Protocol can also be used without a separate transport protocol—the Microsoft SMB Protocol/NBT combination is generally used for backward compatibility.

难道是我NetBIOS没有开启吗?于是检查了网卡的配置和services,发现如下service被disabled。

 

启用之后再次抓包,出现了久违的SMB协议,

于是欢天喜地,打开了AVG的firewall,结果又出现了The network was not found的错误,再次抓包,又出现了http协议。

看来除了上面提及的服务,firewall也有问题,于是打开AVG的专家模式,查看屏弊日志,原来是AVG block了到远端服务器137口的UDP包。

如下图,默认只对安全网络开放了137,也就是白名单,现在可以选择把网段加入白名单,或者如下图只针对该rule勾上网段。

确认到底,再次访问UNC,依然同样错误,于是再次打开AVG日志,看到这次则是445和139被block。按上面的图找到139和445的规则,允许网段即可。