我进行了一些测试,据我了解,Azure Relay 要求侦听器显式连接到总线。在我们的场景中,我们希望从 Azure 中的 VM(或 Internet 上的不同系统)使用它来连接到无法修改以支持混合连接的现有本地资源。我还测试了混合连接管理器,但找不到任何有关如何创建连接到混合连接的客户端的文档,该连接使用混合连接管理器将流量路由到目标系统。它适用于 Azure Web 应用程序,但在我们的场景中它们不是可行的解决方案。是否可以从 Azure Web 应用程序外部使用混合连接管理器?
1 回答
我又挖了两天来找到答案,从这篇文章看来,这似乎是不可能的:
https://docs.microsoft.com/en-us/azure/biztalk-services/integration-hybrid-connection-overview
混合连接提供了一种简单方便的方法,可将 Azure 应用服务(以前称为网站)中的 Web 应用功能和 Azure 应用服务(以前称为移动服务)中的移动应用功能连接到防火墙后面的本地资源。
这听起来是正确的,因为它们需要 Azure 在底层进行一些网络级别的调整:移动应用程序进行特定的 dns 查询,并且 azure 内部 dns 返回一个“幻影” ip,它提供了一个进入混合连接隧道的入口请求的端口。然后,混合连接将 tcp 流“转发”到本地混合连接管理器,该管理器将请求代理到服务的真实 IP。这样,混合连接不会中断任何 SSL 连接,因为目标 dns 主机与最终 SSL 端点相同。
但是,再深入一点,我发现了两个示例,它们提供了对我的场景很有帮助的预先阐述:
混合连接反向代理
https://github.com/Azure/azure-relay/tree/master/samples/hybrid-connections/dotnet/hcreverseproxy
港口桥
https://github.com/Azure/azure-relay/tree/master/samples/hybrid-connections/dotnet/portbridge