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.
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é.
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
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
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
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
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.