it-swarm-ru.tech

SVN через HTTP прокси

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

52
small_jam

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

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

$ Sudo vi /etc/Subversion/servers

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

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

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

46
dillera

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

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

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

svn co svn://127.0.0.1/....
2
Kent Fredric

Хорошо, эта тема несколько устарела, но, как я нашел ее в 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-listen: 3690 прокси: proxy.at.your.company: svn.openwrt.org: 3690; сделанный

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

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

1
gadgetweb.de

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

0
Cetra

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

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

0
Olaf Kock

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

0
massimogentilini