設定 Azure 本機版本 23H2 的 Proxy 設定
適用於:Azure 本機版本 23H2
本文說明如果您的網路使用 Proxy 伺服器進行因特網存取,如何設定 Azure 本機 23H2 版雲端部署的 Proxy 設定。
如需輸出端點的防火牆需求,以及 Azure 本機的內部規則和埠的相關信息,請參閱 Azure 本機的防火牆需求。
開始之前
開始設定 Proxy 設定之前,請確定:
- 您可以存取您想要設定 Proxy 設定的 Azure 本機。 您也有本機系統管理員認證,可存取 Azure 本機電腦。
- 您知道 Proxy 伺服器名稱或 IP 位址和連接埠(選擇性)。 如果您沒有此資訊,請連絡您的網路管理員。
以下是設定 Proxy 設定之前要記住的一些重要考慮:
- 瞭解 Proxy 設定會針對 Azure Local (
WinInet
、WinHTTP
, 和Environment Variables
) 的不同元件和功能而不同。 您必須設定所有必要元件的 Proxy 設定,以及您打算使用的任何其他功能。 - 雖然每個元件都有特定的命令參數和 Proxy 略過清單字串需求,但我們建議在不同的元件和功能之間保留相同的 Proxy 元件。
- 由於安全性限制,我們不支援使用使用者名稱和密碼的已驗證 Proxy。
- 如果您在 Proxy 中使用 SSL 檢查,則必須略過必要的 Azure 本機及其元件(Arc Resource Bridge、Azure Kubernetes Service (AKS)等) 輸出 URL。
- 操作系統上的三個 Proxy 元件中每個都有特定的 Proxy 略過清單字串需求。 請勿針對這三個元件使用相同的字串。
設定 WinInet 的 Proxy 設定
您必須先設定 Proxy 設定, WinInet
才能 使用 Azure Arc 註冊機器。
安裝模組 WinInetProxy
以執行本節中的命令。 如需模組及其安裝方式的相關信息,請參閱 PowerShell 資源庫 |WinInetProxy 0.1.0。 如需 PowerShell 腳本的相關信息 WinInetProxy
,請參閱 WinInetProxy.psm1。
如果您因為沒有因特網存取而無法將模組安裝 WinInetProxy
到計算機,建議您將模組下載到您的管理計算機,然後手動將模組傳輸到您要執行模組的計算機。 您也可以使用 Start-BitsTransfer PowerShell Cmdlet,在管理系統與計算機之間傳輸一或多個檔案。
若要設定 Azure Stack HCI 作業系統的 Proxy 設定,請在系統中的每部電腦上以系統管理員身分執行下列 PowerShell 命令:
透過遠端桌面通訊協定 (RDP) 連線到 Azure 本機,然後開啟 PowerShell 會話。
若要在安裝
WinInetProxy
模組之後設定 Proxy 設定,請執行下列 Cmdlet:Set-WinInetProxy -ProxySettingsPerUser 0 -ProxyServer http://<Proxy_Server_Address:Proxy_Port> -ProxyBypass <URLs to bypass>
下表會說明這些參數:
參數 描述 ProxySettingsPerUser 指定 Proxy 設定是否為每部電腦或每個使用者:
- 0 - 每部機器都有 Proxy 設定。
- 1 (預設值) - Proxy 設定是每個使用者。
- 如果未提供任何值,ProxySettingsPerUser
則會改用環境變數,如果有的話。ProxyServer 以格式 http://[Proxy_Server_Address]:[Proxy_Port]
指定 Proxy 伺服器端點。 例如:http://proxy.contoso.com:8080
。ProxyBypass 指定略過 參數所 -ProxyServer
設定 Proxy 伺服器的主機 URL 清單。 例如,您可以設定-ProxyBypass “localhost”
為略過本機內部網路 URL。 在您的 Azure 本機上,清單必須包含:
- 至少每部計算機的IP位址。
- 至少系統IP位址。
- 至少您為基礎結構網路定義的IP。 使用這些IP的Arc資源網橋、AKS和未來的基礎結構服務需要輸出連線能力。
- 或者您可以略過整個基礎結構子網。
- 每部計算機的 NetBIOS 名稱。
- 系統的 NetBIOS 名稱。
- 任何主機或子域的域名或功能變數名稱,具有星號*
通配符。
以下是命令使用方式的範例:
Set-WinInetProxy -ProxySettingsPerUser 0 -ProxyServer http://192.168.1.250:8080 -ProxyBypass "localhost;127.0.0.1;*.contoso.com;node1;node2;192.168.1.*;s-cluster"
WinInet Proxy 略過清單字串考慮
設定 WinInet
Proxy 略過清單時,請記住下列幾點:
- 參數必須以逗號
,
或分號;
分隔。 - 不支援略過子網的 CIDR 表示法。
- 星號可用來做為通配符,以略過子網或功能變數名稱。 例如,
192.168.1.*
針對子網或*.contoso.com
功能變數名稱。 - 必須使用和埠指定
http://
Proxy 名稱。 例如:http://192.168.1.250:8080
。 - 設定 和
WinHTTP
時WinInet
,建議您使用相同的略過字串。 - Proxy 略過清單中不支援使用
<local>
字串。
檢視和移除 WinInet Proxy 設定
若要檢視或驗證目前的
WinInet
Proxy 組態,請在命令提示字元中輸入:PS C:\> Get-WinhttpProxy -Advanced Current WinHTTP proxy settings: Proxy Server(s) : http://192.168.1.250:8080 Bypass List : localhost;127.0.0.1;*. contoso.com;node1;node2;192.168.1.*;s-cluster PS C:\>
若要移除 Azure 本機更新和雲端見證的
WinInet
Proxy 組態,請在命令提示字元中輸入:PS C:\> Set-WinInetProxy Start proxy Configuration Proxy is Per User AutoDetect is 0 PACUrl is ProxyServer is ProxyBypass is Entered WriteProxySettingsHelper Entered WriteProxySettingsHelper Successfully set proxy PS C:\> Get-WinhttpProxy -Advanced
設定 WinHTTP 的 Proxy 設定
您必須先設定 Proxy 設定, WinHTTP
才能 使用 Azure Arc 註冊機器。
若要設定 Azure 本機更新和雲端見證的 WinHTTP
Proxy,請在系統中的每部計算機上以系統管理員身分執行下列 PowerShell 命令:
Set-winhttpproxy -proxyserver http://<Proxy_Server_Address:Proxy_Port> -BypassList <URLs to bypass>
下表會說明這些參數:
參數 | 描述 |
---|---|
ProxyServer | 以格式 http://[Proxy_Server_Address]:[Proxy_Port] 指定 Proxy 伺服器端點。 例如: http://proxy.contoso.com:8080 。 |
BypassList | 指定略過 參數所 -ProxyServer 設定 Proxy 伺服器的主機 URL 清單。 例如,您可以設定 -ProxyBypass "localhost" 為略過本機內部網路 URL。 在您的 Azure 本機上,清單必須包含:- 至少每部計算機的IP位址。 - 至少系統IP位址。 - 至少您為基礎結構網路定義的IP。 使用這些IP的Arc資源網橋、AKS和未來的基礎結構服務需要輸出連線能力。 - 或者您可以略過整個基礎結構子網。 - 每部計算機的 NetBIOS 名稱。 - 系統的 NetBIOS 名稱。 - 任何主機或子域的域名或功能變數名稱,具有星號 * 通配符。 |
以下是命令使用方式的範例:
Set-winhttpproxy -proxyserver http://192.168.1.250:8080 -BypassList "localhost;127.0.0.1;*.contoso.com;node1;node2;192.168.1.*;s-cluster"
WinHTTP Proxy 略過清單字串考慮
設定 WinHTTP
Proxy 略過清單字串時,請記住下列幾點:
- 參數必須以逗號
,
或分號;
分隔。 - 不支援略過子網的 CIDR 表示法。
- 星號可用來做為通配符,以略過子網或功能變數名稱。 例如,
192.168.1.*
針對子網或*.contoso.com
功能變數名稱。 - 必須使用和埠指定
http://
Proxy 名稱。 例如:http://192.168.1.250:8080
。 - 設定 和
WinHTTP
時WinInet
,建議您使用相同的略過字串。 - Proxy 略過清單中不支援使用
<local>
字串。
檢視和移除 WinHTTP Proxy 設定
若要檢視或驗證目前的
WinHTTP
Proxy 組態,請在命令提示字元中輸入:PS C:\> Get-WinhttpProxy -Default Current WinHTTP proxy settings: Proxy Server(s) : http://192.168.1.250:8080 Bypass List : localhost;127.0.0.1;*.contoso.com;node1;node2;192.168.1.*;s-cluster PS C:\>
若要移除 Azure 本機更新和雲端見證的
WinHTTP
Proxy 組態,請在命令提示字元中輸入:PS C:\> Reset-WinhttpProxy -Direct Current WinHTTP proxy settings: Direct access (no proxy server). PS C:\>
設定環境變數的 Proxy 設定
您必須先設定 Azure Resource Bridge 和 AKS 的 Proxy,才能 向 Azure Arc 註冊機器。
若要設定 Proxy 伺服器環境變數,請在系統中的每部電腦上以系統管理員身分執行下列命令:
# 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","http://ProxyServerFQDN:port", "Machine")
$env:HTTP_PROXY = [System.Environment]::GetEnvironmentVariable("HTTP_PROXY","Machine")
$no_proxy = "<bypassliststring>"
[Environment]::SetEnvironmentVariable("NO_PROXY",$no_proxy,"Machine")
$env:NO_PROXY = [System.Environment]::GetEnvironmentVariable("NO_PROXY","Machine")
下表會說明這些參數:
參數 | 描述 |
---|---|
HTTPS_PROXY變數 | 以格式 http://[Proxy_Server_Address]:[Proxy_Port] 指定 Proxy 伺服器端點。 例如: http://proxy.contoso.com:8080 。 |
HTTP_PROXY變數 | 以格式 http://[Proxy_Server_Address]:[Proxy_Port] 指定 Proxy 伺服器端點。 例如: http://proxy.contoso.com:8080 。 |
NO_PROXY變數 | 要略過本機內部網路 URL、網域和子網的字串。 在您的 Azure 本機上,清單必須包含: - 至少每部計算機的IP位址。 - 至少系統IP位址。 - 至少您為基礎結構網路定義的IP。 使用這些IP的Arc資源網橋、AKS和未來的基礎結構服務需要輸出連線能力。 - 或者您可以略過整個基礎結構子網。 - 每部計算機的 NetBIOS 名稱。 - 系統的 NetBIOS 名稱。 - 任何主機或子域具有點 . 通配符的功能變數名稱或功能變數名稱。- .svc 適用於內部 Kubernetes 服務流量。 |
以下是命令使用方式的範例:
[Environment]::SetEnvironmentVariable("HTTPS_PROXY", "http://192.168.1.250:8080", "Machine")
$env:HTTPS_PROXY = [System.Environment]::GetEnvironmentVariable("HTTPS_PROXY", "Machine")
[Environment]::SetEnvironmentVariable("HTTP_PROXY", "http://192.168.1.250:8080", "Machine")
$env:HTTP_PROXY = [System.Environment]::GetEnvironmentVariable("HTTP_PROXY", "Machine")
$no_proxy = "localhost,127.0.0.1,.svc,192.168.1.0/24,.contoso.com,node1,node2,s-cluster"
[Environment]::SetEnvironmentVariable("NO_PROXY", $no_proxy, "Machine")
$env:NO_PROXY = [System.Environment]::GetEnvironmentVariable("NO_PROXY", "Machine")
環境變數 Proxy 略過清單字串考慮
設定環境變數 Proxy 略過清單字串時,請記住下列幾點:
- 參數必須以逗號
,
分隔。 - 必須使用 CIDR 表示法來略過子網。
- 不支援星號
*
為通配符以略過子網或功能變數名稱。 .
點應作為通配符使用,以略過功能變數名稱或本地服務。 例如.contoso.com
或.svc
。- 您必須使用 指定
http://
Proxy 名稱,以及HTTP_PROXY和HTTPS_PROXY變數的埠。 例如:http://192.168.1.250:8080
。 .svc
略過是Linux表示法中的 AKS 內部服務通訊。 Arc Resource Bridge 和 AKS 需要此專案。- AKS 需要略過下列子網。 10.0.0.0/8、172.16.0.0/12 和 192.168.0.0/16。 如果未定義這些子網,這些子網就會自動新增至環境變數略過清單。
- Proxy 略過清單中不支援使用
<local>
字串。
確認並移除環境變數 Proxy 設定
若要確認已套用環境變數 Proxy 設定,請執行下列命令:
echo "https :" $env:https_proxy "http :" $env:http_proxy "bypasslist " $env:no_proxy
若要移除 Proxy 設定,請以系統管理員身分在系統中的每部電腦上執行下列命令:
[Environment]::SetEnvironmentVariable("HTTPS_PROXY", $null, "Machine") $env:HTTPS_PROXY = [System.Environment]::GetEnvironmentVariable("HTTPS_PROXY", "Machine") [Environment]::SetEnvironmentVariable("HTTP_PROXY", $null, "Machine") $env:HTTP_PROXY = [System.Environment]::GetEnvironmentVariable("HTTP_PROXY", "Machine")
設定已啟用 Arc 的伺服器代理程式的 Proxy 設定
若要設定已啟用 Azure Arc 的伺服器代理程式以透過 Proxy 伺服器通訊,請執行下列命令:
azcmagent config set proxy.url "http://ProxyServerFQDN:port"
如果您的網路需要,您可以使用 IP 位址或簡短的主機名稱來取代 FQDN。 如果您的 Proxy 伺服器在連接埠 80 上執行,您可以在結尾省略 ":80"。
若要檢查代理程式設定中是否已設定 Proxy 伺服器 URL,請執行下列命令:
azcmagent config get proxy.url
若要停止代理程式透過 Proxy 伺服器進行通訊,請執行下列命令:
azcmagent config clear proxy.url
使用 azcmagent config
命令重新設定 Proxy 設定時,您不需要重新啟動任何服務。
請檢閱已啟用 Arc 的伺服器代理程式頁面,以取得管理和維護連線機器代理程式的進一步詳細數據。
設定 Azure 服務的 Proxy 設定
如果您使用 或計劃使用下列任一 Azure 服務,請參閱下列文章,以取得如何為每個 Azure 服務設定 Proxy 伺服器設定的相關信息:
- Azure Kubernetes Service (AKS) 混合式
- Azure 虛擬桌面
- Azure 監視器代理程式
- Microsoft Defender
- Microsoft監視代理程式 (MMA 代理程序 即將淘汰。我們建議使用 Azure 監視器代理程式。
下一步
如需詳細資訊,請參閱
- Azure 本機的防火牆需求。