-
2020-06-08 16:30:13
我们知道从 Go 1.11 版本开始,官方支持了 go module 包依赖管理工具。
其实还新增了 GOPROXY 环境变量。如果设置了该变量,下载源代码时将会通过这个环境变量设置的代理地址,而不再是以前的直接从代码库下载。这无疑对我等无法科学上网的开发良民来说是最大的福音。
更可喜的是,goproxy.io 这个开源项目帮我们实现好了我们想要的。该项目允许开发者一键构建自己的 GOPROXY 代理服务。同时,也提供了公用的代理服务 https://goproxy.io,我们只需设置该环境变量即可正常下载被墙的源码包了:
$ export GOPROXY=https://goproxy.io
不过,需要依赖于 go module 功能。可通过 export GO111MODULE=on 开启 MODULE。如果项目不在 GOPATH 中,则无法使用 go get ...,但可以使用 go mod ... 相关命令。
也可以通过置空这个环境变量来关闭,export GOPROXY=。
对于 Windows 用户,可以在 PowerShell 中设置:
$env:GOPROXY = "https://goproxy.io" 最后,我们当然推荐使用 GOPROXY 这个环境变量的解决方式,前提是 Go version >= 1.11。
更多相关内容 -
goproxy:Go的HTTP代理库
2021-02-24 08:21:06介绍 软件包goproxy为Go(golang)提供了可自定义...从gopkg.in/elazarl/goproxy.v1获取最新的gopkg.in/elazarl/goproxy.v1 。 为什么不使用Fiddler2? Fiddler是具有相似意图的出色软件。 但是,Fiddler并不像gopro -
goproxy:反向代理身份验证服务器(golang)
2021-03-17 17:15:50Goproxy -导入“ github.com/autom8ter/goproxy” 用法 键入GoProxy type GoProxy struct { } GoProxy是可配置的单目标反向代理HTTP处理程序,与net / http http.Handler接口兼容 func NewGoProxy func ... -
goproxy:Go HTTP(S)代理库, 支持中间人代理解密HTTPS
2021-05-01 17:12:47goproxy Go HTTP(S)代理库, 支持中间人代理解密HTTPS 安装 go get github.com/ouqiang/goproxy 使用 package main import ( "net/http" "time" "github.com/ouqiang/goproxy" ) func main() { proxy := goproxy.... -
通过GOPROXY代理来解决无法安装Go插件和依赖的问题
2021-01-07 17:13:32文章目录通过GOPROXY代理来解决无法安装Go插件和依赖的问题 通过GOPROXY代理来解决无法安装Go插件和依赖的问题 因为网络原因,在VS Code或直接运行go install命令无法安装Go插件和依赖时,可以通过设置GOPROXY代理的... -
GoProxy:golang实现的高性能代理服务器-开源
2021-06-15 11:15:26GoProxy是一款高性能的http代理、https代理、socks5代理、ss代理、websocket代理、tcp代理、udp代理、游戏盾、游戏代理。 支持正向代理、反向代理、透明代理、internet nat 代理、https 代理负载均衡、http 代理负载... -
goproxy:极简的Go模块代理处理程序
2021-02-03 14:28:14Goproxy 一个极简的Go模块代理处理程序。 Goproxy已完全实施。 我们的目标是找到最简单的方法来提供一个极简主义的处理程序,该处理程序可以用作想要构建自己的代理的人的全功能Go模块代理。 是啊,没有Makefile ... -
goproxy proxygo 6.0 for windows
2018-09-07 19:31:02智能HTTP,SOCKS5代理,会自动判断访问的网站是否屏蔽,如果被屏蔽那么就会使用上级代理(前提是配置了上级代理)访问网站;如果访问的网站没有被屏蔽,为了加速访问,代理会直接访问网站,不使用上级代理. ... -
goproxy:基于QUIC和SOCKS5的安全代理
2021-02-13 19:08:02Goproxy 基于SOCKS5和QUIC的安全代理。 客户端侦听新连接,然后通过QUIC将它们转发到远程服务器。 服务器充当SOCKS5服务器,但处理快速连接而不是TCP连接。 另外,服务器使用客户端证书进行客户端身份验证。 要求 ... -
GO GOPROXY代理设置
2022-04-28 10:13:58GO GOPROXY一 背景:
当你执行go get命令的时候显示超时proxy.golang.org --> timeout
leyangjundeMacBook-Pro:photo leyangjun$ go get -u github.com/spf13/cobra
go get -u github.com/spf13/cobrago get github.com/spf13/cobra: module github.com/spf13/cobra: Get https://proxy.golang.org/github.com/spf13/cobra/@v/list: dial tcp 142.251.10.141:443: i/o timeout
二:原因
https://proxy.golang.org/github.com/ 国内无法访问
三:换成国内可访问的地址,设置GOPROXY代理
go env -w GOPROXY=https://goproxy.cn,direct
go env -w GOSUMDB=off (关闭包的有效性验证)
go env -w GOSUMDB="sum.golang.google.cn" (也可设置国内提供的sum 验证服务)
备注:-w 标记 要求一个或多个形式为 NAME=VALUE 的参数且覆盖默认的设置
-
Linux之CentOS上部署安装goproxy服务端
2021-05-14 02:08:45#wget https://storage.googleapis.com/golang/go1.5.linux-amd64.tar.gz #如果速度不行用本站地址wget http://www.dwhd.org/script/tar_gz_bz2/go1.5.linux-amd64.tar.gztar xf go1.5.linux-amd...摘要
技术永远不在一个人手上,感谢这些人对我们作出的伟大贡献。
#wget https://storage.googleapis.com/golang/go1.5.linux-amd64.tar.gz #如果速度不行用本站地址
wget http://www.dwhd.org/script/tar_gz_bz2/go1.5.linux-amd64.tar.gz
tar xf go1.5.linux-amd64.tar.gz -C /usr/local
echo "export GOROOT=/usr/local/go
export PATH=\$PATH:\$GOROOT/bin
export GOPATH=/home/go" >/etc/profile.d/go.sh
. /etc/profile.d/go.sh
go get github.com/shell909090/goproxy
cd /home/go/src/github.com/shell909090/goproxy
go get github.com/miekg/dns
go get github.com/op/go-logging
mkdir -p /usr/local/goproxy/{bin,config}
echo "export PATH=\$PATH:/usr/local/goproxy/bin" > /etc/profile.d/goproxy.sh
. /etc/profile.d/goproxy.sh
go build -o /usr/local/goproxy/bin/goproxy github.com/shell909090/goproxy/goproxy
chmod +x /usr/local/goproxy/bin/goproxy
yum install lrzsz -y
sz /usr/local/goproxy/bin/goproxy.exe /usr/local/goproxy/bin/goproxy_x64.exe \
/home/go/src/github.com/shell909090/goproxy/debian/routes.list.gz#下载客户端到本地
1080U2B 毫无压力
本站已经编译好了各种版本
http://www.dwhd.org/goproxy/goproxy_linux_386
http://www.dwhd.org/goproxy/goproxy_linux_amd64
http://www.dwhd.org/goproxy/goproxy_windows_386.exe
http://www.dwhd.org/goproxy/goproxy_windows_amd64.exe
http://www.dwhd.org/goproxy/goproxy_darwin_386
http://www.dwhd.org/goproxy/goproxy_darwin_amd64
http://www.dwhd.org/goproxy/goproxy_freebsd_386
http://www.dwhd.org/goproxy/goproxy_freebsd_amd64
http://www.dwhd.org/goproxy/goproxy_arm
http://www.dwhd.org/goproxy/goproxy_arm64
各种平台交叉编译方法
GOOS=linux GOARCH=386 go build -o bin/goproxy_linux_386 github.com/shell909090/goproxy/goproxy
GOOS=darwin GOARCH=386 go build -o bin/goproxy_darwin_386 github.com/shell909090/goproxy/goproxy
GOOS=freebsd GOARCH=386 go build -o bin/goproxy_freebsd_386 github.com/shell909090/goproxy/goproxy
GOOS=windows GOARCH=386 go build -o bin/goproxy_windows_386.exe github.com/shell909090/goproxy/goproxy
GOOS=linux GOARCH=amd64 go build -o bin/goproxy_linux_amd64 github.com/shell909090/goproxy/goproxy
GOOS=darwin GOARCH=amd64 go build -o bin/goproxy_darwin_amd64 github.com/shell909090/goproxy/goproxy
GOOS=freebsd GOARCH=amd64 go build -o bin/goproxy_freebsd_amd64 github.com/shell909090/goproxy/goproxy
GOOS=windows GOARCH=amd64 go build -o bin/goproxy_windows_amd64.exe github.com/shell909090/goproxy/goproxy
GOOS=linux GOARCH=arm go build -o bin/goproxy_arm github.com/shell909090/goproxy/goproxy
GOOS=linux GOARCH=arm64 go build -o bin/goproxy_arm64 github.com/shell909090/goproxy/goproxy
真正的用法在下面~~
mkdir -p {/usr/local/goproxy/{bin,config},/tmp/goproxy}
cd /tmp/
echo "export PATH=\$PATH:/usr/local/goproxy/bin" > /etc/profile
source /etc/profile
if [ ! -x /usr/local/goproxy/bin/goproxy ]; then
[ "$(getconf LONG_BIT)" = "64" ] && wget -4cq http://www.dwhd.org/goproxy/goproxy_linux_amd64 -O /usr/local/goproxy/bin/goproxy
[ "$(getconf LONG_BIT)" = "32" ] && wget -4cq http://www.dwhd.org/goproxy/goproxy_linux_386 -O /usr/local/goproxy/bin/goproxy
/usr/local/goproxy/bin/goproxy
fi
UserName=`date +%s%N | sha256sum | base64 | head -c 16`
PassWord=`date +%s%N | sha256sum | base64 | head -c 16`
Key=`head -c 16 /dev/random | base64`
IPaddress=`curl -4s curlip.me|awk '{print $2;exit}'`
cat >/usr/local/goproxy/config/config.json<< EOF
{
"mode": "server",
"listen": ":5233",
"logfile": "",
"loglevel": "WARNING",
"adminiface": "127.0.0.1:5234",
"cipher": "aes",
"key": "$Key",
"passwd": {
"$UserName": "$PassWord"
}
}
EOF
cat >/tmp/goproxy/config.json<< EOF
{
"mode": "http",
"listen": ":5233",
"server": "$IPaddress:5233",
"logfile": "./goproxy.log",
"loglevel": "NOTICE",
"adminiface": "127.0.0.1:5234",
"dnsnet": "internal",
"cipher": "aes",
"key": "$Key",
"blackfile": "./routes.list.gz",
"username": "$UserName",
"password": "$PassWord"
}
EOF
wget http://www.dwhd.org/goproxy/routes.list.gz -O /tmp/goproxy/routes.list.gz
wget http://www.dwhd.org/goproxy/RunHiddenConsole.exe -O /tmp/goproxy/RunHiddenConsole.exe
yum install tofrodos -y
echo '@echo off
+>./goproxy.log
RunHiddenConsole ./goproxy.exe -config ./config.json' > /tmp/goproxy/GoProxy.bat
unix2dos -k /tmp/goproxy/GoProxy.bat
[ "$(getconf LONG_BIT)" = "32" ] && wget -4cq http://www.rarlab.com/rar/rarlinux-5.2.1.tar.gz
[ "$(getconf LONG_BIT)" = "64" ] && wget -4cq http://www.rarlab.com/rar/rarlinux-x64-5.2.1.tar.gz
tar xf rarlinux*.tar.gz && cd rar && make
rar a goproxy_client.rar goproxy
-
go111 module、goproxy以及结合Goland使用
2022-03-26 12:00:43go moudles:简单点说,go moudles就是golang的包依赖管理。在之前,依赖管理一直使go语言被诟病,go语言从1.11开始支持使用go moudles,从1.13开始强推go moudles。因此,使用go moudles的前提为go语言版本为1.11+Go Moudles
前言
首先,明白什么是go moudles:
简单点说,go moudles就是golang的包依赖管理。在之前,依赖管理一直使go语言被诟病,go语言从1.11开始支持使用go moudles,从1.13开始强推go moudles。
因此,使用go moudles的前提为go语言版本为1.13及以上。
Go Modules 可以提升使用其他开发者代码,即添加依赖项(模块、包)时的体验,同时让代码的正确性、安全性得到保障。并且 Go Modules 可以使用 GOPROXY 环境变量来解决中国大陆无法使用 go get 的问题。一、go111 module与goproxy配置
1、Windows下,使用powershell来进行操作。
powershell的打开方式,可以是:1)win + R
2)输入:powershell就可以见到如下界面:
2、可以通过 “go env” 来查看自己的相关配置:
3、关于“ GO111MODULE ”
GO111MODULE 是一个开关,通过它可以开启或关闭 go mod 模式。
它有三个可选值:off、on、auto:1)GO111MODULE=off禁用模块支持,编译时会从GOPATH和vendor文件夹中查找包。
2)GO111MODULE=on启用模块支持,编译时会忽略GOPATH和vendor文件夹,只根据 go.mod下载依赖。
3)GO111MODULE=auto,当项目在$GOPATH/src外且项目根目录有go.mod文件时,自动开启模块支持。我们在使用go moudles时,要确保“GO111MODULE=on”。所以,我们可以通过上一步的参数信息来进行观察:
上图表明,“GO111MODULE已经符合要求,就接着跳转到下一步。否则,我们要先对它进行设置:
go env -w GO111MODULE=on
4、设置“Goproxy”
下依赖可能会遇到被墙的问题,可以通过设置代理 GOPROXY:设置代理:
go env GOPROXY=下面代理的其中一个:htps://goproxy.io
https://goproxy.cn (七牛云)
https://mirrors.aliyun.com/go…(阿里云)
https://mirrors.cloud.tencent…(腾讯云)
https://athens.azurefd.net(微软)
https://gocenter.io解读:
go env -w GOPROXY=…:设置 GOPROXY 代理。
这里主要涉及到两个值:
1)第一个是 例如:https://goproxy.cn,它是由七牛云背书的一个强大稳定的 Go 模块代理,可以有效地解决你的外网问题;
2)第二个是 direct,它是一个特殊的 fallback 选项,它的作用是用于指示 Go 在拉取模块时遇到错误会回源到模块版本的源地址去抓取(比如 GitHub 等)
注意:本来我采用的是:goproxy.io,direct
但是,后来发现这个代理还是go get不到东西。所以,后来改成了七牛云的goproxy.cn,direct二、初始化项目
命令:
go mod init <模块名>
差找到的解释为:
1)进入到项目目录下,例如 cd C:\Users…,初始化mod:go mod init
2)模块名可选,如果当前项目不是在GOPATH下,需要提供模块名,一般是根目录名,生成的文件内容
3)go mod init [MODULE_PATH]:初始化 Go modules,它将会生成 go.mod 文件,需要注意的是 MODULE_PATH 填写的是模块引入路径,你可以根据自己的情况修改路径转化一下,我自己对它的理解就是:
1) 在init mod之前,其实你已经在创建了一个项目了,例如:project1
或者:
那么,你需要在你的项目中,初始化一下go mod。
所以,可以选择使用命令行的方式,在该项目下创建一个“go.mod”。
打开该go.mod文件,发现里边的内容是:
2)可以试用一下(通过在powershell执行命令行来进行试用):
下载一个数据库的驱动:go get github.com/go-sql-driver/mysql
<1>如果失败,会显示下面的内容:
分析原因:可能是因为选择的代理,goproxy不太对。可以换一个代理,试一下。
<2>如果成功,
会发现go.mod 文件中会多出下载的内容:
三、在GoLand 中设置开启Go Modules
在Goland中如果不进行相关设置的话,项目会报红:
所以,一定要在Goland中进行相关的设置。具体步骤如下:先File -> Settings -> Go -> Go Moudles:
再进行如下三步:
这时,项目就会正常了。并且可以在go.mod中,看到前边举例下载的 第三方的数据库驱动:
补充说明:
前面使用 “go get” 下载的包被放在了$GOPATH/pkg/mod下,项目会自动寻找并引用它,在External Libraries可以看到当前tproject1 项目所引用的包:
四、直接创建使用Go Moudles的project
实际上,如果IDE是Goland的话,在创建新项目时,选择左边的Go Modules即可创建一个已经配置好go.mod文件的项目:
会生成一个:
且:
此上,就完成了go moudles的创建。五、引入依赖
在项目的go.mod中,通过以下格式引入第三方的库,就可以实现依赖导入:
假设想引入的依赖是:github.com/emicklei/go-restful/v3
刚导入的时候,会爆红。这时候我们需要下载相关的第三方工具,才可以解决:
1、方式一(快捷选项):
1)由于上面已经完成了
Preferences -> Go -> Go Modules (vgo) 的设置,所以此处忽略
2)进行如上设置后,就可以在导入不在缓存中的包时,点击 Sync packages of… 下载该包了:
3)第三方依赖引入成功,代码不再爆红:
2、方式二(控制台):
<1>点击左下角的Terminal,并输入:go get github.com/emicklei/go-restful/v3
=》说明:github.com/emicklei/go-restful/v3,代指想要引入的第三方工具
<2>导入完成:
六、其它补充说明
1、go 的包依赖管理中,还有一个 “rename”机制:
当同一个名称的包太多时,不方便直接引用。就可以将该包进行重命名,就可以跟同名的其他包区分开来。格式如下:
在引用时,举例使用go-restful框架:import ( restfulv3 "github.com/emicklei/go-restful/v3" )
-
1.4 Go语言从入门到精通:Go代理goproxy
2021-03-24 22:45:03在逐步编写Go程序时,会涉及使用到第三方提供的Go依赖...本文将会介绍一种Go代理 goproxy 的方式来解决上述问题,让你既不花钱,又能快速下载安装。 1、goproxy.cn 介绍 Go的1.11版本以后可以设置环境变量 GOPROXY,来 -
开源项目-bestmethod-goproxy.zip
2019-09-03 14:59:46开源项目-bestmethod-goproxy.zip,GIthub - goproxy - lightweight and stable reverse proxy with auto cert -
go1.13使用私有goproxy缓存加快依赖下载速度
2021-01-08 02:59:57开发者在自己的电脑设置GOPROXY,Go Module的缓存保存在本地,多人开发时人人都要下载到自己本地,这样遇到网络不好的时候就很不好,另外CI/CD的时候又要重新下载,为了提高依赖的下载速度,所以要在内网搭建一个... -
配置GOPROXY
2021-08-12 15:39:49Golang推荐使用go mod管理依赖,而默认GoPROXY配置是:GOPROXY=https://proxy.golang.org,direct,国内访问不到,所以推荐使用https://goproxy.io或https://goproxy.cn。 执行下面的命令修改GOPROXY: win+r cmd go... -
【Go】goproxy设置
2022-02-12 09:13:05国内用户如果出现 go mod download 无法下载依赖的,执行下面的命令。 go env -w GOPROXY="https://goproxy.cn, direct -
goproxy:Go模块的全局代理
2021-02-04 11:12:40GOPROXY Go模块的全局代理。 参见: : 要求 It invokes the local go command to answer requests. The default cacheDir is GOPATH, you can set it up by yourself according to the situation. 建立 git clone ... -
go proxy 代理
2021-07-06 09:45:24https://goproxy.cn/ Go 1.13 及以上(推荐) 打开你的终端并执行 $ go env -w GO111MODULE=on $ go env -w GOPROXY=https://goproxy.cn,direct 完成。 macOS 或 Linux 打开你的终端并执行 $ export GO111... -
干货满满的 Go Modules 和 goproxy.cn
2019-09-30 00:58:12大家好,我是一只普通的煎鱼,周四晚上很有幸邀请到 goproxy.cn 的作者 @盛傲飞(@aofei) 到 Go 夜读给我们进行第 61 期 《Go Modules、G... -
goproxy gitlab 搭建go 私有仓库
2021-08-30 23:32:09192.168.0.60 gitea gitlab 和 安装nginx 和 go px 代理环境 192.168.0.61 或windows 机器,作为客户端. # vi /etc/sysconfig/network-scripts/ifcfg-ens33 # systemctl restart network # hostnamectl set-hostname ... -
配置GOPROXY安装VScode的go语言开发插件
2022-04-14 12:42:39如果不配置GOPROXY,则在安装下列go插件时会报访问相关网站超时失败。解决办法如下。 操作 打开windows powershell窗口,输入如下命令: $env:GO111MODULE="on" $env:GOPROXY="https://goproxy.cn" go ... -
Goproxy 中国
2021-04-13 11:24:42$ go env -w GOPROXY=https://goproxy.cn,direct 完成。 macOS 或 Linux 打开你的终端并执行 $ export GO111MODULE=on $ export GOPROXY=https://goproxy.cn 或者 $ echo "export GO111MODULE=on" >> ... -
【go】配置goproxy
2021-05-28 00:31:14版本要求 >= 1.13 0、查看配置 go env // Windows 1、开启go module ...2、配置goproxy 阿里代理 go env -w GOPROXY=https://mirrors.aliyun.com/goproxy/ // Windows export GOPROXY=https:// -
golang:环境变量GOPROXY和GO111MODULE设置
2021-09-23 20:20:48我们安装完golang后,我们在windows的cmd命令下就可以直接查看和使用go命令和环境变量了,同样的在linux下可以在控制台使用,如下图所示: C:\Users\lijie1>go env set GO111MODULE= set GOARCH=amd64 set GOBIN= ... -
go mod 与 goproxy 的使用
2019-11-19 11:01:25go modules是 golang 1.11 新加的特性,Modules官方定义为: 模块是相关Go包的集合。modules是源代码交换和版本控制的单元。 go命令直接支持使用modules, 包括记录和解析对其他模块的依赖性。modules替换旧的基于... -
Go语言GOPROXY设置
2021-01-21 06:47:161.首先开启go module go env -w GO111MODULE=on /...2.配置goproxy: 阿里配置: go env -w GOPROXY=https://mirrors.aliyun.com/goproxy/ // Windows export GOPROXY=https://mirrors.aliyun.com/goproxy/ -
【树莓派4】基于GoProxy的内网穿透/代理服务部署 | Raspberrypi4
2021-12-07 22:09:18我们需要借助代理服务来帮我们实现请求转移,像Nginx,Apache等代理服务器也有代理功能,但是更多负责的是“负载均衡”,花生壳有流量限制不适用,所以我们选择给树莓派部署开源的goproxy。