web-dev-qa-db-fra.com

Comment configurer la commande go pour utiliser un proxy?

Je souhaite exécuter go install pour installer tour , mais je ne trouve pas l'option permettant d'utiliser un proxy pour accéder à Internet. Je n'ai pas besoin de ça juste pour la tournée mais pour le développement de Go en général. 

Comment puis-je configurer Go pour utiliser un proxy.

38
oers

Les programmes Go comprennent les variables d'environnement http_proxy et no_proxy, mais cela ne suffit pas, car go get utilise des gestionnaires de contrôle de code source pour extraire le code. Vous devez donc également définir les paramètres de proxy HTTP pour votre GDS. Utilisez this pour Mercurial et this pour Git.

La valeur http_proxy peut ressembler à http://user:password@Host:port/. Les parties utilisateur, mot de passe et port sont facultatives. no_proxy est une liste de serveurs séparés par des virgules qui ne doivent pas être connectés via un proxy. Sa valeur peut être comme foo.com,bar.net:4000.

Vous pouvez définir ces variables d'environnement dans votre bash_profile, mais si vous souhaitez limiter leur utilisation à go, vous pouvez l'exécuter comme suit:

$ http_proxy=127.0.0.1:8080 go get code.google.com/p/go.crypto/bcrypt

Si c'est ce que vous voulez toujours, définissez cet alias pour éviter de taper à chaque fois une partie proxy:

$ alias go='http_proxy=127.0.0.1:8080 go'

À partir de maintenant, vous pouvez utiliser go normalement, mais votre proxy HTTP est utilisé.

77
Mostafa

vous pouvez également mapper les requêtes http au trafic socks5 en utilisant https://github.com/cyfdecyf/cow/

très pratique si vous êtes bloqué par GFW

2
Lucas Liu

Cela fonctionne pour moi:

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'

Remarque: pour certaines personnes, le protocole peut être différent https_proxy=http://127.0.0.1:1081 

0
keos

Vous voudrez peut-être vérifier 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)

Si vous avez déjà des ombres sur le 1080, vous n’avez pas besoin de fournir de paramètres, il suffit d’exécuter graftcp-local, pour obtenir un proxy

$ ./graftcp go get -v golang.org/x/net/proxy
0
fangxing

Sur la ligne de commande Windows:

set http_proxy=http://[user]:[pass]@[proxy_ip]:[proxy_port]/ set https_proxy=http://[user]:[pass]@[proxy_ip]:[proxy_port]/

... puis accédez à https://github.com/ et téléchargez le certificat GitHub (le nom est goland_cert.cer)

... exécutez maintenant la commande OpenSSL pour l'exporter au format PEM

openssl x509 -inform der -in goland_cert.cer -out goland_cert.pem

... définissez enfin le certificat dans git global config

git config --global http.sslCAInfo C:/Users/[User]/certs/golang_cert.pem

0
Marco

Ajoutez le nom de variable GOPROXY et la valeur de variable sous la forme your proxy dans la variable système. Cela a fonctionné pour moi.

0
banoth ravinder