Вопрос

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

Это было полезно?

Решение

В /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

Другие советы

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

$ sudo vi /etc/subversion/servers

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

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

Сохрани это, беги svn еще раз, и это сработает.

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

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

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

svn co svn://127.0.0.1/....

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

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

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

127.0.0.1 svn.openwrt.org

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

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

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

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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top