如何配置go命令以使用代理?

oer*_*ers 45 go

我想运行go install安装游览,但我找不到使用代理进行互联网访问的选项.我不仅仅需要这次巡演,而是一般来自Go的开发.

如何配置Go以使用代理.

Mos*_*afa 91

围棋程序理解环境变量http_proxyno_proxy,而是因为这还不够,go get使用源代码控制管理器检索代码.因此,您还必须为SCM设置HTTP代理设置.使用为水银和这个 GIT中.

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
Run Code Online (Sandbox Code Playgroud)

如果这是您一直想要的,请设置此别名以避免每次都键入代理部分:

$ alias go='http_proxy=127.0.0.1:8080 go'
Run Code Online (Sandbox Code Playgroud)

从现在开始,您可以go正常使用,但它使用您的HTTP代理.

  • 但是如果socks5怎么办? (5认同)
  • @Meow Best是使用像"privoxy"或"torsocks"这样的工具来提供它作为工具的HTTP代理. (3认同)
  • `set http_proxy=127.0.0.1:8080` 和 `set https_proxy=127.0.0.1:8080` 如果你在 Windows 上。 (3认同)
  • 如果您使用 `go get`、`go mod tidy` 等,所有请求都会通过 Go 代理 `GO_PROXY`,默认情况下为:https://proxy.golang.org,您可以指定 `GO_NO_PROXY` 直接转到指定的网址。`HTTP_PROXY` 和 `NO_PROXY` 是两个不同的变量,它们用于 http 传输。 (2认同)

keo*_*eos 8

这对我有用:

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'
Run Code Online (Sandbox Code Playgroud)

注意:对于某些人来说,协议可能会有所不同https_proxy=http://127.0.0.1:1081


Luc*_*Liu 5

您还可以使用https://github.com/cyfdecyf/cow/将http请求映射到socks5流量

如果您被 GFW 阻止,非常方便

  • 最好添加一些有助于“go get”命令的细节 (3认同)

Mar*_*rco 5

在 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