Récemment, je ne peux pas accéder souvent à Bitbucket et la vitesse de déplacement du code depuis Github est lente. Tout le monde en connaît la raison.
Par conséquent, le meilleur moyen est de configurer un proxy pour Git. J'espère spécifier certains entrepôts pour utiliser la méthode proxy. Je ne sais pas comment le configurer ?
Dans l'environnement local, j'ai configuré un agent ssh et je vais au 127.0.0.1:7070 via SOCKS. Si l'agent ssh local est activé, Y a-t-il un autre moyen ?
Git supporte actuellement trois protocoles
git://
,ssh://
ethttp://
, avec des configurations de proxy différentes :core.gitproxy
pour le protocolegit://
,http.proxy
pour le protocolehttp://
,ssh://
Le proxy du protocole doit configurer les paramètresProxyCommand
de ssh.Utiliser le tunneling SSH pour tous les protocoles
Configuration du protocole GIT
Créez le fichier
/path/to/socks5proxywrapper
et utilisez l'outil https://bitbucket.org/gotoh/connect pour convertir le proxy. Chaque distribution est généralement packagée sous proxy-connect ou connect-proxy.Configurer git
ou
Configuration du protocole SSH
Créer
/path/to/soks5proxyssh
fichierConfigurez git pour utiliser ce wrapper
Bien entendu, vous pouvez également configurer directement les
~/.ssh/config
ProxyCommand
deConfiguration du protocole HTTP
Utiliser le proxy http pour tous les protocoles
Sur la base de la partie précédente, le fichier
/path/to/socks5proxywrapper
est remplacé parConfiguration du protocole HTTP
Activer le proxy pour le nom de domaine
Le paramètregitproxy fournit la structure
* for *
, voir la partie core.gitproxy deman git-config
pour plus de détails.Vous pouvez définir http.proxy ou core.gitproxy
pour ce référentielhttp://www.kernel.org/pub/software/sc...
Vous pouvez utiliser la méthode de yanyaoer pour définir le proxy pour git.
Quant à l'agent ssh+pac+socks que vous avez mentionné, il n'est pas en conflit avec l'agent git mentionné par yanyaoer.
Le proxy chaussettes est un proxy sous-jacent au niveau du circuit, tandis que le proxy défini dans git config est au niveau de l'application.
Par exemple, votre pac est configuré pour que github.com utilise les chaussettes 127.0.0.1:7070 ; et la configuration git est configurée pour que github.com utilise proxy.server.com comme proxy.
Ensuite, à ce moment-là, lorsque vous effectuez des opérations git, toutes les requêtes réseau seront envoyées à proxy.server.com lorsqu'elles atteindront la couche chaussettes. Naturellement, elles ne seront pas affectées et seront envoyées directement.
tsocks - http://tsocks.sourceforge.net/
$ tsocks git clone git@github.com:xxx/xxx.git
Si vous clonez depuis bitbucket et utilisez le protocole ssh, vous pouvez utiliser toutes les méthodes de proxy ssh
Par exemple, s'il s'agit d'un proxy http ou d'un proxy chaussettes, vous pouvez utiliser http://bent.latency.net/bent/git/goto... Ce petit programme est utilisé comme hôte
ProxyCommand
Si vous avez mentionné un serveur relais, vous pouvez utiliser
nc
sur l'hôte distant pour le faireProxyCommand
http://www.undeadly.org/cgi?action=ar...En ce qui concerne la différenciation du trafic que vous avez mentionnée, vous pouvez effectuer différents réglages dans
~/.ssh/config
. Par exemple, la configuration que j'utilisais avantDe cette façon,
défini icigit clone ssh://git@bitbucket.org/XXXX
appellera automatiquement leProxyCommand
proxy github ssh | Configuration du proxy du protocole github ssh
Configurer un
proxy-wrapper
scriptAjoutez-y des autorisations exécutables
Configuration
.ssh/config
, définissez une commande proxy pour github.comTous doivent utiliser le protocole ssh
Pour le protocole git, veuillez vous référer à [Utilisation de GIT via un proxy SOCKS](http://twopenguins.org/tips/git-throu...).
Référence
J'ai écrit un smart_switcher basé sur la réponse de 1L, qui peut identifier et définir automatiquement divers proxys. Basé sur la configuration du proxy http, il est particulièrement adapté à diverses situations de commutation où le bureau a un proxy et il n'y a pas de proxy à la maison. , c'est simplifié à super simple et il suffit de définir l'adresse IP et le port de votre passerelle.
Lisez-moi ici. . .
smart_switcher
Un commutateur de proxy à détection automatique pour les protocoles http, https, ftp, rsync, ssh, git.
Aperçu
Un wrapper de commutateur de proxy intelligent, prend en charge http, https, ftp, rsync, ssh(connect depanded), git(connect depanded). Il peut détecter automatiquement votre environnement réseau et définir un proxy pour vous.
Si vous changez habituellement d'environnement réseau (peut-être à la maison sans proxy et sur votre lieu de travail avec proxy), cela peut vous aider beaucoup.source /path/to/smart_switcher.sh
et, assurez-vous de définir votre serveur proxy/passerelle dans .
Utilisationsmart_switcher.sh
soutient cecho, qui vous apportera des couleurs.
connect est requis si le proxy est pris en charge danssmart_switcher
ssh et git Vous pouvez l'installer facilement dans le chemin .
/usr/bin/connect
.La méthode de connexion au protocole git utilise ssh pour communiquer avec le serveur. Configurer ssh pour utiliser le proxy sock5 pour se connecter au serveur résout également le problème du proxy git.
1.
Compilez le code ci-dessus en utilisant gcc et enregistrez-le dans le répertoire des variables d'environnement et renommez-le connect
Entrez dans le répertoire .ssh et créez un nouveau
Configuration du fichier
Fichier proxy-wrapper
Il y a de nombreuses réponses ci-dessus. En supposant que le programme exécute la commande git sans état ni répertoire de travail, le paramètre
-c
peut être utilisé pour recharger la configuration git au moment de l'exécution, y compris la cléhttp.proxy
Par exemple :
La meilleure solution est les proxychains (https://github.com/haad/proxychains).
La commande suivante exécute le programme programme
$ programme proxychains
Il force les connexions TCP initiées par un programme donné à passer par un proxy préconfiguré. Au moins sous Linux, il est plus polyvalent que « proxy SOCKS vers proxy HTTP ». Les deux se complètent et peuvent couvrir tous les scénarios nécessitant une agence.
Prenons Git comme exemple. Sans proxychains, vous devez configurer un proxy pour chaque protocole (http, git, ssh) selon les exigences de la documentation git. Le processus est compliqué et instable. Avec les proxychains, vous pouvez oublier tout ça !
$ sudo apt-get install proxychains
Ouvrez /etc/proxychains.conf et commentez la ligne suivante (désactivez la résolution DNS à distance. Il existe un risque de pollution DNS. Ce qui suit décrit comment résoudre le problème de l'activation qui ne fonctionne pas.)
proxy_dns
Ajoutez enfin la ligne suivante :
chaussettes5 134.64.206.85 1081
$ proxychains git clone git://github.com/yuzhichang/cppdep
$ sudo proxychains apt-get update
Ici, 134.64.206.85:1081 est l'emplacement du proxy SOCKS.