Go get命令使用socket代理的方法

由于某些不可描述的原因,国内使用 go get 命令安装某些包的时候会超时导致失败,比如 net 包、 sys 包、 tools 包等。第一种解决办法就是自己从git上下载后添加链接到 GOPATH 中,比如:

git clone https://github.com/golang/net.git $GOPATH/src/github.com/golang/net
git clone https://github.com/golang/sys.git $GOPATH/src/github.com/golang/sys
git clone https://github.com/golang/tools.git $GOPATH/src/github.com/golang/tools
ln -s $GOPATH/src/github.com/golang $GOPATH/src/golang.org/
cd $GOPATH/src/golang.org/ && mv golang x

另外就是使用代理,网上大多是使用http代理,这里记录下如何使用socket代理。 go get 命令其实也是利用了 git 命令进行下载,不过下载后会自动编译安装,所以首先设置git的代理:

git config --global http.proxy socks5://127.0.0.1:7070

然后

http_proxy=socks5://127.0.0.1:7070 go get xxxx

就可以了。

恢复的话可以重置git配置:

git config --global --unset http.proxy

go get命令使用socket代理

由于某些不可描述的原因,国内使用 go get 命令安装某些包的时候会超时导致失败,比如 net 包、 sys 包、 tools 包等。第一种解决办法就是自己从git上下载后添加链接到 GOPATH 中,比如:

git clone https://github.com/golang/net.git $GOPATH/src/github.com/golang/net
git clone https://github.com/golang/sys.git $GOPATH/src/github.com/golang/sys
git clone https://github.com/golang/tools.git $GOPATH/src/github.com/golang/tools
ln -s $GOPATH/src/github.com/golang $GOPATH/src/golang.org/
cd $GOPATH/src/golang.org/ && mv golang x

另外就是使用代理,网上大多是使用http代理,这里记录下如何使用socket代理。 go get 命令其实也是利用了 git 命令进行下载,不过下载后会自动编译安装,所以首先设置git的代理:

git config --global http.proxy socks5://127.0.0.1:7070

然后

http_proxy=socks5://127.0.0.1:7070 go get xxxx

就可以了。

恢复的话可以重置git配置:

git config --global --unset http.proxy

下面看下go get 使用代理的方法

众所周知的原因,go get命令在提取一些工程或依赖时(如golang.org域名)被墙掉。通过使用vpn或代理的方法可以解决。

买VPN

这个就不多说了,买vpn,相当于直接连接。

使用代理

通过shell环境变量

export http_proxy=http://ip:port
go get golang.org/xxx

通过设置git代理

这也是go官方指导。

git config –global http.proxy 'http://127.0.0.1:8087'
go get golang.org/xxx

若使用goagent代理,请使用设置git代理的方式,且额外执行以下脚本再go get:

git config --global http.sslCAinfo 'pathto/XX-Net-3.6.15/data/gae_proxy/CA.crt'

总结

以上所述是小编给大家介绍的Go get命令使用socket代理,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

(0)

相关推荐

  • Go语言中利用http发起Get和Post请求的方法示例

    关于 HTTP 协议 HTTP(即超文本传输协议)是现代网络中最常见和常用的协议之一,设计它的目的是保证客户机和服务器之间的通信. HTTP 的工作方式是客户机与服务器之间的 "请求-应答" 协议. 客户端可以是 Web 浏览器,服务器端可以是计算机上的某些网络应用程序. 通常情况下,由浏览器向服务器发起 HTTP 请求,服务器向浏览器返回响应.响应包含了请求的状态信息以及可能被请求的内容. Go 语言中要请求网页时,使用net/http包实现.官方已经提供了详细的说明,但是比较粗略,

  • Go语言服务器开发实现最简单HTTP的GET与POST接口

    本文实例讲述了Go语言服务器开发实现最简单HTTP的GET与POST接口.分享给大家供大家参考.具体分析如下: Go语言提供了http包,可以很轻松的开发http接口.以下为示例代码: 复制代码 代码如下: package webserver    import (      "encoding/json"      "fmt"      "net/http"      "time"  )    func WebServerB

  • Go语言Web编程实现Get和Post请求发送与解析的方法详解

    本文实例讲述了Go语言Web编程实现Get和Post请求发送与解析的方法.分享给大家供大家参考,具体如下: 这是一篇入门文章,通过一个简单的例子介绍Golang的Web编程主要用到的技术. 文章结构包括: 1. Client-Get 请求 2. Client-Post 请求 3. Server 处理 Get 和 Post 数据 在数据的封装中,我们部分采用了json,因而本文也涉及到Golang中json的编码和解码. 一.Client-Get 复制代码 代码如下: package main i

  • golang基于websocket实现的简易聊天室程序

    本文实例讲述了golang基于websocket实现的简易聊天室.分享给大家供大家参考,具体如下: 先说点无关的,最近忙于工作没有更新博客,今天休息顺便把golang websocket研究了一下,挺好玩的,写了一个聊天室,分享给大家. websocket包 : code.google.com/p/go.net/websocket 文档 : http://go.pkgdoc.org/code.google.com/p/go.net/websocket 首先安装websocket包 复制代码 代码

  • $_GET['goods_id']+0 的使用详解

    目的: 为了防止sql注入,tid,goods_id都是正整数类型,防止人为了在后面追加 ?tid=1 or 1 这样的语句.原理: 不管你的参数多么险恶,+0后都老老实实变成数值类型 比如 '?tid=1 or 1' , $_GET['tid']+0 后值变成1; 有学生问,你为什么不用(int)强转或intval来转换.1: 用哪种方式,目的都是一样的2: 用+0,只需要打2个字符,用(int)要打5个,intval()要打8个.3: 对于+0,我不需要关心$tid是整型还是浮点型,还是大于

  • go的websocket实现原理与用法详解

    本文实例讲述了go的websocket实现原理与用法.分享给大家供大家参考,具体如下: websocket分为握手和数据传输阶段,即进行了HTTP握手 + 双工的TCP连接 RFC协议文档在:http://tools.ietf.org/html/rfc6455 握手阶段 握手阶段就是普通的HTTP 客户端发送消息: GET /chat HTTP/1.1 Host: server.example.com Upgrade: websocket Connection: Upgrade Sec-WebS

  • Django objects.all()、objects.get()与objects.filter()之间的区别介绍

    前言 本文主要介绍的是关于Django objects.all().objects.get()与objects.filter()直接区别的相关内容,文中介绍的非常详细,需要的朋友们下面来一起看看详细的介绍: 示例代码 ret=UserInfo.objects.all() all返回的是QuerySet对象,程序并没有真的在数据库中执行SQL语句查询数据,但支持迭代,使用for循环可以获取数据. ret=UserInfo.objects.get(id='1') get返回的是Model对象,类型为

  • 利用Go语言搭建WebSocket服务端方法示例

    Go 搭建一个简单 WebSocket 服务端代码例子 test.go, 如下: package main import ( "fmt" "log" "net/http" "golang.org/x/net/websocket" ) func Echo(ws *websocket.Conn) { var err error for { var reply string if err = websocket.Message.Re

  • Go语言基于Socket编写服务器端与客户端通信的实例

    在golang中,网络协议已经被封装的非常完好了,想要写一个Socket的Server,我们并不用像其他语言那样需要为socket.bind.listen.receive等一系列操作头疼,只要使用Golang中自带的net包即可很方便的完成连接等操作~ 在这里,给出一个最最基础的基于Socket的Server的写法: 复制代码 代码如下: package main  import (      "fmt"      "net"      "log"

  • 利用dep代替go get获取私有库的方法教程

    前言 go get 用来动态获取远程代码包的,目前支持的有BitBucket.GitHub.Google Code和Launchpad.这个命令在内部实际上分成了两步操作:第一步是下载源码包,第二步是执行go install.下载源码包的go工具会自动根据不同的域名调用不同的源码工具,对应关系如下: BitBucket (Mercurial Git) GitHub (Git) Google Code Project Hosting (Git, Mercurial, Subversion) Lau

  • 使用Node.js和Socket.IO扩展Django的实时处理功能

    今天,我们的目标是使用Django,Redis,和Socket.IO建立一个实时的聊天室.虽然几乎所有的Web应用程序都可以建立一个聊天室的.这篇文章将以较高的水平告诉你如何将基于REST的应用程序转换成一个实时的Web应用程序的.我会使用Django创建REST的部分,实际上自由地使用任何你舒服的语言/框架均可.接下来,让我们跳进代码,先列举我们所需要的部分. 组成: Django 1.4+ Redis 2.6.x (版本可选,但是建议使用) Redis-py 2.7.x (仅当你使用Redi

随机推荐