Я хочу перевірити / оновити код через проксі, оскільки мій локальний зв’язок повільний. Я налаштовую ssh tunnel: ssh -D 8090 user@ssh.proxy.net
щоб переслати всі пакети на мій localhost: 8090.
Як я можу налаштувати підривну роботу для цього?
Я хочу перевірити / оновити код через проксі, оскільки мій локальний зв’язок повільний. Я налаштовую ssh tunnel: ssh -D 8090 user@ssh.proxy.net
щоб переслати всі пакети на мій localhost: 8090.
Як я можу налаштувати підривну роботу для цього?
Відповіді:
Ви використовуєте 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
створенні групи для підривних хостів ви хочете перевірити з, наприклад , якщо ваш хост підривного сховища (s) названий 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 / 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
для переключення адреси, з якою пов'язана робоча копія, без необхідності робити новий замовлення.
svn co svn+ssh://code.somewhere.com/prj prj
, після prj/
svn switch --relocate svn+ssh://code.somewhere.com svn+pssh://localhost/
svn co svn+pssh://localhost/prj prj
Бувають випадки, коли на ПК з 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 .