13

我是 Azure 的新手(第 1 次罢工),完全不擅长网络(第 2 次罢工)。

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

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

微软自己的文档说

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

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

4

2 回答 2

13

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

不过有一个窍门。两台机器将通过 IP 地址看到对方,但在如此定义的虚拟网络中将没有名称解析。这意味着您将无法按名称 ping,而只能通过直接 IP 地址。因此,如果希望您的网站(在 VM1 上)连接到 SQL Server(在 VM2 上),您必须使用完整的 IP 地址而不是机器名称来寻址。

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

本文详细介绍了 Windows Azure 中的名称解析方案。你的特殊情况是这样的:

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

如果您将虚拟机放置在相同的云服务中,您可能会实现名称解析。因此,您甚至不需要专用的虚拟网络。

于 2012-12-21T19:53:38.907 回答
0

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

  1. 所需端口已启用。
  2. 服务器上的防火墙已禁用。

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

于 2016-01-04T09:23:32.073 回答