Ответ 1
Посмотрите core.gitproxy
в Git config.
Быстрый поиск в Google показал этот script, который может быть полезен (или не может - я не пробовал): https://gist.github.com/49288 p >
Я за брандмауэром, который блокирует порт 9418 (git), и пытаюсь установить некоторые инструменты, которые явно делают проверку git://github.com/...
, поэтому я не могу переключиться на https для проверки.
Так что мне интересно, можно ли перенаправить весь трафик на порт 9418 через прокси-сервер, и если да, то как:)
Посмотрите core.gitproxy
в Git config.
Быстрый поиск в Google показал этот script, который может быть полезен (или не может - я не пробовал): https://gist.github.com/49288 p >
Если вы говорите о подмодулях git, попробуйте следующее:
git config --global url.https://github.com/.insteadOf git://github.com/
... взято из здесь.
Таким образом, вам не нужно устанавливать прокси-сервер и не запускать никаких script.
Вы пробовали TCP-туннель на основе ssh? Если у вас есть ssh-сервер, который (а) находится за пределами вашего брандмауэра и (b) разрешает переадресацию IP, вы можете сделать:
ssh -L localhost:9418:<remote>:9418 [email protected]
или, если вам нужно запустить sshd на порт 443, чтобы обойти ваш брандмауэр,
ssh -P 443 -L localhost:9418:<remote-host>:9418 [email protected]
Тогда локально:
git checkout git://localhost/...
Очевидно, что это непрозрачно, и это немного запутанно - нет никаких сомнений в том, что там есть инструменты, которые более конкретно нацелены на проблему. Тем не менее, я обычно использую этот метод, потому что он использует инструменты, которые я должен использовать (ssh и дешевый виртуальный сервер, который я арендую).
(Я никогда не пробовал это с подключением git, но я не вижу причин, почему это не сработает. Я использовал его со многими другими протоколами одного TCP-порта без проблем.)
Вам нужно сделать core.gitProxy
указать прокси-команду, которая будет подключать git к удаленному серверу через ваш прокси-сервер SOCKS. Вы можете создать script со следующим содержимым, чтобы служить в качестве прокси-команды:
nc -x <your_proxy_host>:<your_proxy_port> $1 $2
Два параметра, представляющие удаленный хост и порт, будут переданы в прокси-команду git. Если вы назовете это script git-proxy
и сделаете его доступным с вашего $PATH
, вы можете вызвать git config
, чтобы установить его:
git config --global --add core.gitProxy git-proxy