web-dev-qa-db-fra.com

git: // via proxy

Je suis derrière un pare-feu qui bloque le port 9418 (git) et j'essaie d'installer des outils qui effectuent explicitement une vérification de git://github.com/..., je ne peux donc pas passer à https pour le paiement.

Je me demande donc s'il est possible de rediriger tout le trafic vers le port 9418 via un proxy et si oui, comment :)

51
Mark Kahn

Jettes un coup d'oeil à core.gitproxy réglage dans Git config .

Une recherche rapide sur Google a révélé ce script qui peut être utile (ou pas - je ne l'ai pas essayé): https://Gist.github.com/49288

22

Si vous parlez de sous-modules git, essayez ceci:

git config --global url.https://github.com/.insteadOf git://github.com/

... extrait de ici .

De cette façon, vous n'avez pas besoin de définir de proxy, ni d'exécuter de script.

78
mppfiles

Vous devez faire core.gitProxy pointez sur une commande proxy qui connectera git au serveur distant via votre proxy SOCKS. Vous pouvez créer un script avec le contenu suivant pour servir de commande proxy:

nc -x <your_proxy_Host>:<your_proxy_port> $1 $2

Les deux paramètres, représentant l'hôte distant et le port, seront transmis à la commande proxy par git. Si vous nommez ce script git-proxy et rendez-le accessible depuis votre $PATH, tu peux appeler git config pour le régler:

git config --global --add core.gitProxy git-proxy
3
Mihai Capotă

Avez-vous essayé un tunnel basé sur ssh TCP tunnel? Si vous avez un serveur ssh qui (a) est en dehors de votre pare-feu et (b) permet le transfert 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, localement:

git checkout git://localhost/...

Évidemment, ce n'est pas transparent, et c'est un peu compliqué - il existe sans aucun doute des outils 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 j'ai à ma disposition (ssh et un serveur virtuel cheapo que je loue).

(Je n'ai en fait jamais essayé avec une connexion git, mais je ne vois aucune raison pour laquelle cela ne fonctionnerait pas. Je l'ai utilisé avec de nombreux autres protocoles à port TCP unique sans problème.)

3
ijw