通过HTTP代理svn
我在使用HTTP代理(仅允许http连接)的网络的笔记本电脑(Ubuntu)上。
当我将svn用作诸如" http:// ....."之类的网址时,一切都很酷(google chrome存储库工作完美),但是现在我需要使用" svn:// ..."从服务器进行svn。 ",然后我看到连接被拒绝了。
我已经在/ etc / subversion / servers中设置了代理配置,但这无济于事。
有人有意见/解决方案吗?
解决方案
回答
当我们使用svn:// URI时,它将使用端口3690,并且可能不会使用http代理
回答
svn://不讲HTTP,因此HTTP代理无法执行任何操作。
http不起作用的任何原因?我们考虑过https吗?如果确实需要,则可能必须在防火墙中打开端口3690。
回答
如果可以使用SSH,则可以使用SSH端口转发的SVN服务器。
使用SSHs -L
(或者-R
,我总是忘记,它总是让我困惑)来建立ssh隧道,这样
127.0.0.1:3690
实际上是通过ssh隧道连接到remote:3690的,然后我们可以通过
svn co svn://127.0.0.1/....
回答
在" / etc / subversion / servers"中,设置" http-proxy-host",与" svn://"无关,后者连接到通常由" svnserve"命令启动的端口3690上运行的其他服务器。
如果我们有权访问服务器,则可以按照此处的说明设置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
回答
如果我们使用的是标准SVN安装,则svn://连接将在tcpip端口3690上正常工作,因此除非更改网络配置(我们说仅允许Http通信)或者安装http模块并托管SVN服务器的服务器上的Apache。
回答
好的,这个主题有些过时了,但是正如我在google上发现的那样,并找到了解决方案,这可能对某人很有趣:
基本上(当然),不可能在每个HTTP代理上都可以,但是可以在允许端口3690上进行http连接的代理上工作。端口443上的http代理使用此方法提供安全的https连接方式。如果管理员将代理配置为打开用于http连接的端口3690,则可以设置本地计算机以通过代理建立隧道。
我只是需要从我们公司网络中的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的隧道。
只需根据自己的需要替换端口和服务器地址即可。
回答
好的,这应该很容易:
$ sudo vi /etc/subversion/servers
编辑文件:
[Global] http-proxy-host=my.proxy.com http-proxy-port=3128
保存它,再次运行svn
,它将起作用。