git: // par procuration
-
28-10-2019 - |
Question
Je suis derrière un pare-feu qui bloque le port 9418 (git) et essaie d'installer des outils qui font explicitement une caisse de git://github.com/...
, donc je ne peux pas passer à https pour l'achat.
Je me demande s'il est possible de rediriger tout le trafic vers le port 9418 via un proxy et si oui, comment:)
La solution
Jetez un oeil à réglage core.gitproxy
Git config .
googler rapide a révélé ce script qui peut être utile (ou non - je ne l'ai pas essayé): https: / /gist.github.com/49288
Autres conseils
Avez-vous essayé un tunnel TCP basé ssh-? Si vous avez un serveur SSH (a) est en dehors de votre pare-feu et (b) permet la transmission IP, vous pouvez faire:
ssh -L localhost:9418:<remote>:9418 me@remote-ssh-server
ou, si vous devez exécuter sshd sur le port 443 pour contourner votre pare-feu,
ssh -P 443 -L localhost:9418:<remote-host>:9418 me@remote-ssh-server
Ensuite, au niveau local:
git checkout git://localhost/...
Il est évident que ce n'est pas transparent, et il est un peu alambiquée - il n'y a pas d'outils de doute là-bas qui sont plus spécifiquement ciblés sur le problème. Cependant, j'utilise généralement cette méthode car elle utilise des outils que je dois la main (ssh et un serveur virtuel cheapo Je loue).
(je l'ai en fait jamais essayé cela avec une connexion git, mais je ne vois pas pourquoi cela ne fonctionnerait pas. Je l'ai utilisé avec beaucoup d'autres protocoles unique port TCP sans problème.)
Vous devez faire le point de core.gitProxy
à une commande proxy qui reliera git au serveur à distance via votre proxy SOCKS. Vous pouvez créer un script avec le contenu suivant pour servir de proxy commande:
nc -x <your_proxy_host>:<your_proxy_port> $1 $2
Les deux paramètres, ce qui représente l'hôte distant et le port, seront transmises à la commande par proxy git. Si vous nommez ce script git-proxy
et la rendre accessible à partir de votre $PATH
, vous pouvez appeler git config
pour le définir:
git config --global --add core.gitProxy git-proxy