首页 文章

Azure VM虚拟网络相互通信

提问于
浏览
13

我是Azure的新手(罢工1)并且完全厌恶网络(罢工2) .

不过,我已经在同一个虚拟网络中启动并运行了两个虚拟机;一个将充当Web服务器,另一个将充当SQL数据库服务器 .

虽然我可以看到他们的内部IP地址都在同一个网络中,但我无法验证这些机器是否可以相互通信,并且对于解决此问题的适当位置感到困惑 .

微软自己的文档说

您在Windows Azure中创建的所有虚拟机都可以使用专用网络通道与同一 Cloud 服务或虚拟网络中的其他虚拟机进行自动通信 . 但是,您需要将一个 endpoints 添加到计算机上,以便Internet或其他虚拟网络上的其他资源与之通信 . 您可以将特定端口和协议关联到 endpoints . 资源可以使用TCP或UDP协议连接到 endpoints . TCP协议包括HTTP和HTTPS通信 .

那么为什么机器至少不能通过内部IP相互ping?是Windows防火墙妨碍了吗?我开始怀疑我是否为简单的Web服务器/数据库服务器设置选择了错误的方法 . 请原谅我的无知 . 任何帮助将不胜感激 .

2 回答

  • 0

    如果两台计算机都在同一个虚拟网络中,那么只需关闭Windows防火墙,他们就可以相互ping通 . 其他方法是仅允许具有高级设置的Windows防火墙中的所有传入ICMP流量 .

    但是有一个技巧 . 两台机器都将通过IP地址相互看到,但在如此定义的虚拟网络中将有 no 名称解析 . 这意味着您将无法通过名称ping,而只能通过直接IP地址ping . 因此,如果希望您的网站(在VM1上)连接到SQL Server(在VM2上),您必须通过完整的IP地址而不是机器名称来解决它 .

    在虚拟网络中进行名称解析的唯一方法是使用专用DNS服务器,您可以在本地维护和配置该服务器 .

    This article详细描述了Windows Azure中的名称解析方案 . 你的具体情况如下:

    位于同一虚拟网络中的虚拟机和角色实例之间的名称解析,但不同的 Cloud 服务

    如果您将VM设置为相同的 Cloud 服务,则可以实现名称解析 . 因此,您甚至不需要专用的虚拟网络 .

  • 13

    如果您的VM位于Azure中的虚拟网络内,那么您必须确保两件事 .

    • 必需端口已启用 .

    • 服务器上禁用了防火墙 .

    我试图从另一个VM连接到安装了SQL Server DB的一个VM . 我必须在安装SQL的VM中启用1433端口 . 为此,您需要在Azure管理门户上向VM添加MSSQL endpoints . 之后,我禁用了Windows防火墙 . 然后我能够从另一个连接到VM .

相关问题