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

时间:2012-04-30 11:55:19

标签: go

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

如何配置Go以使用代理。

8 个答案:

答案 0 :(得分:86)

Go程序了解环境变量http_proxyno_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") 您可以找到下面描述的信息和图片。您还可以阅读以下信息:

  • https_proxy 的格式
  • 将 SOCKS5 与 cf v3-ssh 结合使用
  • 在 Mac OS 或 Linux 中设置 https_proxy

我在这个答案中只包含了关于 W10 的信息,因为这是我测试过的。

Windows 10

设置新的路径变量。

  • 在搜索框中,输入 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

请参阅https://github.com/golang/go/wiki/GoGetProxyConfig