管理和维护 Azure 已连接机器代理设置

若要将代理配置为通过代理服务器与服务通信或在部署后删除此配置,请使用本文中所述的方法之一。 在此方案中,代理使用 HTTP 协议进行出站通信。

您可以使用azcmagent config命令或系统环境变量来配置代理设置。 如果在代理配置和系统环境变量中指定代理服务器,则代理配置优先并成为有效设置。 使用 azcmagent show 查看代理的有效代理配置。

Note

启用Azure Arc的服务器不支持将 Log Analytics 网关用作 Connected Machine 代理的代理。

代理特定的代理配置

特定于代理的代理配置是配置代理服务器设置的首选方法。 此方法从 Azure Connected Machine 代理版本 1.13 开始可用。 使用特定于代理的代理配置有助于防止 Azure Connected Machine 代理的代理设置干扰系统上的其他应用程序。

Note

部署到已启用 Azure Arc 的服务器的某些扩展不会继承代理特定配置。 有关为扩展配置代理设置的指导,请参阅部署的每个扩展的文档。

若要将代理配置为通过代理服务器进行通信,请运行以下命令:

azcmagent config set proxy.url "http://ProxyServerFQDN:port"

可以使用 IP 地址或简单主机名代替 FQDN(如果你的网络要求你这样做)。 如果代理服务器在端口 80 上运行,则可以在末尾省略“:80”。

要检查代理设置中是否配置了代理服务器 URL,请运行以下命令:

azcmagent config get proxy.url

要阻止代理通过代理服务器进行通信,请运行以下命令:

azcmagent config clear proxy.url

使用 azcmagent config 命令重新配置代理设置时,无需重启任何服务。

专用终结点的代理跳过

从代理版本 1.15 开始,可以指定不应使用指定代理服务器的服务。 此配置有助于处理分割网络设计和专用终结点方案,在这些方案中,希望 Microsoft Entra ID 和 Azure 资源管理器 的流量通过代理服务器进入公共终结点,而希望 Azure Arc 的流量跳过代理,直接与网络上的专用 IP 地址进行通信。

代理绕过功能不要求输入要绕过的特定 URL。 而是提供不应使用代理服务器的任何服务的名称。 位置参数是指已启用 Arc 的服务器的 Azure 区域。

将代理绕过值设置为 ArcData只会绕过 SQL Server 的 Azure 扩展的流量,而不是 Arc 代理。

代理跳过值 受影响的终结点
AAD login.chinacloudapi.cn
login.partner.microsoftonline.cn
pas.chinacloudapi.cn
ARM management.chinacloudapi.cn
AMA global.handler.control.monitor.azure.cn
<virtual-machine-region-name>.handler.control.monitor.azure.cn
<log-analytics-workspace-id>.ods.opinsights.azure.cn
management.chinacloudapi.cn
<virtual-machine-region-name>.monitoring.azure.cn
<data-collection-endpoint>.<virtual-machine-region-name>.ingest.monitor.azure.cn
Arc his.arc.azure.cn
guestconfiguration.azure.cn

1代理绕过值在 Azure Connected Machine 代理版本 1.36 和用于 SQL Server 的 Azure 扩展版本 1.1.2504.99 中开始可用。 早期版本中,“Arc”代理旁路值包含了由Azure Arc终结点启用的SQL Server。

若要通过代理服务器发送 Microsoft Entra ID 和 Azure 资源管理器 流量,但不通过代理发送 Azure Arc 流量,请运行以下命令:

azcmagent config set proxy.url "http://ProxyServerFQDN:port"
azcmagent config set proxy.bypass "Arc"

若要提供服务的列表,请用逗号分隔服务名称:

azcmagent config set proxy.bypass "ARM,Arc"

若要清除代理绕过,请运行以下命令:

azcmagent config clear proxy.bypass

可以通过运行 azcmagent show 来查看有效的代理服务器和代理绕过配置。

Windows环境变量

在 Windows 上,Azure Connected Machine 代理首先检查 proxy.url 代理配置属性(从代理版本 1.13 开始),然后检查系统范围的 HTTPS_PROXY 环境变量,以确定要使用的代理服务器。 如果两者均为空,则代理不使用代理服务器,即使配置了默认Windows系统范围的代理设置也是如此。

建议使用特定于代理的代理配置,而不是系统环境变量。

若要设置代理服务器环境变量,请运行以下命令:

# 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")
# 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

若要将代理配置为停止通过代理服务器进行通信,请运行以下命令:

[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

Linux 环境变量

在 Linux 上,Azure Connected Machine 代理首先检查 proxy.url 代理配置属性(从代理版本 1.13 开始),然后检查为 himds、GC_Ext 和 GCArcService 守护程序设置的 HTTPS_PROXY 环境变量。 包含的脚本配置 systemd 的默认代理设置,以便计算机上的 Azure Connected Machine 代理和计算机上的所有其他服务使用指定的代理服务器。

若要将代理配置为通过代理服务器进行通信,请运行以下命令:

sudo /opt/azcmagent/bin/azcmagent_proxy add "http://ProxyServerFQDN:port"

若要删除环境变量,请运行以下命令:

sudo /opt/azcmagent/bin/azcmagent_proxy remove

从环境变量迁移到代理专用配置

如果已使用环境变量为 Azure Connected Machine 代理配置代理服务器,并且想要根据本地代理设置迁移到特定于代理的代理配置,请执行以下步骤:

  1. 将 Azure Connected Machine 代理升级到 最新版本。

  2. 通过运行 azcmagent config set proxy.url "http://ProxyServerFQDN:port",使用你的代理服务器信息配置代理程序。

  3. 按照适用于 WindowsLinux 的步骤删除未使用的环境变量。