全部產品
Search
文件中心

Alibaba Cloud SDK:代理配置

更新時間:Oct 12, 2025

在軟體開發中,代理就像是一個“中間人”,它幫我們控制對某個功能或資源的訪問。使用代理可以實現許可權檢查、記錄動作記錄、快取資料、消極式載入等功能,而不用改動原來的代碼。這樣可以讓程式更安全、運行更快,也更容易維護和擴充。本文為您介紹V2.0 Go SDK對於代理的配置方式。

代理類型

支援配置HTTP代理、HTTPS代理和SOCKS5代理。在實際使用中,建議選擇其中一種代理使用。

代理類型

描述

HTTP代理

通過參數 httpProxy 配置Proxy 伺服器地址和連接埠,格式為:http://<IP地址>:<連接埠>,僅對HTTP協議的請求生效。

HTTPS代理

通過參數 httpsProxy 配置Proxy 伺服器地址和連接埠,格式為:http://<IP地址>:<連接埠>,僅對HTTPS協議的請求生效。

SOCKS5代理

使用SOCKS5代理時,需要同時設定 socks5Proxy和 Socks5NetWork 兩個參數,其中socks5Proxy用於配置Proxy 伺服器地址和連接埠,格式為:socks5://<IP地址>:<連接埠>Socks5NetWork用於指定傳輸協議,如TCP或UDP。

說明

若Proxy 伺服器要求身份認證才能進行訪問,請在IP地址前添加Proxy 伺服器配置的使用者名稱和密碼,格式為:http://<user>:<password>@<IP地址>:<連接埠>socks5://<user>:<password>@<IP地址>:<連接埠>

此外,在使用HTTP代理或HTTPS代理時,可通過參數noProxy指定無需通過代理訪問的地址清單,多個地址之間用逗號分隔,支援網域名稱和IP地址格式。

代理配置方式

說明

代理配置優先順序:RuntimeOptions配置 -> Config配置 -> 環境變數配置,優先順序依次降低。

  • 通過環境變數配置。

    說明

    SOCKS5代理配置參數不支援使用環境變數。

    • 通過環境變數參數HTTP_PROXYhttp_proxy指定Proxy 伺服器地址。

    • 通過環境變數參數HTTPS_PROXYhttps_proxy指定Proxy 伺服器地址。

    • 通過環境變數參數NO_PROXYno_proxy指定無需通過代理訪問的地址清單。

  • 通過運行時參數(RuntimeOptions)配置代理,僅對使用了該運行時參數的請求有效。

    import (
        util "github.com/alibabacloud-go/tea-utils/v2/service"
        openapi "github.com/alibabacloud-go/darabonba-openapi/v2/client"
        "github.com/alibabacloud-go/tea/tea"
    )
    
    config := &openapi.Config{
        Protocol: tea.String("https"),
    }
    
    runtime := &util.RuntimeOptions{
        // 使用時需修改請求協議(Protocol),httpsProxy僅對https協議有效,httpProxy僅對http協議有效。
        HttpProxy:  tea.String("http://127.0.0.1:9898"),
        HttpsProxy: tea.String("http://127.0.0.1:8989"),
        
        NoProxy:    tea.String("127.0.0.1,localhost"),
    
        // SOCKS5代理
        // Socks5Proxy:   tea.String("socks5://127.0.0.1:8989"),
        // Socks5NetWork: tea.String("tcp"), 
    }
    
  • 在初始化雲產品用戶端執行個體時,通過Config配置代理,對所有請求都生效。

    範例程式碼如下:

    import (
        openapi "github.com/alibabacloud-go/darabonba-openapi/v2/client"
        "github.com/alibabacloud-go/tea/tea"
    )
    
    config := &openapi.Config{
        // httpsProxy僅對https協議有效,httpProxy僅對http協議有效。
        Protocol: tea.String("https"),
    
        // HTTP代理
        HttpProxy:  tea.String("http://127.0.0.1:9898"),
        // HTTPS代理
        HttpsProxy: tea.String("http://127.0.0.1:8989"),
        
        NoProxy:    tea.String("127.0.0.1,localhost"),
    
        // SOCKS5代理
        // Socks5Proxy:   tea.String("socks5://127.0.0.1:8989"),
        // Socks5NetWork: tea.String("tcp"),
    }
    

相關文檔

代理配置相關實踐文檔,請參見HTTP代理配置實踐