Я хочу проверить / обновить код через прокси, так как у меня медленное локальное соединение. Я настраиваю ssh-туннель: ssh -D 8090 user@ssh.proxy.net
пересылать все пакеты на мой localhost: 8090.
Как я могу настроить Subversion для этого?
Вы используете SSH для настройки локального SOCKS-сервера, который туннелирует на ваш SSH-сервер. Вы упомянули, что причина этого в том, что «локальное соединение медленное», но я не понимаю, как туннелирование к серверу SSH сделает его быстрее.
В любом случае, ваша проблема в том, что Subversion может подключаться через HTTP-прокси или SSH-туннель, но ничего не знает о SOCKS. Итак, вам нужно SOCKSify Subversion, перехватывая все его TCP-соединения и перенаправляя их на прокси-сервер SOCKS.
Вместо того, чтобы перефразировать тех, кто делал это раньше, я укажу вам их подробные объяснения:
Или, вкратце, в основном вырезано из страницы Оливера:
Debian содержит два соксификатора, которые также доступны на sourceforge. Самым недавно обновленным является ProxyChains, и его довольно просто настроить. Большинство соксификаторов работают аналогичным образом, поэтому эти инструкции должны быть разумным общим случаем. Чтобы настроить ProxyChains, вам просто нужно отредактировать $ (HOME) /. Proxychains / proxychains.conf, чтобы в нем были только следующие строки:
DynamicChain
tcp_read_time_out 15000
tcp_connect_time_out 10000
[ProxyList]
socks5 127.0.0.1 8090
# NB: for some reason 'localhost' doesn't work in the above line
Все, что вам нужно сделать, это «обернуть» svn в ProxyChains.
proxychains svn commit
В приведенном выше примере приложению svn было не до того, что его TCP-соединения с сервером Subversion были перенаправлены на ваш прокси-сервер SOCKS. "
Публикация здесь, так как я нашел менее беспорядочный способ сделать это. Ты можешь использовать Polipo чтобы использовать туннель SSH SOCKS через HTTP-прокси, добавив следующие строки в его конфигурацию:
socksParentProxy = "localhost:8090"
socksProxyType = socks5
polipo
по умолчанию прослушивать порт 8123
. А потом в $HOME/.subversion/servers
создайте группу для хостов подрывной деятельности, с которых вы хотите выйти, например если ваш хост репозитория Subversion назван proj1.svn.domain.tld
, proj2.svn.domain.tld
и т. д., затем добавьте в [groups]
раздел:
[groups]
domain = *.svn.domain.tld
И, наконец, укажите конфигурацию прокси для группы только что добавленных хостов, добавив блок для группы:
[domain]
http-proxy-host=localhost
http-proxy-port=8123
После этого вы сможете нормально работать с репозиторием, как раньше, без туннеля SSH.
HTH
Я не знаю о туннелировании с ssh -D
но используя что-то вроде
ssh -L8090:svn.server.com:22 user@other.server.com
Затем вы можете выполнить туннелирование, добавив новый протокол для Subversion с конкретным портом, на котором находится туннель. Итак, в ~ / .subversion / config добавьте строку вроде
pssh = ssh -p8090
в [tunnels]
раздел, а затем вместо svn + ssh: //user@original.com используйте svn + pssh: // user @ localhost
Если у вас есть рабочая копия, вы можете использовать
svn switch --relocate svn+ssh://user@original.com svn+pssh://user@localhost
для переключения адреса, с которым связана рабочая копия, без необходимости выполнять новую проверку.
Посмотрите файлы конфигурации по умолчанию в ~ / .subversion /. Там много полезных примеров закомментировано. Прокси будут установлены в ~ / .subversion / servers
Бывают случаи, когда это требуется на Windows ПК для подключения svn + ssh к репозиторию SVN через прокси-сервер socks. Эту проблему можно решить с помощью Putty, который обеспечивает функциональность SSH и может работать с различными типами прокси. Предлагаемое решение не требует перенаправления локального порта.
Что это такое - SVN будет использовать имя протокола, чтобы определить, что для подключения должен использоваться plink.exe, а plink будет использовать имя сеанса socks_proxy чтобы определить, что прокси присутствует. Помни это PATH_TO_PLINK следует вводить с косой чертой, а не с обратной. Пример для случая, когда plink.exe находится в папке C: \ Program Files \ Putty: ssh = C: / Program Files / Putty / PLINK.EXE - загрузить socks_proxy.
Вы могли бы дать цоски попытка. С помощью tsocks вы настраиваете его для использования SSH прокси-сервера SOCKS, а затем запускаете svn следующим образом:
tsocks svn co {etc...}