svn через HTTP-прокси [закрыт]
Вопрос
Я нахожусь на ноутбуке (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-сервер.