英文:
How do I configure go command to use a proxy?
问题
我想运行go install
来安装tour,但是我找不到使用代理服务器进行互联网访问的选项。我不仅仅需要这个选项来进行tour,还需要用于一般的Go开发。
如何配置Go使用代理服务器。
英文:
I want to run go install
to install the tour, but I can't find the option to use a proxy for internet access. I don't need this just for the tour but for developing in Go in general.
How do I configure Go to use a proxy.
答案1
得分: 139
Go程序可以理解环境变量http_proxy
和no_proxy
,但这还不够,因为go get
使用源代码管理器来检索代码。所以你还需要为你的源代码管理器设置HTTP代理设置。对于Mercurial,请使用这个,对于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
如果这是你总是想要的,可以设置这个别名来避免每次输入代理部分:
$ alias go='http_proxy=127.0.0.1:8080 go'
从现在开始,你可以正常使用go
,但它会使用你的HTTP代理。
英文:
Go programs understand environment variables http_proxy
and no_proxy
, but that's not enough because go get
uses source control managers for retrieving code. So you have to set HTTP proxy settings for your SCM too. Use this for Mercurial and this for Git.
http_proxy
value can be like http://user:password@host:port/
. User, password, and port parts are optional. no_proxy
is a comma-separated list of servers that should not be connected through proxy. Its value can be like foo.com,bar.net:4000
.
You can set these environment variables in your bash_profile
, but if you want to limit their usage to go
, you can run it like this:
$ http_proxy=127.0.0.1:8080 go get code.google.com/p/go.crypto/bcrypt
If that's what you always want, set this alias to avoid typing proxy part every time:
$ alias go='http_proxy=127.0.0.1:8080 go'
From now on you can use go
normally, but it uses your HTTP proxy.
答案2
得分: 9
在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全局配置中设置证书
git config --global http.sslCAInfo C:/Users/[User]/certs/golang_cert.pem
英文:
On Windows command line:
set http_proxy=http://[user]:[pass]@[proxy_ip]:[proxy_port]/
set https_proxy=http://[user]:[pass]@[proxy_ip]:[proxy_port]/
...then navigate to https://github.com/ and download the GitHub certificate (I set the name as goland_cert.cer
)
...now execute the OpenSSL command to export this to PEM format
openssl x509 -inform der -in goland_cert.cer -out goland_cert.pem
...finally set the certificate in git global config
git config --global http.sslCAInfo C:/Users/[User]/certs/golang_cert.pem
答案3
得分: 7
这对我有用:
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
英文:
This works for me:
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'
Note: for someones, protocol may be different https_proxy=http://127.0.0.1:1081
答案4
得分: 5
你还可以使用https://github.com/cyfdecyf/cow/将http请求映射到socks5流量中,非常方便,如果你被GFW屏蔽了的话。
英文:
you can also map http requests to socks5 traffic by using https://github.com/cyfdecyf/cow/
very handy if you are blocked by GFW
答案5
得分: 4
在系统变量中添加GOPROXY
变量名和变量值为your proxy
。这对我起作用了。
英文:
Add GOPROXY
variable name and Variable value as your proxy
in the System variable. This worked for me.
答案6
得分: 3
你可能想要查看 https://github.com/hmgle/graftcp,
$ graftcp-local/graftcp-local -h
graftcp-local/graftcp-local 的使用方法:
-config string
配置文件的路径
-listen string
监听地址(默认为“:2233”)
-logfile string
将日志写入文件
-loglevel value
日志级别(0-6)(默认为1)
-pipepath string
graftcp 用于发送地址信息的管道路径(默认为“/tmp/graftcplocal.fifo”)
-service string
控制系统服务:[“start” “stop” “restart” “install” “uninstall”]
-socks5 string
SOCKS5 地址(默认为“127.0.0.1:1080”)
-syslog
将日志发送到本地系统日志记录器(Windows 上为 Eventlog,Unix 上为 syslog)
如果你已经在 1080 端口上监听了 shadowsocks,那么你不需要提供任何参数,只需运行 graftcp-local
,以代理 go get
$ ./graftcp go get -v golang.org/x/net/proxy
英文:
You may want check 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)
If you already have shadowsocks listening on 1080, then you don't need provide any paramaters, just run graftcp-local
, to proxy go get
$ ./graftcp go get -v golang.org/x/net/proxy
答案7
得分: 0
git config [--global] http.proxy http://proxy.example.com:port
git config [--global] https.proxy http://proxy.example.com:port
see https://github.com/golang/go/wiki/GoGetProxyConfig
英文:
git config [--global] http.proxy http://proxy.example.com:port
git config [--global] https.proxy http://proxy.example.com:port
答案8
得分: 0
我用Go命令在Win10系统中设置了一些变量来解决这个问题。
在这里(“使用代理服务器的cf CLI”)中,您可以找到下面描述的信息,并附有图片。您还可以阅读关于以下内容的信息:
- https_proxy的格式
- 使用cf v3-ssh使用SOCKS5
- 在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系统上有效。
英文:
I solved this problem with the Go command setting some variables in the Win10 system.
Here ("Using the cf CLI with a Proxy Server") you can find the information described below, with images. Also you can read information about:
- Format of https_proxy
- Use SOCKS5 with cf v3-ssh
- Set https_proxy in Mac OS or Linux
I included in this answer only information about W10 because is the one I tested.
Windows 10
Set the new path variable.
- From the search box, type in
path
- Select and open "Edit the system environment variables (control panel)".
- "System properties" window will open.
- Select "Advanced" tab.
- Press "Environment Variables" button, a window with the same name will open.
- In "System Variables" section, press the "New" button. "New System Variable" window will open.
- You'll now add the needed variable, fill the fields as follows:
- Variable name:
https_proxy
- Variable value:
http://yourUserName:userNamePassword@yourIPaddress:port
- Variable name:
Lastly...
I tested the installation command line for go.
Open the console, and type in: go install github.com/isacikgoz/gitbatch/cmd/gitbatch@latest
That's an example from this project: https://github.com/isacikgoz/gitbatch
This worked on my particular W10 19043 system.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论