2008-09-17 3 views
52

Я нахожусь на ноутбуке (Ubuntu) с сетью, использующей HTTP-прокси (разрешены только http-соединения).
Когда я использую svn для URL-адреса, например «http: // .....», все в порядке (репозиторий google chrome работает отлично), но сейчас мне нужно svn с сервера с помощью svn: // .. .. ', и я вижу, что соединение отказалось.
Я установил прокси-конфигурацию в/etc/subversion/servers, но это не поможет.
У кого-нибудь есть мнение/решение?
svn over HTTP proxy

+1

Этот вопрос абсолютно помог мне через 5 лет! – slayedbylucifer 2013-05-20 08:39:23

+0

дубликат (по-видимому, по теме) вопрос: http://stackoverflow.com/questions/1491180/how-to-configure-a-http-proxy-for-svn и http://stackoverflow.com/questions/16649199/how-do-i-configure-the-svn-http-proxy-from-the-command-line – michael 2013-11-20 20:58:34

ответ

62

в /etc/subversion/servers вы настраиваете http-proxy-host, который не имеет ничего общего с svn://, который подключается к другой сервер обычно работает на порту 3690 начатой ​​svnserve команды.

Если у вас есть доступ к серверу, вы можете настроить svn+ssh:// в explained here.

Update: Вы можете также попробовать использовать connect-tunnel, который использует ваш HTTPS прокси-сервер для туннельных соединений:

connect-tunnel -P proxy.company.com:8080 -T 10234:svn.example.com:3690 

Тогда вы будете использовать

svn checkout svn://localhost:10234/path/to/trunk 
+0

Отлично, я искал что-то вроде этого. +1 для вас хороший сэр. – Ibrahim 2009-07-09 04:11:47

0

при использовании SVN: // URI он использует порт 3690 и, вероятно, не будет использовать HTTP прокси

0

SVN: // не говорить HTTP, для этого нет ничего HTTP-прокси мог сделать.

Любая причина, по которой http не работает? Вы считали https? Если вам это действительно нужно, вам, вероятно, придется открыть порт 3690 в вашем брандмауэре.

2

Если вы можете получить SSH, вы можете отправить SSH-сервер с SSH-портом.

Использование SSHs -L (или -R, я забываю, он всегда меня смущает), чтобы сделать SSH туннель, так что

127.0.0.1:3690 действительно подключения к удаленному: 3690 через SSH туннель, а затем вы можете использовать его через

svn co svn://127.0.0.1/.... 
+0

Удаленный сервер на окнах для SSH Я использую HTTP-туннелирование с помощью штопора – 2008-09-17 12:32:15

0

Если вы используете стандарт SVN-соединение svn: // будет работать на tcpip-порту 3690, и поэтому в принципе невозможно подключиться, если вы не измените конфигурацию вашей сети (вы сказали, что разрешен только трафик Http) или вы устанавливаете http-модуль и Apache на сервере, на котором размещен ваш SVN сервер.

0

Хорошо, эта тема несколько устарел, но, как я нашел его на Google и есть решение, это может быть интересно для кого-то:

В принципе (конечно), это не возможно на каждом HTTP прокси-сервере, но работает на прокси-серверов, разрешающих HTTP-соединение на порту 3690. Этот метод используется HTTP-прокси на порту 443, чтобы обеспечить способ для безопасного соединения https. Если ваш администратор настраивает прокси-сервер для открытия порта 3690 для http-соединения, вы можете настроить локальный компьютер для создания туннеля через прокси-сервер.

Мне просто нужно было проверить некоторые файлы с svn.openwrt.org в сети наших компаний. Простое решение для создания туннеля добавляет следующую строку к вашему/etc/hosts

127.0.0.1 svn.openwrt.орг

После этого, вы можете использовать SOCAT создать TCP туннель к локальному порту:

в то время как верно; do socat tcp-listen: 3690 proxy: proxy.at.your.company: svn.openwrt.org: 3690; done

Вы должны выполнить команду как root. Он открывает локальный порт 3690, а при подключении создает туннель к svn.openwrt.org на том же порту.

Просто замените адреса портов и серверов на собственные нужды.

45

Хорошо, это должно быть очень просто:

$ sudo vi /etc/subversion/servers 

Редактировать файл:

[Global] 
http-proxy-host=my.proxy.com 
http-proxy-port=3128 

Сохранить его, запустите svn снова, и он будет работать.