实际上,负载均衡器将在端口 443 上接收流量,而客户希望 LB 在端口 445 上查询实际服务器。我的问题是,这可行吗,因为端口 445 用于 SMB,就像端口 443 用于 https 一样?
答案1
如果(并且仅有的如果实际服务器已在端口 445 上设置了 HTTPS 服务,它将正常工作。这也意味着服务器不能在同一端口上运行 SMB 服务。
不过,该服务器最好位于没有 SMB 流量的网段中,否则端口 445 中的 HTTPS 服务器实例可能会从错误的 SMB 连接尝试中获得一些垃圾日志条目。但由于我们谈论的是负载平衡器,这可能是一个相当严重的设置:服务器很可能位于某种 DMZ 网段中,因此该网段中的 SMB 流量可能不存在或受到严格限制。
(对我来说,这表明服务器可能有多个 HTTPS 服务:也许首先在标准端口 443 中有一个,然后在端口 444 中添加了另一个,然后在 445 中又添加了一个......)
答案2
使用众所周知的端口号来运行通用协议可以使客户端和服务器轻松交互,而无需事先明确同意并沟通要连接的端口。
但是,当您同时控制客户端和服务器时,没有什么可以阻止您在非标准端口上运行服务。
是的,如果 HTTPS 服务正在运行,您可以反向代理并将端口 443 负载平衡到端口 445。
请注意运行使用非标准端口的公共服务经常会使部分用户无法使用它们(许多防火墙会根据目标端口号允许和/或阻止特定流量)。
例如,我当前的托管服务提供商会主动阻止 Netbios 135-139 端口和 SMB 端口 445,因为它们只能在 LAN 中使用,而不能在 Internet 上使用。