Я хочу запустить go install
, чтобы установить tour, но я не могу найти возможность использовать прокси для Интернета доступ. Мне не нужно это только для тура, но для развития в Go в целом.
Как настроить Go для использования прокси.
Я хочу запустить go install
, чтобы установить tour, но я не могу найти возможность использовать прокси для Интернета доступ. Мне не нужно это только для тура, но для развития в Go в целом.
Как настроить Go для использования прокси.
Go понимают переменные среды http_proxy
и no_proxy
, но этого недостаточно, поскольку go get
использует диспетчеры управления версиями для извлечения кода. Таким образом, вы также должны установить параметры HTTP-прокси для своего SCM. Используйте this для Mercurial и this для Git.
http_proxy
Значение может быть как http://user:[email protected]: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-прокси.
вы также можете сопоставить http-запросы для трафика socks5 с помощью https://github.com/cyfdecyf/cow/
очень удобно, если вы заблокированы GFW
Вы можете проверить 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, вам не нужно graftcp-local
какие-либо параметры, просто запустите graftcp-local
, чтобы прокси получил
$ ./graftcp go get -v golang.org/x/net/proxy
Это работает для меня:
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
В командной строке 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
Добавьте GOPROXY
переменной GOPROXY
и значение переменной в качестве your proxy
в системной переменной. Это сработало для меня.
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
Примечание. Этот ответ получил как положительные, так и отрицательные отзывы. Если этот метод не помогает в вашем случае, оставьте несколько комментариев, прежде чем нажать кнопку "вниз", потому что это действительно задокументировано и работает в моем случае. Нам лучше знать, почему это не работает для вас. Благодарю.