git: // через прокси - PullRequest
       25

git: // через прокси

51 голосов
/ 02 мая 2011

Я нахожусь за брандмауэром, который блокирует порт 9418 (git), и пытаюсь установить некоторые инструменты, явно выполняющие проверку git://github.com/..., поэтому я не могу переключиться на https для проверки.

Так что мне интересно, можно ли перенаправить весь трафик на порт 9418 через прокси и если да, то как:)

Ответы [ 4 ]

78 голосов
/ 05 октября 2012

Если вы говорите о подмодулях git, попробуйте это:

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

... взято из здесь .

Таким образом, вам не нужно устанавливать ни прокси, ни запускать сценарии.

22 голосов
/ 03 мая 2011

Посмотрите на настройку core.gitproxy в Git config .

Быстрый поиск в Google показал, что этот скрипт может быть полезен (а может и нет - я не пробовал): https://gist.github.com/49288

3 голосов
/ 11 сентября 2015

Вам необходимо указать core.gitProxy, указав команду прокси, которая подключит git к удаленному серверу через прокси SOCKS. Вы можете создать скрипт со следующим содержимым, который будет служить прокси-командой:

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

Два параметра, представляющих удаленный хост и порт, будут переданы команде proxy командой git. Если вы назовете этот скрипт git-proxy и сделаете его доступным из вашего $PATH, вы можете позвонить git config, чтобы установить его:

git config --global --add core.gitProxy git-proxy
2 голосов
/ 02 мая 2011

Вы пробовали TCP-туннель на основе ssh?Если у вас есть сервер ssh, который (a) находится за пределами вашего брандмауэра и (b) позволяет переадресацию IP, вы можете сделать:

ssh -L localhost:9418:<remote>:9418 me@remote-ssh-server

или, если вам нужно запустить sshd на порту 443, чтобы обойти вашfirewall,

ssh -P 443 -L localhost:9418:<remote-host>:9418 me@remote-ssh-server

Затем, локально:

git checkout git://localhost/...

Очевидно, что это не прозрачно, и это немного запутанно - нет никаких инструментов сомнения, которые более конкретно нацелены наэта проблема.Тем не менее, я обычно использую этот метод, потому что он использует инструменты, которые я должен передать (ssh и дешевый виртуальный сервер, который я арендую).

(я на самом деле никогда не пробовал это с git-соединением, но не вижу причинпочему это не сработало. Я использовал его со многими другими протоколами с одним TCP-портом без проблем.)

...