Azure虚拟网络混合连接



我在网络中安装了Azure虚拟网络和VM。我已经在虚拟机上安装了混合连接管理器应用程序。

我还有一个Azure应用程序服务,我在它和虚拟机之间创建了一个混合连接,他们都声称他们彼此连接得很好。

同样在虚拟机上,我安装了一个正在侦听的应用程序http://localhost:1234

有人能告诉我使用应用程序服务中的哪个IP进行通话吗http://localhost:1234在虚拟机上?例如是[VM内部IP]:1234还是[VM公共IP]:1234,或者其他什么。现在什么也没说,所以我想确保IP地址不是问题所在。

只需使用虚拟机的计算机名称。例如,从应用程序服务中的代码调用SQLSRV009:1234。门户中的混合连接定义应该反映相同的名称(与计算机名称相同,与您从代码中调用的名称相同)。

查看这本写得很好的指南,了解全貌—https://learn.microsoft.com/en-us/azure/biztalk-services/integration-hybrid-connection-create-manage

可以将混合连接端点设置为IP地址如果您使用IP地址,您可能会访问内部部署资源,也可能不会访问,具体取决于您的客户端

混合连接取决于客户端进行DNS查找。在大多数情况下,客户端就是您的应用程序代码如果客户端不执行DNS查找(它不会尝试将IP地址解析为域名(x.x.x.x)),则流量不会通过混合连接发送

例如(伪代码),您将10.4.5.6定义为本地主机:以下场景有效:
Application code -> GetHostByName("10.4.5.6") -> Resolves to 127.0.0.3 -> Connect("127.0.0.3") -> Hybrid Connection -> on-prem host

以下场景不起作用:
Application code -> Connect("10.4.5.6") -> ?? -> No route to host

还要让你的应用程序监听0.0.0.0或私有IP,因为我不太确定localhost是否能与HC一起工作。

为什么不将VNET集成用于Web应用程序?您所需要做的就是在VNET中创建一个基于路由的(IKEv2)VPN网关,就像这样—https://learn.microsoft.com/en-us/azure/app-service/web-sites-integrate-with-vnet

您应该使用VM host name,感谢evivSnobu的链接。

如果您使用IP地址,您可能会也可能无法访问内部部署资源,具体取决于您的客户。

如果使用VM public IP,流量数据包将通过Internet传输到VM,而不是VPN隧道。localhost只能在VM内部使用。

此外,如果您的应用程序正在侦听localhost(127.0.0.1),则该服务只能访问您的虚拟机内部。正如evivSnobu所说,您需要修改在0.0.0.0private IP(like 10.0.0.4)上侦听的服务。您可以使用以下命令进行检查。

对于Linux

netstat -ant|grep 1234

对于Windows

netstat -ant|findstr 1234

最新更新