### [代理IP怎么配Go语言HTTP客户端?net/http标准库和第三方包的代理设置](https://www.jiyueip.com/article/13783) **Published:** 2026-07-30T11:02:56 **Author:** 斑斓助理 **Excerpt:** Go语言写的采集工具或API代理——标准库net/http代理配置和Python/Node.js不太一样。本文讲清Go的三种代理配置方式。 方法一:环境变量 // 程序启动前设环境变量 os.Setenv(“HTTP_PROXY”, “ht Go语言写的采集工具或API代理——标准库net/http代理配置和Python/Node.js不太一样。本文讲清Go的三种代理配置方式。 ## 方法一:环境变量 ``` // 程序启动前设环境变量 os.Setenv("HTTP_PROXY", "http://代理IP:端口") os.Setenv("HTTPS_PROXY", "http://代理IP:端口") // Go的http.DefaultTransport自动读取这些环境变量 ``` ## 方法二:自定义Transport ``` proxyURL, _ := url.Parse("http://用户名:密码@代理IP:端口") transport := &http.Transport{ Proxy: http.ProxyURL(proxyURL), } client := &http.Client{Transport: transport} resp, _ := client.Get("https://ip.sb") ``` ## 方法三:SOCKS5代理 ``` import "golang.org/x/net/proxy" dialer, _ := proxy.SOCKS5("tcp", "代理IP:端口", &proxy.Auth{User: "用户名", Password: "密码"}, proxy.Direct) transport := &http.Transport{Dial: dialer.Dial} client := &http.Client{Transport: transport} ``` 天行IP(邀请码 **blsj**,月付6元起)静态节点在Go里配SOCKS5做采集代理。 ## 并发采集的代理池 维护多个代理URL→每个goroutine随机取一个→控制并发数匹配代理上限。Goroutine天生的并发能力配合多代理IP横向扩展。 ## 常见问题 ### Go代理认证信息能不能不写明文? 从环境变量或配置文件读取代理URL。不要硬编码在代码里。 ### Transport需要复用吗? 需要——一个http.Client重复使用会自动复用TCP连接(Keep-Alive)。不要每个请求创建新的Client。 **Tags:** HTTP代理, SOCKS5代理, 代理IP **Categories:** 行业洞察 ---