我想运行go install
来安装tour,但我找不到使用代理进行互联网访问的选项。我不仅仅需要这次巡演,而是一般来自Go的开发。
如何配置Go以使用代理。
答案 0 :(得分:86)
Go程序了解环境变量http_proxy
和no_proxy
,但这还不够,因为go get
使用源代码管理器来检索代码。因此,您还必须为SCM设置HTTP代理设置。对Mercurial使用this,为Git使用this。
http_proxy
值可以像http://user:password@host:port/
。用户,密码和端口部分是可选的。 no_proxy
是以逗号分隔的服务器列表,不应通过代理连接。它的值可以像foo.com,bar.net:4000
。
您可以在bash_profile
中设置这些环境变量,但如果您想将其使用限制为go
,则可以像这样运行:
$ http_proxy=127.0.0.1:8080 go get code.google.com/p/go.crypto/bcrypt
如果这是您一直想要的,请设置此别名以避免每次都键入代理部件:
$ alias go='http_proxy=127.0.0.1:8080 go'
从现在开始,您可以正常使用go
,但它会使用您的HTTP代理。
答案 1 :(得分:3)
您还可以使用https://github.com/cyfdecyf/cow/
将http请求映射到socks5流量 如果你被GFW阻止,非常方便
答案 2 :(得分:1)
您可能要检查https://github.com/hmgle/graftcp,
$ graftcp-local/graftcp-local -h
Usage of graftcp-local/graftcp-local:
-config string
Path to the configuration file
-listen string
Listen address (default ":2233")
-logfile string
Write logs to file
-loglevel value
Log level (0-6) (default 1)
-pipepath string
Pipe path for graftcp to send address info (default "/tmp/graftcplocal.fifo")
-service string
Control the system service: ["start" "stop" "restart" "install" "uninstall"]
-socks5 string
SOCKS5 address (default "127.0.0.1:1080")
-syslog
Send logs to the local system logger (Eventlog on Windows, syslog on Unix)
如果您已经有可以在1080上收听的shadowsocks,则无需提供任何参数,只需运行graftcp-local
即可代理go get
$ ./graftcp go get -v golang.org/x/net/proxy
答案 3 :(得分:0)
这对我有用:
alias go='http_proxy=http://127.0.0.1:1081/ https_proxy=http://127.0.0.1:1081/ no_proxy=localhost,127.0.0.0/8,::1 go'
注意:对某些人来说,协议可能不同https_proxy=http://127.0.0.1:1081
答案 4 :(得分:0)
在Windows命令行上:
set http_proxy=http://[user]:[pass]@[proxy_ip]:[proxy_port]/
set https_proxy=http://[user]:[pass]@[proxy_ip]:[proxy_port]/
...然后导航到https://github.com/并下载GitHub证书(我将名称设置为goland_cert.cer
)
...现在执行OpenSSL命令以将其导出为PEM格式
openssl x509 -inform der -in goland_cert.cer -out goland_cert.pem
...最终在git global config中设置证书
git config --global http.sslCAInfo C:/Users/[User]/certs/golang_cert.pem
答案 5 :(得分:0)
在系统变量中将GOPROXY
变量名和变量值添加为your proxy
。这对我有用。
答案 6 :(得分:0)
我在Win10系统下用Go命令设置了一些变量解决了这个问题
Here ("Using the cf CLI with a Proxy Server") 您可以找到下面描述的信息和图片。您还可以阅读以下信息:
我在这个答案中只包含了关于 W10 的信息,因为这是我测试过的。
设置新的路径变量。
path
https_proxy
http://yourUserName:userNamePassword@yourIPaddress:port
我测试了 go 的安装命令行。
打开控制台,输入:go install github.com/isacikgoz/gitbatch/cmd/gitbatch@latest
这是这个项目的一个例子:https://github.com/isacikgoz/gitbatch
这适用于我特定的 W10 19043 系统。
答案 7 :(得分:-1)
git config [--global] http.proxy http://proxy.example.com:port
git config [--global] https.proxy http://proxy.example.com:port