还在为go get github.com/...卡死而烦恼么

ygqwan · 2016-11-17 04:32:14 · 14544 次点击 · 大约8小时之前 开始浏览    置顶
这是一个创建于 2016-11-17 04:32:14 的主题,其中的信息可能已经有所发展或是发生改变。

作为国内开发者,经常遇到一个问题,就是一片热血撞死在伟大的**墙上,只能干着急,下面我们得想办法翻过这个**墙,毕竟我们出去后只是为了干好事儿。

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
        

有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

14544 次点击  ∙  3 赞  
加入收藏 微博
3 回复  |  直到 2018-02-27 10:08:47
wangxingge
wangxingge · #1 · 8年之前

好的东西我都赞。

raidsan
raidsan · #2 · 7年之前

visual studio code:

.vscode\launch.json: "env": { "https_proxy" : "http://127.0.0.1:1080" },

jthmath
jthmath · #3 · 7年之前

我一般vpn全局走出去

添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传