Windows 文件资源管理器使用端口 80 (webdav) 而不是 445 (samba smb cifs) 作为 UNC 路径

Edw*_*vey 6 windows samba cifs webdav unc

我有一台 Windows 7 Ultimate x86_64 计算机,无法访问网络 samba 服务器。我启动“运行”对话框,然后输入内容,\\192.168.x.x这样我就绕过了 DNS 和 NetBIOS 名称解析以及广播发现,直接进入服务器 IP 地址。我运行wireshark,发现客户端正在尝试连接到端口80而不是445上的服务器。(这当然会失败,因为服务器没有监听80;服务器只运行samba和nmbd等,所以只有端口445和 137-139 均适用)。

我知道这个问题,并且我不相信这是重复的,因为(a)该问题在 Win XP 上已有 2 年多了,并且(b)在这种情况下没有任何答案有帮助,尽管其他问题已标记为已回答。

错误消息是: Windows Cannot Access \\192.168.x.x当我单击“查看详细信息”时,它说Error Code 0x800704cf The network location cannot be reached

我确认Microsoft 网络客户端存在并且已启用。我什至将其删除(被迫重新启动)并重新安装。没有效果。

我禁用了IPv6,没有效果。

我确认WebClient服务未运行。(它设置为手动,并且未运行)。

我确认TCP/IP NetBIOS Helper服务正在运行。(它设置为自动,并且正在运行。)

当然,我已经重新启动并重试了。(多次和多种方式)。

该问题似乎在旧补丁级别中存在,并且在应用所有 Windows 更新后仍然存在。

为什么 Windows 会尝试使用端口 80 (webdav) 而不是端口 445 (samba/smb/cifs) 将文件资源管理器连接到 UNC 路径?

net view 192.168.x.x在受影响的客户端上抛出错误消息:

C:\Windows\system32>net view 192.168.x.x
System error 53 has occurred.

The network path was not found.


C:\Windows\system32>ping 192.168.x.x

Pinging 192.168.x.x with 32 bytes of data:
Reply from 192.168.x.x: bytes=32 time<1ms TTL=64
Reply from 192.168.x.x: bytes=32 time<1ms TTL=64
Run Code Online (Sandbox Code Playgroud)

但在另一个客户端上工作正常:

C:\Users\eharvey>net view 192.168.x.x
Shared resources at 192.168.x.x

netfiles server (Samba, Ubuntu)

Share name  Type  Used as  Comment

-------------------------------------------------------------------------------
myshare     Disk           My Company data storage
The command completed successfully.
Run Code Online (Sandbox Code Playgroud)

小智 4

如果数据包捕获显示没有超过 445 的尝试,则表明客户端首先尝试 WebDav。这可能是因为 WebDav 在网络提供商订单中的排名较高。要检查:

\n
    \n
  • 打开网络连接
  • \n
  • 高级菜单
  • \n
  • 高级设置...
    \n网络连接 \xe2\x86\x92 高级 \xe2\x86\x92 高级设置...
  • \n
  • 提供商订单选项卡
  • \n
  • 确保Microsoft Windows 网络高于Web 客户端网络
    \n“高级设置”窗口。 “提供商订单”选项卡
  • \n
\n

  • 有类似的问题,并且可以确认这不是解决方案——“Microsoft Windows Network”已经在“Web Client Network”之前。 (4认同)