> 作为国内开发者,经常遇到一个问题,就是一片热血撞死在伟大的\*\*墙上,只能干着急,下面我们得想办法翻过这个\*\*墙,毕竟我们出去后只是为了干好事儿。
## 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就会走代理了
* 让git clone用上socket5/http代理:
* windows/linux:
1. 修改 $USER/.gitconfig
2. 添加配置项如下:当git clone的时候就会走代理了,当不需要代理的时候可以注释掉
```
[https]
proxy = http://localhost:8118 #注意没有引号
[http]
proxy = http://localhost:8118
```
有疑问加站长微信联系(非本文作者)