强制 SMB 超过 445 而不是 80

强制 SMB 超过 445 而不是 80

这里也曾有人问过类似的问题(Windows 文件资源管理器使用端口 80 (webdav) 而不是 445 (samba smb cifs) 作为 UNC 路径),然而这个解决方案并不符合我的目的。

我最近设置了一个 OpenVPN 解决方案,并尝试使用它来连接到其他计算机。我已完成所有设置,但现在我一直尝试通过 SMB 连接到这些计算机。

当我尝试通过 SMB(使用net use、Windows 资源管理器或其他任何程序)在本地(192.168.xx)进行连接时,Windows 将正常使用端口 445。但是,当我尝试连接到远程网络(192.168.yy)时,Windows 决定需要使用端口 80 和 135。当然,80 会失败,而 135 没有我尝试使用的服务。

TCP/IP NetBIOS Helper 服务正在运行(在本地子网中运行良好)。当我禁用 Web 客户端服务(即使它没有运行)时,Windows 将跳过端口 80 尝试并直接转到远程网络的端口 135。我在网络设置中同样更改了提供商的优先顺序,但这并没有改变任何东西。

如何告诉限制 Windows 使用仅有的端口 445 用于 SMB?这似乎与它不在本地子网中有关。

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

答案1

是的,有可能。

仅供参考(或仅供参考),端口 135 用于 NETBIOS,它仅在本地广播域内起作用,除非有 WINS 服务器,而 WINS 服务器基本上已经没有人拥有了。这就是为什么您会看到基于您所在子网的不同行为。

默认情况下

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

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

为了改变这种行为,你基本上需要禁用 TCP/IP 上的 NETBIOS。这可以在机器的网络适配器上完成,甚至可以由 Windows DHCP 服务器完成,具体取决于你的偏好。这是 Windows 领域,这被称为“直接访问 SMB”,微软知识库介绍了如何强制直接访问 SMB,请参见此处

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

相关内容