Подтвердить что ты не робот

Как настроить команду go для использования прокси?

Я хочу запустить go install, чтобы установить tour, но я не могу найти возможность использовать прокси для Интернета доступ. Мне не нужно это только для тура, но для развития в Go в целом.

Как настроить Go для использования прокси.

4b9b3361

Ответ 1

Программы

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-прокси.

Ответ 2

вы также можете сопоставить http-запросы для трафика socks5 с помощью https://github.com/cyfdecyf/cow/

очень удобно, если вы заблокированы GFW

Ответ 3

Вы можете проверить 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

Ответ 4

Это работает для меня:

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

Ответ 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

Ответ 6

Добавьте GOPROXY переменной GOPROXY и значение переменной в качестве your proxy в системной переменной. Это сработало для меня.

Ответ 7

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

Примечание. Этот ответ получил как положительные, так и отрицательные отзывы. Если этот метод не помогает в вашем случае, оставьте несколько комментариев, прежде чем нажать кнопку "вниз", потому что это действительно задокументировано и работает в моем случае. Нам лучше знать, почему это не работает для вас. Благодарю.