svn через HTTP-прокси

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


person small_jam    schedule 17.09.2008    source источник
comment
дубликат (очевидно, по теме) вопроса: stackoverflow.com/questions/1491180/ и stackoverflow.com/questions/16649199/   -  person michael    schedule 21.11.2013


Ответы (7)


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

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

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

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

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

svn checkout svn://localhost:10234/path/to/trunk
person cubex    schedule 17.09.2008
comment
есть также ~/.subversion/servers - person akavel; 15.02.2011
comment
проверьте это, это действительно работает решение - person Vervatovskis; 10.04.2012
comment
Большое тебе спасибо! Работает как часы! Я нахожусь в Windows, и мне пришлось установить cygwin (subversion + perl + make). Затем я, наконец, установил модуль Net::Proxy вручную (он не хотел устанавливать с помощью cpan install), et voila! - person Lasneyx; 07.06.2012

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

$ sudo vi /etc/subversion/servers

Отредактируйте файл:

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

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

person dillera    schedule 24.09.2010
comment
Кроме того, не забудьте использовать http: // в URL-адресе репо, а не svn: // - person Gearoid Murphy; 05.08.2011
comment
Файл server в Windows находится по адресу: ~ \ AppData \ Roaming \ Subversion \ servers - person bart; 18.05.2012
comment
Кроме того, не забудьте отредактировать его под заголовком [global] в файле, как сказал dillera, а не под [groups], который появляется первым в файле. - person K.S.; 09.10.2015

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

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

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

svn co svn://127.0.0.1/....
person Kent Fredric    schedule 17.09.2008
comment
Удаленный сервер в Windows для SSH Я использую HTTP-туннелирование с помощью штопора - person small_jam; 17.09.2008

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

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

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

127.0.0.1 svn.openwrt.org

После этого вы можете использовать socat для создания tcp-туннеля к локальному порту:

пока правда; do socat tcp-listen: 3690 прокси: proxy.at.your.company: svn.openwrt.org: 3690; Выполнено

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

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

person gadgetweb.de    schedule 18.05.2010

когда вы используете svn: // URI, он использует порт 3690 и, вероятно, не будет использовать http-прокси

person Cetra    schedule 17.09.2008

svn: // не поддерживает http, поэтому http-прокси ничего не может сделать.

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

person Olaf Kock    schedule 17.09.2008

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

person massimogentilini    schedule 17.09.2008