go run 如何走代理?

2023-10-22 10:28:56 +08:00
 itakeman

go 语言写的东西,要访问 xxx.com,后面发现 xxx.com 被墙了,于是尝试

proxychains go run main.go,但是还是不能访问 xxx.com,浏览器 访问就没事,确认代理没有问题,那么问题出在哪里?有懂的大佬吗?

2393 次点击
所在节点    Go 编程语言
23 条回复
iSecret
2023-10-23 14:49:04 +08:00
net/http 默认会读取到环境 HTTP_PROXY 时自动配置,如果你使用了其他客户端,需要手动处理设置 HTTP_PROXY 的逻辑。
dyllen
2023-10-30 15:38:04 +08:00
这个我搞过,默认是读取系统环境变量,1 楼说的那样。

也可以自己代码里设置,设置 transport 的 proxy 属性:

Transport.(*http.Transport).Proxy = xxx

xxx 是一个函数,返回代理地址就可以了,支持 http ,https ,socks5 代理:

Proxy func(*Request) (*url.URL, error)
dyllen
2023-10-30 15:39:41 +08:00
修改默认 http client 的代理设置:

http.DefaultTransport.(*http.Transport).Proxy = xxx

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/984190

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX