go run 如何走代理?
go 语言写的东西,要访问 xxx.com,后面发现 xxx.com 被墙了,于是尝试
proxychains go run main.go,但是还是不能访问 xxx.com,浏览器
访问就没事,确认代理没有问题,那么问题出在哪里?有懂的大佬吗?
设置 HTTP_PROXY 和 HTTPS_PROXY 环境变量
环境变量或者直接 http client 里面设置 proxy
net 包可以设置 proxy
以前设置过这里,好像别的软件配置就出问题,不敢动这里
看了一下,好像不是很适应,不知道有没有其他的工具 可以强制 go 走代理
用临时的啊,只对你这个命令生效的,你如果用的是 linux 或者 mac ,直接用 export HTTP_PROXY= 127.0.0.1:8080 然后再执行你的 go run 就可以了,这个是只对当前 shell 生效的
好的 我尝试一下
或者直接这样就可以了,只对当前命令有效 HTTP_PROXY= 127.0.0.1:8080 HTTPS_PROXY= q127.0.0.1:8080 go run main.go
linux/mac 运行这个命令:bash -c "export http_proxy= 127.0.0.1:8080 && export https_proxy= 127.0.0.1:8080 && go run main.go"
可以在代码里面初始化的时候设置一下:func init() { os.Setenv("http_proxy", " 127.0.0.1:8080")}
golang http.Client 可以设置 http 代理补充:golang 是静态编译的,proxychains 无效的
HTTP_PROXY 这些变量之所以有效,是因为代码里面读了这个变量、然后 set 自己的 proxy 啊…你现在代码是自己写的,就应该自己实现 HTTP_PROXY ,或者找一个支持的库直接封装了 HTTP_PROXY 的
可以直接使用 surge 或者 clashx pro 的增强模式
graftcp 代替 proxychains
你代码里面请求的时候有个参数使用系统代理,具体可以搜一下,然后配上楼上的环境变量就可以了
这个以前用过,昨天整了一天,忘了怎么用了,尴尬
用 tun 设备或者 iptables 设置透明代理
感觉好多人都被网上“命令行翻墙”的教程误导了,甚至不知道这只是环境变量
楼上就有不少这种脚本小子😂
直接用系统全局代理模式不行?你要访问 xxx.com 的话是不是得用 http 请求,直接把 http 请求设置成走代理?func ProxyHttpDo(method, reqURL, reqData string, header map[string]string) (body []byte, err error) { // 创建代理地址 proxyUrl, err := url.Parse(" 127.0.0.1:7890") if err != nil { panic(err) } // 创建 Transport 对象并将代理地址分配给它的 Proxy 字段 transport := &http.Transport{Proxy: http.ProxyURL(proxyUrl)} // 创建一个 http.Client 对象,并将 Transport 分配给它的 Transport 字段 client := &http.Client{Transport: transport} req, err := http.NewRequest(method, reqURL, strings.NewReader(reqData)) if err != nil { // handle error return nil, err } //req.Header.Set("Content-Type", "application/x-www-form-urlencoded") //req.Header.Set("Cookie", "name=anny") req.Header.Set("Origin", " www.google.com") //授权头信息 req.Header.Set("Referer", " www.google..com/") //授权头信息 if len(header) > 0 { log.Printf("has header--->") for k, v := range header { log.Printf("header[%s]=>[%s]\n", k, v) req.Header.Set(k, v) } } resp, err := client.Do(req) if err != nil { return nil, err } defer resp.Body.Close() body, err = io.ReadAll(resp.Body) log.Printf("body:%s\n", string(body)) if err != nil { // handle error return nil, err } return}
1.飞书会议&腾讯会议如何使用 2.exchange 邮箱如何使用会议室预定和日历管理 3.一个显示器 1080p ,一个 4k ,另外经常涉及开会外接投影仪,如何设置(这块 …
起因是在一个讨论机场的帖子里看到有个人发推广,说是稳定邀请制的,我信了。打开站点之后联系到了站长,试了两天买了 3 个月的套餐,10 月 31 日微信红包的形式发给了站长,因为…
U7 + 32G 刚到手体验了一小时,替换掉 2023 款联想 Yoga 14 至尊版。吐槽一下 首先是压感触控板,我用过 2023 款的,我知道前代触控板相比 Mac 糟糕不…