强制SMB超过445而不是80

一个类似的问题在这里被问到( Windows文件浏览器使用端口80(webdav)而不是445(samba smb cifs)用于UNCpath ),但是该解决scheme并不适用于我的目的。

我最近设置了一个OpenVPN解决scheme,并试图使用它来连接到其他计算机。 我把所有设置好了,但现在我一直在试图通过SMB连接到这些电脑。

当我尝试通过SMB(使用net use ,Windows资源pipe理器,或其他任何地方)连接本地(192.168.xx),Windows将使用端口445就好了。 但是,当我试图连接到远程networking(192.168.yy),Windows决定它需要使用端口80和135.当然,80失败,135没有我试图使用的服务。

TCP / IP NetBIOS Helper服务正在运行(在本地子网中工作正常)。 当我禁用Web客户端服务(即使没有运行)时,Windows将跳过端口80尝试,直接进入远程networking的端口135。 我在networking设置中对提供者的偏好设置进行了类似的改变,但是这并没有改变任何东西。

我如何知道限制Windows只能使用SMB的端口445? 这似乎与它不在本地子网中有关。

如果重要,客户端使用的是Windows 7 Pro x64。

是的,这是可能的。

仅用于后台(或FYI),端口135用于NETBIOS,它只能在本地广播域内运行,除非有一个基本上没有人拥有的WINS服务器。 所以这就是为什么你根据你所在的子网看到不同的行为。

默认情况下 :

以下端口与文件共享和服务器消息块(SMB)通信相关联:

  • Microsoft文件共享从135到139的SMB:用户数据报协议(UDP)端口和从135到139的传输控制协议(TCP)端口。
  • 没有networking基本input/输出系统(NetBIOS)的直接托pipeSMBstream量:端口445(TCP和UPD)。

为了改变这种行为,你基本上需要通过TCP / IP来禁用NETBIOS。 这可以在机器的networking适配器上完成,甚至可以通过Windows DHCP服务器完成,具体取决于您的偏好。 这是Windows的土地,这被称为“直接访问SMB”, 以及微软KB,其中概述了如何强制直接访问SMB在这里 。

(是的,KB也适用于Windows 7和Vista,即使它们不在适用的操作系统列表中 – Windows 7和Vista,默认情况下,通过DHCP服务器获取通过TCP / IP设置的NETBIOS,以及我还没有看到一个我没有设置,通过TCP / IP禁用NETBIOS。)