作为国内开发者,经常遇到一个问题,就是一片热血撞死在伟大的**墙上,只能干着急,下面我们得想办法翻过这个**墙,毕竟我们出去后只是为了干好事儿。
go get是怎么运行的
通常会使用http的方式去访问目的地址,然后下载下来。但是内部可能用使用git clone的方式去克隆,既然这样,我们解决办法就是让http和git clone都能同时走上代理,这样就能解决卡死的烦恼
有一个http代理
假如已有 http代理是: http://localhost:8118/,后续我们就用这个地址去代理 如果没有http代理,只有socket5代理,需要看下面步骤进行转换 如果连socket5代理也没有,就需要先花钱买或者找一些免费的
socket5代理转成http代理(如果已经有http代理,可以忽略转换过程)
如果我们手头只有socket5的代理, 但是go get只能用http方式代理,怎么办呢? 假设已有socket5代理: localhost:1080 希望有一个http代理: http://localhost:8118/ 那么我们就得想办法把socket5转成http代理,目前可以通过开源软件polipo实现,可以参考http://cattalker.blog128.fc2blog.us/blog-entry-6.html, 以window为例,linux的配置方式也一样
1. 下载http://dl.dropbox.com/u/1663058/Polipo.rar并解压到polipo
2. cd polipo 并修改polipo.conf
proxyAddress = "127.0.0.1"
proxyPort = 8118 #最终的http代理端口
#将socket5转成http
socksParentProxy = "localhost:1080" #我们已有的socket代理
socksProxyType = socks5
3. 启动代理 polipo.exe -c polipo.conf
配置代理
第一步. 配置go get 第二步. 配置git clone
让go get用上http代理:
- windows:
go get前设置代理: 执行
set http_proxy=http://localhost:8118/
set https_proxy=http://localhost:8118
,然后go get就会走代理了 - linux:
go get前设置代理: 执行
export http_proxy=http://localhost:8118/
,export https_proxy=http://localhost:8118/
然后go get就会走代理了
- windows:
go get前设置代理: 执行
让git clone用上socket5/http代理:
windows/linux:
- 修改 $USER/.gitconfig
添加配置项如下:当git clone的时候就会走代理了,当不需要代理的时候可以注释掉
[https] proxy = http://localhost:8118 #注意没有引号 [http] proxy = http://localhost:8118
有疑问加站长微信联系(非本文作者)
好的东西我都赞。
visual studio code:
.vscode\launch.json: "env": { "https_proxy" : "http://127.0.0.1:1080" },
我一般vpn全局走出去