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.