如果未正确配置您的环境的网络连接以用于 Microsoft Azure 中的第一代 Horizon Cloud 容器,构建该容器的过程可能会停滞在挂起状态,或者将域绑定到您的 Active Directory 环境的部署后操作可能会失败。两个最常见的网络相关原因是,无法打开所需的出站端口以及无法启用 DNS 以解析内部和外部地址。通过执行此处的故障排除步骤,您可以运行一些测试以验证是否打开所需的出站端口以及 DNS 是否可以解析内部和外部地址。

重要说明: 仅当您有权访问第一代控制平面中的第一代租户环境时,此信息才适用。如 知识库文章 92424 中所述,第一代控制平面已终止提供 (EOA)。有关详细信息,请参阅该文章。

必备条件检查表以及第一代租户 - 配置将用于 Microsoft Azure 中的 Horizon Cloud 容器的 VNet 拓扑所需的 DNS 服务器设置第一代租户 - Horizon Cloud on Microsoft Azure 部署 - 主机名解析要求、DNS 名称中说明了成功部署容器的总体网络连接要求。如果您的环境的网络不符合这些要求,将会遇到下面的一个或两个问题:

问题 常见的原因
  • “入门”页面显示处于挂起状态的容器,并且该容器永远不会变为“正在连接”状态。通常,容器处于挂起状态大约 10 分钟(将容器部署到 Microsoft Azure 中国云时除外,这需要更长的时间)。
  • 即使已成功部署容器,在尝试注册您的 Active Directory 时,域绑定步骤也会失败并显示“无法注册 Active Directory”(Unable to register Active Directory) 错误。
  • 未打开所需的出站端口,或者您的防火墙环境阻止这些端口。如果未打开所需的出站端口或防火墙阻止这些端口,将导致无法将容器软件安全地下载到 Microsoft Azure 云环境并重新连接到 Horizon Cloud 云控制平面。因此,将会出现挂起状态问题。
  • 未正确配置 VNet DNS 服务器以指向可解析内部和外部计算机名称的有效 DNS 服务器。
  • 尽管 VNet DNS 服务器正确指向一个 DNS 服务器,但该 DNS 服务器无法解析内部和外部计算机名称。

如果没有为 VNet 提供外部计算机名称的 DNS 解析,则可能会出现挂起状态问题和域绑定问题。例如,如果 DNS 无法解析为域控制器上的 Active Directory,域绑定步骤将失败。有关 VNet DNS 配置的详细信息,请参阅第一代租户 - 配置将用于 Microsoft Azure 中的 Horizon Cloud 容器的 VNet 拓扑所需的 DNS 服务器设置

要运行一些测试以检查 DNS 配置是否可以解析内部和外部名称以及是否打开了所需的出站端口,可以在您的 Microsoft Azure 订阅中部署一个小测试虚拟机 (VM),然后使用该虚拟机运行这些网络测试。简要故障排除步骤顺序如下所示:

  1. 创建一个 SSH 密钥对。
  2. 在您的 Microsoft Azure 订阅中创建测试虚拟机。
  3. 连接到该测试虚拟机。
  4. 运行网络测试。
  5. 在完成测试后,请删除在您的 Microsoft Azure 环境中创建的测试虚拟机和所有测试相关项目以执行该故障排除。
注: 如果未删除测试相关项目并随后使用控制台的 删除操作删除容器,则可能会出现意外的结果。在删除一个容器时,系统将检查该容器的子网,以确认连接到子网的所有项目均属于该容器本身(根据容器的 ID 确认)。如果系统确定额外的虚拟机、虚拟机磁盘、IP 或其他项目连接到该容器的子网,则系统无法干净地删除该容器。

有关运行故障排除测试的详细信息,请参阅以下几节。

重要说明: 即使所有这些手动测试都成功,而如果通过内部部署网络向外传送所有流量并且仅允许经过身份验证的流量通过,但您没有在容器部署向导中提供值以使用代理,则容器部署可能会停滞在挂起状态。如果此描述符合您的情况,您必须从“入门”页面中删除容器,重新运行容器部署向导,然后指定所需的代理信息。

Horizon Cloud 容器部署故障排除 - 创建 SSH 密钥对

在此故障排除过程中,将在您的 Microsoft Azure 订阅中部署一个测试 Linux 虚拟机。要向该测试 Linux 虚拟机进行身份验证,您需要一个 SSH 密钥对。您可以在用于通过 SSH 连接到测试虚拟机的系统上创建该密钥对。如果在该系统上已具有一个密钥对,则该步骤是可选的。

要创建该 SSH 密钥对,您可以使用 Microsoft Windows 或 Linux 系统。下面介绍了适用于这两种类型的系统的步骤。选择最适合您的情况的步骤。

在 Microsoft Windows 系统上创建 SSH 密钥对

在使用 Microsoft Windows 系统通过 SSH 连接到将部署到您的 Microsoft Azure 订阅的测试 Linux 虚拟机时,请使用这些步骤。

在 Microsoft Azure 中创建测试虚拟机时,您将使用生成的公钥文件的内容。如果在用于连接到测试虚拟机的 Microsoft Windows 系统上已具有一个 SSH 密钥对,您可以跳过该步骤并继续创建测试虚拟机,如在您的 Microsoft Azure 订阅中创建测试虚拟机中所述。

通过执行这些步骤,您可以生成 SSH 密钥对,复制公钥文件内容以便在创建测试虚拟机时使用,以及将私钥加载到 PuTTY Pageant 工具中。Pageant 是一个 SSH 身份验证代理,它可以在内存中保留私钥。通过在内存中保留私钥,将针对该 Microsoft Windows 系统中的任何 SSH 会话自动应用私钥,以使其更易于使用。

前提条件

默认情况下,不会在 Microsoft Windows 系统上安装 SSH 密钥对软件。确认在打算使用的系统上安装了 SSH 密钥对生成软件。您可以使用任何 SSH 密钥对生成软件。以下步骤介绍了如何在 Microsoft Windows 上使用 PuTTY 软件创建 SSH 密钥对。您可以从 www.putty.org 中获取 PuTTY 软件。在安装后,即可使用 PuTTY 工具套件。以下屏幕截图显示了“开始”菜单中的 PuTTY 工具示例。


在 Microsoft Windows 10 的“开始”菜单中显示的 PuTTY 工具的屏幕截图

过程

  1. 在 Microsoft Windows 系统上,启动 PuTTYgen(PuTTY 密钥生成器)。
    将显示 PuTTY Key Generator 窗口。正如以下屏幕截图中突出显示的一样,目标是生成具有 SSH-2 RSA 类型且长度为 2048 位的公钥私钥对。
    PuTTY Key Generator 窗口的屏幕截图,其中的绿色箭头指向密钥位置

  2. 确认选择了 SSH-2RSA,将位数设置为 2048,然后单击 生成 (Generate)。该窗口将变为显示进度栏的“密钥”(Key) 窗口。
  3. 按照屏幕上的指导在进度栏下面的空白区域中随机四处移动光标。正如 PuTTY 用户界面所述,在该区域中四处移动光标可增加过程中所需的随机性。
  4. 输入一个密钥密码短语,然后单击保存私钥 (Save private key) 以将私钥保存到系统中。
    注: 使用密钥密码短语是一个可选的最佳做法。不过,如果单击 保存私钥 (Save private key) 而未输入密钥密码短语,将显示一个弹出窗口,要求您确认是否要保存没有密钥密码短语的私钥。
    将以 PPK 文件形式保存私钥。在单击 保存私钥 (Save private key) 后,您可以浏览到本地系统中的一个目录,键入文件名,然后保存该文件。
  5. 使用保存公钥 (Save public key) 按钮将公钥保存到一个位置,在创建测试虚拟机,您可以从此位置中复制该密钥。
  6. 启动 Pageant,这是 PuTTY SSH 身份验证代理。
    在 Windows 10 系统上,Pageant 图标将加载到系统托盘中。
  7. 通过以下方法将私钥添加到 Pageant 中:右键单击该系统托盘图标,单击添加密钥 (Add Key),然后使用文件选择窗口导航到并选择您保存的私钥 (PPK) 文件。
    注: 如果之前在保存私钥文件时指定了一个密钥密码短语,将显示一个框以键入该密码短语。

结果

此时,将在 Pageant 中加载私钥。您可以使用操作菜单上的 查看密钥 (View Keys) 选项在加载的密钥列表中查看该密钥。在使用 PuTTY 启动 SSH 会话时,PuTTY 自动从 Pageant 中检索密钥,并使用该密钥进行身份验证而无需键入您的密码短语。以后,在运行完 SSH 会话并且要关闭 Pageant 后,请使用 Pageant 系统托盘图标的右键单击菜单中的 退出 (Exit) 选项。

下一步做什么

按照在您的 Microsoft Azure 订阅中创建测试虚拟机中的步骤创建测试虚拟机。

在 Linux 系统上创建 SSH 密钥对

在使用 Linux 系统通过 SSH 连接到将部署到您的 Microsoft Azure 订阅的测试 Linux 虚拟机时,请使用这些步骤。

在 Microsoft Azure 中创建测试虚拟机的步骤中,您将使用生成的公钥文件的内容。如果在用于连接到测试虚拟机的 Linux 系统上已具有一个 SSH 密钥对,您可以跳过该步骤并继续创建测试虚拟机,如在您的 Microsoft Azure 订阅中创建测试虚拟机中所述。

前提条件

在执行这些步骤之前,请确保不会覆盖要保留以用于其他用途的现有 SSH 密钥对。在 Linux 系统上,默认情况下,将在 Linux ~/.ssh/id_rsa 目录中创建 SSH 公钥和私钥文件。如果在该目录中具有一个 SSH 密钥对,并且在运行该命令时使用相同的文件名,或者在该命令中指定不同的位置,并在该位置中已具有一个 SSH 密钥对,则会覆盖该现有密钥对。

过程

  1. 在 Linux 系统上,打开一个 bash shell。
  2. 在该 bash shell 中,键入以下命令:
    ssh-keygen -t rsa -b 2048
  3. 按照屏幕上的说明输入要在其中保存密钥的文件,输入一个密码短语,然后确认该密码短语。
    以下是一个屏幕说明示例,其中 mykey 是作为要在其中保存密钥的文件输入的。
    -bash-4.1$ ssh-keygen -t rsa -b 2048
    Generating public/private rsa key pair.
    Enter file in which to save the key (/mts-cm/home/user1/.ssh/id_rsa): mykey
    Enter passphrase (empty for no passphrase):
    Enter same passphrase again:
    
    注: 使用密钥密码短语是一个可选的最佳做法。
    私钥保存在您指定的文件中,公钥保存到具有相同名称但具有 .pub 扩展名的文件中。在按照上面的示例将 mykey 作为文件输入时,示例输出如下所示:
    Your identification has been saved in mykey.
    Your public key has been saved in mykey.pub.
    

下一步做什么

按照在您的 Microsoft Azure 订阅中创建测试虚拟机中的步骤创建测试虚拟机。

在您的 Microsoft Azure 订阅中创建测试虚拟机

您将使用 Microsoft Azure 环境中的测试 Linux 虚拟机 (VM) 运行测试,以检查为您的 Horizon Cloud 容器配置的网络连接。

前提条件

确认您具有按照Horizon Cloud 容器部署故障排除 - 创建 SSH 密钥对中所述创建的 SSH 公钥。您将在虚拟机创建向导中提供该公钥,以便虚拟机将信任来自具有相应私钥的系统的 SSH 连接。

确认您的虚拟网络 (VNet) 名称与用于部署您的容器的虚拟网络相同,如第一代 Horizon Cloud - 在 Microsoft Azure 中配置必需的虚拟网络中所述。

如果您没有使用“添加容器”向导的选项为容器使用您自己命名的子网,而是输入子网的 CIDR,则容器部署程序会创建容器的管理子网。部署过程失败时,该过程可能已在 VNet 中创建容器的管理子网。

  • 如果部署程序已经创建该管理子网,建议您将测试虚拟机部署到该子网。要确定 VNet 上是否存在容器的管理子网,请登录到 Microsoft Azure 门户,导航到该 VNet,然后检查它具有的子网列表。如果您让容器部署程序自动创建容器的子网(未通过相应选项为容器使用您自己命名的子网),容器的管理子网将具有 vmw-hcs-podID-net-management 模式的名称,其中 podID 是容器的 UUID。否则,容器的管理子网就是您为容器部署创建的子网。
  • 如果部署过程失败而未在 VNet 上创建容器的管理子网,您可以选择 VNet 上的任何可用子网,或者创建新的子网以供测试虚拟机使用。

过程

  1. 登录到 Microsoft Azure 门户。
  2. 在该门户中,从 Azure 应用商店创建一个计算虚拟机,并使该虚拟机基于 Ubuntu Server LTS 型号类型。
    在撰写本文时,可以从 Azure 应用商店选择 Ubuntu Server 20.04 LTS
  3. 创建此测试 Linux 虚拟机时,请按照向导 UI 操作并配置其所需选项。确保按照如下所示配置以下项目。
    选项 说明
    订阅 与您在“添加容器”向导中为容器所做的选择相匹配。
    资源组 建议为测试虚拟机创建新的资源组。请按照屏幕上的提示创建新的资源组。

    即使您可以在该测试虚拟机中使用现有的资源组,也建议您使用测试虚拟机的特定资源组,因为在运行完测试时只需删除整个资源组,即可轻松删除虚拟机及其相关的项目。

    区域 与您在“添加容器”向导中为容器所做的选择相匹配。
    大小 由于它应该是仅用于完成验证测试的短期虚拟机,因此,您可以选择任意大小。不过,由于较小的大小通常在 Microsoft Azure 中具有较低的关联成本,因此,通常为测试虚拟机选择较小的大小,例如 2 个 vCPU 的型号。
    用户名 记下该名称,因为您以后需要使用该名称。
    身份验证类型 选择 SSH 公钥
    SSH 公钥源 选择使用现有公钥。“SSH 公钥”字段将随该选项一起显示,您可以在其中粘贴 SSH 公钥。
    SSH 公钥 在该字段中,粘贴在创建 SSH 密钥对时创建的 SSH 公钥。粘贴的内容必须以公钥的 ---- BEGIN SSH2 PUBLIC KEY ---- 行开头,并以 ---- END SSH2 PUBLIC KEY ---- 行结尾。
    公共入站端口 允许选定的 SSH (22) 端口,以便使用此测试虚拟机执行测试。
    虚拟网络 选择用于失败的容器部署的同一 VNet。
    子网 如果已尝试部署容器并且该过程失败,则可能已在虚拟网络中创建容器的管理子网。如果在虚拟网络中具有子网,建议您为该测试虚拟机选择此子网。单击子网选项以导航到位于选定虚拟网络上的子网。您可能需要将鼠标悬停在子网上以在工具提示中查看其完整名称。

    如果容器部署过程未在 VNet 上创建容器的管理子网,请在您的 VNet 上选择指定用于测试虚拟机的子网(如上面的必备条件中所述)。

    注: 如果已成功部署容器,但您正在解决域加入问题,您可能会为测试虚拟机选择容器的桌面子网而不是管理子网,因为域加入操作用于连接到该桌面子网的桌面映像。
    公共 IP 可以选择该选项,以便为创建的测试虚拟机分配公共 IP 地址。通过使用公共 IP 地址,您可以通过广域网 (Wide Area Network, WAN) 连接到该虚拟机。
    注: 从技术上讲,在您的网络配置中使用公共 IP 可能并不可行。如果无法创建具有公共 IP 的测试虚拟机,您需要建立从本地系统到在 子网字段中选择的子网的网络连接,或者需要连接到网络上的某个其他计算机,然后以入站方式连接到测试虚拟机。
  4. 在向导的最后一步,确认一些重要信息(订阅、区域位置、虚拟网络和子网)与用于您的容器的信息相匹配,然后提交以创建虚拟机。

使用 SSH 连接到测试虚拟机

建立到测试虚拟机的 SSH(安全 Shell)连接,以便在您的 Microsoft Azure 环境中运行网络连接测试。

通过 SSH 从 Microsoft Windows 系统连接到测试虚拟机

您可以从具有与创建测试虚拟机时指定的公钥对应的私钥的 Microsoft Windows 系统中建立该连接。

前提条件

确认您知道在创建测试虚拟机时指定的虚拟机 IP 地址和用户名。

在 Microsoft Windows 系统上,通常使用 PuTTY。为了在启动 SSH 会话时便于 PuTTY 加载私钥,请在启动 PuTTY 之前按照在 Microsoft Windows 系统上创建 SSH 密钥对中所述启动 Pageant,并将 SSH 私钥添加到 Pageant 密钥列表中。SSH 私钥必须与在创建测试虚拟机时指定的公钥匹配。在将私钥加载到 Pageant 后,PuTTY SSH 会话将自动使用该私钥。

过程

  1. 启动 PuTTY (Microsoft Windows 10 的“开始”菜单中的 PuTTY 选项)。
    将打开 PuTTY Configuration(PuTTY 配置)窗口。
  2. 在 PuTTY Configuration(PuTTY 配置)窗口中,指定主机名,选择 SSH,然后单击打开 (Open)
    在“PuTTY 配置”(PuTTY Configuration) 窗口的 主机名 (Host Name) 字段中,使用以下模式键入一个字符串
    testvm_username@testvmip
    并将字符串中的 testvm_usernametestvmip 替换为测试虚拟机的用户名和 IP 地址。
    重要说明: 在单击 打开 (Open) 后,如果这是首次连接到测试虚拟机,将显示一条 PuTTY 安全消息以指出不会缓存服务器的主机密钥,并显示服务器的 rsa2 密钥指纹。您可以通过以下方法继续建立连接:单击 是 (Yes) 以将服务器的主机密钥添加到 PuTTY 的缓存中,或者单击 否 (No) 以进行连接,而不将密钥添加到 PuTTY 的缓存中。如果您怀疑连接无法连接到测试虚拟机,请单击 取消 (Cancel) 以放弃连接,并返回到“PuTTY 配置”(PuTTY Configuration) 窗口以验证主机名条目。
    以下屏幕截图显示了使用该示例的窗口:
    [email protected]

    显示“PuTTY 配置”窗口的屏幕截图,其中已输入值,并且绿色箭头指向“主机名”字段、“SSH”按钮和“打开”按钮。

结果

建立 SSH 连接后,将显示一个命令行窗口。

下一步做什么

您现在已连接到测试虚拟机,您可以运行测试以检查您的 Microsoft Azure 环境中的网络连接。请按照运行测试以检查您的 Microsoft Azure 环境中的网络中所述的步骤进行操作。

通过 SSH 从 Linux 系统连接到测试虚拟机

您可以从具有与创建测试虚拟机时指定的公钥对应的私钥的 Linux 系统中建立该连接。

前提条件

确认您知道在创建测试虚拟机时指定的虚拟机 IP 地址和用户名。

过程

  1. 打开一个 bash shell。
  2. 在该 bash shell 的 $ 提示符下,按如下所示输入 ssh 命令,并将命令中的 testvmiptestvm_username 替换为测试虚拟机的 IP 地址和用户名:
    ssh testvm_username@testvmip
    例如,在使用 在您的 Microsoft Azure 订阅中创建测试虚拟机中的示例的测试虚拟机详细信息时,示例命令如下所示:
    ssh [email protected]

结果

在建立 SSH 连接后,将显示类似于以下屏幕截图的命令行窗口。
连接的 SSH 会话示例

下一步做什么

您现在已连接到测试虚拟机,您可以运行测试以检查您的 Microsoft Azure 环境中的网络连接。请按照运行测试以检查您的 Microsoft Azure 环境中的网络中所述的步骤进行操作。

运行测试以检查您的 Microsoft Azure 环境中的网络

您可以运行这些测试以验证是否正确配置了以下两个与网络相关的设置:DNS 可以解析内部和外部地址以及打开了所需的出站端口。您可以使用测试虚拟机运行这些测试。

容器依靠 DNS 解析内部和外部地址。此处的前两个测试检查在您的网络环境中配置的 DNS 是否可以解析内部和外部地址的已知 FQDN。

重要说明: 即使所有这些手动测试都成功,而如果通过内部部署网络向外传送所有流量并且仅允许经过身份验证的流量通过,但您没有在容器部署向导中提供值以使用代理,则容器部署可能会停滞在挂起状态。如果此描述符合您的情况,您必须从“入门”页面中删除容器,重新运行容器部署向导,然后指定所需的代理信息。

前提条件

在运行这些测试之前,确认在您的 Microsoft Azure 订阅中创建了一个测试虚拟机并建立到该虚拟机的 SSH 连接,如在您的 Microsoft Azure 订阅中创建测试虚拟机使用 SSH 连接到测试虚拟机中所述。

获取您希望能够从 VNet 中访问的网络内部服务器(如 Active Directory 域控制器)的 IP 地址和完全限定域名 (Fully Qualified Domain Name, FQDN)。您将在 DNS 验证测试中使用该信息。

过程

  1. 使用 dlg 命令查询 Microsoft Azure 中的 VNet 的内部已知域名,以检查 DNS 在您的环境中是否正常工作以解析内部 FQDN。
    在 SSH 连接窗口中,发出 dig 命令以查询您知道位于您的网络内部的服务器的域名,如 Active Directory 域控制器。
    dig internal-domain-name
    其中 internal-domain-name 是您知道位于您的网络内部的服务器的完全限定域名。

    dig (Domain Information Groper) 是一个用于网络故障排除的命令行工具。通过使用内部主机名运行该命令,结果将验证您的 DNS 配置是否可以正确解析内部地址。如果您的 DNS 配置可以解析在命令中使用的 internal-domain-name,命令输出将返回与该域名关联的正确 IP 地址。

    例如,假定为 VNet 配置了一个具有 Active Directory 域控制器的内部 Active Directory 服务器,其 DNS 条目为 skylo.local,IP 地址为 192.168.0.15。发出 dig skylo.local 将检查 VNet 的 DNS 配置是否可以解析该内部 skylo.local 服务器名称:
    testvmadmin@HCS-testingVM:~$ dig skylo.local
    
    ; <<>> DiG 9.10.3-P4-Ubuntu <<>> skylo.local
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 64899
    ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
    
    ;; OPT PSEUDOSECTION:
    ; EDNS: version: 0, flags:; udp: 4000
    ;; QUESTION SECTION:
    ;skylo.local.                   IN      A
    
    ;; ANSWER SECTION:
    skylo.local.            600     IN      A       192.168.0.15
    
    ;; Query time: 1 msec
    ;; SERVER: 192.168.0.15#53(192.168.0.15)
    ;; WHEN: Mon Mar 26 20:58:01 UTC 2018
    ;; MSG SIZE  rcvd: 56
    
    testvmadmin@HCS-testingVM:~$
    在 ANSWER SECTION 指示提供的主机名解析为该主机名所需的 IP 地址时,则测试成功。
    注: 有时,DNS 并不是 100% 可靠,某些请求解析正确,而其他请求失败。如果发出命令首次失败,请运行命令 10 到 20 遍,并查看是否每次都能获得可靠的响应。
  2. 使用 dlg 命令查询已知的外部域名,以检查 DNS 在您的环境中是否正常工作以解析外部 FQDN。
    在 SSH 连接窗口中,发出 dig 命令以查询外部行业标准域名,如 vmware.commicrosoft.com
    dig external-domain-name
    其中 external-domain-name 是 VNet 外部的完全限定域名。例如,发出 dig vmware.com 将检查 VNet 的 DNS 配置是否可以解析该外部名称:
    testvmadmin@HCS-testingVM:~$ dig vmware.com
    
    ; <<>> DiG 9.10.3-P4-Ubuntu <<>> vmware.com
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 38655
    ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1
    
    ;; OPT PSEUDOSECTION:
    ; EDNS: version: 0, flags:; udp: 4000
    ;; QUESTION SECTION:
    ;vmware.com.                    IN      A
    
    ;; ANSWER SECTION:
    vmware.com.             150     IN      A       107.154.105.19
    vmware.com.             150     IN      A       107.154.106.19
    
    ;; Query time: 28 msec
    ;; SERVER: 192.168.0.15#53(192.168.0.15)
    ;; WHEN: Mon Mar 26 21:14:29 UTC 2018
    ;; MSG SIZE  rcvd: 71
    
    testvmadmin@HCS-testingVM:~
    在上面的示例中,ANSWER SECTION 指示外部域名 vmware.com 正确解析为两个 IP 地址。
    注: 您可以使用不同的外部域名(如 azure.commicrosoft.com)重复该测试,以验证您的 DNS 是否可以解析不同的外部名称。
    如果 DNS 测试无法正常工作,请验证您的网络配置和 DNS 服务器。检查您是否将 DNS 服务器添加到 VNet 中。
    重要说明: 如果发现您需要将 DNS 服务器添加到 VNet 中,或者必须更改 VNet 的 DNS 服务器配置,您必须重新启动连接到该 VNet 的所有虚拟机以使它们获取更改。如果更改 VNet 的 DNS 服务器配置而未重新启动连接到该 VNet 的所有虚拟机,则不会在 VNet 上正确传播更改。
  3. 使用 netcat 命令检查所需的出站端口是否可用。
    Horizon Cloud 要求打开某些出站端口,以便安全地将容器软件下载到您的 Microsoft Azure 环境中,并且容器可以重新连接到 Horizon Cloud 控制平面。正如 第一代租户 - Horizon Cloud on Microsoft Azure 部署 - 主机名解析要求、DNS 名称中所述,需要从容器的管理子网中打开以下出站 TCP 端口:端口 80、443 和 11371。通过运行 netcat 命令(如以下命令中所示),您可以根据需要验证是否打开这些出站端口。
    在 SSH 连接窗口中,发出以下命令(每个端口一个)。
    注: 用于测试端口 11371 的以下命令指定 packages.microsoft.com 以测试该连接,而其他两行测试到 Horizon Cloud 控制平面的出站连接。
    testvmadmin@HCS-testingVM:~$ netcat -v -w 3 cloud.horizon.vmware.com 80
    Connection to cloud.horizon.vmware.com 80 port [tcp/http] succeeded!
    testvmadmin@HCS-testingVM:~$ netcat -v -w 3 cloud.horizon.vmware.com 443
    Connection to cloud.horizon.vmware.com 443 port [tcp/https] succeeded!
    testvmadmin@HCS-testingVM:~$ netcat -v -w 3 packages.microsoft.com 11371
    Connection to packages.microsoft.com 11371 port [tcp/hkp] succeeded!
    在正确打开端口后, netcat 命令为其测试返回 succeeded! 行。
    如果 netcat 命令返回失败,请检查您的 Microsoft Azure 网络连接、您的订阅中的网络安全组以及可能部署的任何防火墙。确保您的网络配置满足部署容器所需的 DNS、端口和协议要求,如 第一代租户 - Horizon Cloud on Microsoft Azure 部署 - 主机名解析要求、DNS 名称中所述。

结果

如果上述测试成功,则可以成功部署您的容器。

注: 如果要配置可选的功能(如 True SSO 或用于身份验证服务器的双因素身份验证)以用于您的容器,则可能需要使用额外的端口以用于这些用途。您可以使用上述出站端口测试方法验证是否正确打开这些端口。

下一步做什么

在完成测试时,应该从您的 Microsoft Azure 环境中删除测试虚拟机及其所有相关项目,例如,其虚拟机磁盘、IP 地址和网卡。理想情况下,您为测试虚拟机创建一个资源组,并直接删除该资源组以删除虚拟机的所有项目。按照在完成测试后删除测试虚拟机中的步骤操作。

重要说明: 如果没有从 Microsoft Azure 环境中删除测试虚拟机的所有项目,并且已将该虚拟机连接到容器的某个子网,在稍后尝试使用容器上的 删除操作从 Horizon Cloud 环境中删除该容器时,由于这些剩余的连接项目,系统可能无法完全删除该容器。默认情况下,在使用 删除操作删除容器时, Horizon Cloud 将删除为该容器创建的那些资源组和子网。Microsoft Azure 禁止删除仍在使用的子网。如果测试虚拟机的项目已连接到容器的子网,则无法删除这些子网,因而将无法完全删除该容器。为防止出现这种情况,请确保在成功部署容器后删除测试虚拟机的所有项目。

在完成测试后删除测试虚拟机

在完成测试以检查 Microsoft Azure 网络配置并且不再需要使用测试虚拟机时,您应该从 Microsoft Azure 环境中删除该虚拟机及其所有相关的项目。

重要说明: 如果没有从 Microsoft Azure 环境中删除测试虚拟机的所有项目,并且已将该虚拟机连接到容器的某个子网,在稍后尝试使用容器上的 删除操作从 Horizon Cloud 环境中删除该容器时,由于这些剩余的连接项目,系统可能无法完全删除该容器。默认情况下,在使用 删除操作删除容器时, Horizon Cloud 将删除为该容器创建的那些资源组和子网。Microsoft Azure 禁止删除仍在使用的子网。如果测试虚拟机的项目已连接到容器的子网,则无法删除这些子网,因而将无法完全删除该容器。为防止出现这种情况,请确保在成功部署容器后删除测试虚拟机的所有项目。

过程

  1. 登录到 Microsoft Azure 门户。
  2. 使用以下方法之一删除测试虚拟机,具体取决于部署该虚拟机的方式。
    • 如果将测试虚拟机部署到其自己的资源组中,并且未将该组用于任何其他用途,您可以删除整个资源组。
      小心: 要避免误删除其他项目,请确保资源组仅包含测试虚拟机及其关联的对象(如其磁盘和网络适配器),然后再删除资源组。
    • 如果您需要删除测试虚拟机而不删除整个资源组,您可以使用门户的搜索框搜索测试虚拟机的名称。此搜索的结果将列出该虚拟机及其所有关联的对象(磁盘、网络接口、公共 IP 地址等)。然后,分别删除每个对象。