【问题标题】:Azure VMs Virtual Network inter-communicationAzure VMs 虚拟网络互通
【发布时间】:2012-12-09 08:44:11
【问题描述】:

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

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

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

微软自己的文档说

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

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

【问题讨论】:

    标签: azure azure-virtual-machine azure-virtual-network


    【解决方案1】:

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

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

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

    This article 详细描述了 Windows Azure 中的名称解析方案。你的特殊情况是这样的:

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

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

    【讨论】:

    • 我有一种感觉,这里要问的是关于网络识别状态的卡住......这似乎无缘无故地发生了很多......当它发生时,VM 会丢失与网络中其他 PC 的所有连接,无论防火墙状态如何。
    • 我只是将我的主机名/IP 地址放在一个 HOSTS 文件中,它会自动解析它们。
    • 是的,“很棒”,当您的虚拟机因计划维护而重新启动并丢失其 IP 地址时会发生什么?
    • 请注意不要做我所做的 - 在测试 ping 后重新打开防火墙并将自己完全锁定在虚拟机之外。重新启用防火墙时要小心,不要意外阻止自己通过远程桌面进行连接!
    • 今天已经有了自定义脚本扩展:azure.microsoft.com/blog/2014/04/24/…,无论防火墙规则如何都可以执行。因此,您可以使用机器远程做任何您想做的事情(假设您尝试实现的目标可以通过 PowerShell 实现)
    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2014-11-25
      • 2021-12-01
      • 2021-05-15
      • 2021-07-31
      • 2019-10-29
      • 1970-01-01
      • 2018-09-22
      • 2020-02-04
      • 1970-01-01
      相关资源
      最近更新 更多