为 Azure Stack HCI 配置代理设置

适用于:Azure Stack HCI 版本 22H2

本文介绍如何在网络使用代理服务器进行 Internet 访问时为 Azure Stack HCI 配置代理设置。

有关出站终结点的防火墙要求以及 Azure Stack HCI 的内部规则和端口的信息,请参阅 Azure Stack HCI 的防火墙要求

准备阶段

在开始配置代理设置之前,请确保:

  • 有权访问为其配置代理设置的 Azure Stack HCI 群集。 同时具有用于访问 Azure Stack HCI 群集中的服务器的本地管理员凭据。

  • 知道代理服务器名称或 IP 地址和端口(可选)。 如果未获得此信息,请与网络管理员联系。

下面是配置代理设置之前需要注意的其他一些注意事项:

  • 了解 Azure Stack HCI 不同组件和功能的代理设置是独立的。 必须为计划使用的所有必需组件和任何其他功能配置代理设置。

  • 为了简化管理,我们建议在不同的组件和功能中保留相同的代理配置。

  • 由于与存储经身份验证的用户凭据相关的安全问题,我们不支持经身份验证的代理。

Azure Stack HCI 的代理需求

如果网络使用代理服务器进行 Internet 访问,则必须为 Azure Stack HCI 配置以下代理:

  • Azure Stack HCI 操作系统的代理。 需要此代理才能成功注册。
  • 已启用 Azure Arc 的服务器代理。 需要此代理才能成功注册。
  • Microsoft 更新和群集云见证的代理。 仅当使用 Microsoft 更新和群集云见证时,才需要此代理。
  • Azure 服务的代理。 仅当使用任何其他功能(例如 Azure Kubernetes 服务 (AKS) 混合、Azure Arc VM 管理或 Azure Monitor)时,才需要此代理。

以下部分介绍如何配置其中每个代理设置。

为 Azure Stack HCI 操作系统配置代理设置

必须先为 Azure Stack HCI 操作系统配置代理,然后才能将群集注册到 Azure

安装 WinInetProxy 模块以运行本部分中的命令。 有关该模块及其安装方法的信息,请参阅 PowerShell 库 | WinInetProxy 0.1.0。 有关 WinInetProxy PowerShell 脚本的信息,请参阅 WinInetProxy.psm1

注意

如果因不能访问 Internet 而无法将 WinInetProxy 模块安装到群集节点,建议你将该模块下载到管理计算机,然后手动将其传输到要运行该模块的群集节点。 还可以使用 Start-BitsTransfer PowerShell cmdlet 在管理计算机和服务器之间传输一个或多个文件。 若要为 Azure Stack HCI 操作系统配置代理设置,请在群集中的每台服务器上以管理员身份运行以下 PowerShell 命令:

  1. 通过远程桌面协议 (RDP) 连接到 Azure Stack HCI 群集中的服务器,然后打开 PowerShell 会话。

  2. 若要在安装 WinInetProxy 模块后配置代理设置,请运行以下 cmdlet:

    Set-WinInetProxy -ProxySettingsPerUser 0 -ProxyServer <Proxy_Server_Address:Proxy_Port> -ProxyBypass <URLs to bypass>
    

    其中:

    • ProxySettingsPerUser 指定代理设置是基于计算机还是基于用户。

      • 0 - 代理设置基于计算机。
      • 1(默认)- 代理设置基于用户。
      • 如果未提供任何值,则改用环境变量 ProxySettingsPerUser(如果存在)。
    • ProxyServer 以 [Proxy_Server_Address]:[Proxy_Port] 格式指定代理服务器终结点。 例如 proxy.contoso.com:8080

    • ProxyBypass 指定绕过由 -ProxyServer 参数设置的代理服务器的主机 URL 列表。 例如,可以设置 -ProxyBypass <local> 以绕过本地 Intranet URL。

    以下是命令使用情况的示例:

    Set-WinInetProxy -ProxySettingsPerUser 0 -ProxyServer proxy.contoso.com:8080 -ProxyBypass "localhost,127.0.0.1,.svc,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,*.contoso.com"
    

若要删除代理配置,请不带参数运行 PowerShell 命令 Set-WinInetProxy

为已启用 Azure Arc 的服务器配置代理设置

必须先为已启用 Azure Arc 的服务器配置代理,然后才能将群集注册到 Azure

若要设置代理服务器环境变量,请在群集中的每台服务器上以管理员身份运行以下命令:

# If a proxy server is needed, execute these commands with the proxy URL and port.
[Environment]::SetEnvironmentVariable("HTTPS_PROXY", "http://ProxyServerFQDN:port", "Machine")
$env:HTTPS_PROXY = [System.Environment]::GetEnvironmentVariable("HTTPS_PROXY", "Machine")
[Environment]::SetEnvironmentVariable("HTTP_PROXY", "10.10.42.200:8080/", "Machine")
$env:HTTP_PROXY = [System.Environment]::GetEnvironmentVariable("HTTP_PROXY", "Machine")
# For the changes to take effect, the agent services need to be restarted after the proxy environment variable is set.
Restart-Service -Name himds, ExtensionService, GCArcService

通过运行以下命令确认已应用设置:

echo "https :" $env:https_proxy "http :" $env:http_proxy

若要设置无代理环境变量,请在群集中的每台服务器上以管理员身份运行以下命令:

$no_proxy = "localhost,127.0.0.1,.svc,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,.contoso.com"
[Environment]::SetEnvironmentVariable("NO_PROXY", $no_proxy, "Machine")

若要删除代理配置,请在群集中的每台服务器上以管理员身份运行以下命令:

[Environment]::SetEnvironmentVariable("HTTPS_PROXY", $null, "Machine") 
$env:HTTPS_PROXY = [System.Environment]::GetEnvironmentVariable("HTTPS_PROXY", "Machine")
# For the changes to take effect, the agent services need to be restarted after the proxy environment variable removed. 
Restart-Service -Name himds, ExtensionService, GCArcService

若要详细了解已启用 Azure Arc 的服务器的代理配置,请参阅管理和维护 Connected Machine 代理

为 Microsoft 更新和群集云见证配置代理设置

可以使用 WinHTTP autoproxy 自动为 Microsoft 更新和群集云见证配置代理设置,也可以使用 netsh 命令行实用工具手动执行此操作。

  • 若要为 Microsoft 更新和群集云见证手动配置代理配置,请在命令提示符处键入:

    netsh winhttp set proxy Proxy_Server_Address:Proxy_Port
    
  • 若要查看或验证当前的 WinHTTP 代理配置,请在命令提示符处键入:

    netsh winhttp show proxy
    
  • 若要指定绕过代理服务器的主机 URL 列表,请在命令提示符下键入:

    netsh winhttp set proxy Proxy_Server_Address:Proxy_Port bypass-list="<URL to bypass>"
    
  • 若要改为在计算机级别为当前用户配置 Internet Explorer (IE) 代理设置,请将 WinInet 代理配置导入到 WinHTTP中。 为此,请在命令提示符下键入:

    netsh winhttp import proxy source=ie
    
  • 若要为 Microsoft 更新和群集云见证删除代理配置,请在命令提示符处键入:

    netsh winhttp reset proxy
    

为 Azure 服务配置代理设置

如果使用或计划使用以下任何 Azure 服务,请参阅以下文章,了解如何为每个 Azure 服务配置代理服务器设置:

后续步骤

有关详细信息,请参阅: