svn通过HTTP代理
我在使用HTTP代理的networking(Ubuntu)的笔记本电脑上(只允许http连接)。
当我使用svn来寻找像'http:// …..'这样的url的时候,所有的东西都很酷(谷歌浏览器仓库工作得很好),但是现在我需要用'svn:// … “我看到连接被拒绝。
我已经在/ etc / subversion / servers中设置了代理configuration,但是没有帮助。
任何人有意见/解决scheme?
在/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
好吧,这应该很简单:
$ sudo vi /etc/subversion/servers
编辑文件:
[Global] http-proxy-host=my.proxy.com http-proxy-port=3128
保存它,再次运行svn
,它将工作。
如果你能得到SSH,你可以使用SSH端口转发的SVN服务器。
使用SSHs -L
(或-R
,我忘了,它总是让我困惑),使一个SSH隧道
127.0.0.1:3690
实际上是通过SSH隧道连接到远程:3690,然后您可以使用它
svn co svn://127.0.0.1/....
当你使用svn:// URI时,它使用端口3690,可能不会使用http代理
svn://不会说http,因此没有任何http代理可以做。
任何理由为什么http不起作用? 你考虑过https吗? 如果您确实需要它,您可能必须在防火墙中打开端口3690。
如果你使用标准的SVN安装,svn://连接将在tcpip端口3690上工作,所以除非你改变你的networkingconfiguration(你说只允许Httpstream量)或者你安装http模块, Apache托pipe您的SVN服务器上的服务器。
好的,这个话题已经有点过时了,但是正如我在google上发现的,有一个解决scheme,对于某个人来说这可能是有趣的:
基本上(当然),这是不可能在每个HTTP代理,但工作在代理上,允许在端口3690 HTTP连接。端口443上的HTTP代理使用此方法提供一种安全的HTTPS连接的方式。 如果您的pipe理员将代理configuration为为http连接打开端口3690,则可以设置本地计算机以通过代理build立隧道。
我只是需要检查一下svn.openwrt.org在我们公司networking中的一些文件。 创build隧道的简单方法是将以下行添加到/ etc / hosts中
127.0.0.1 svn.openwrt.org
之后,您可以使用socat创build到本地端口的tcp隧道:
而真实的; 做socat tcp-listen:3690 proxy:proxy.at.your.company:svn.openwrt.org:3690; DONE
您应该以root身份执行该命令。 它将打开本地端口3690,并在连接上在同一端口上创build一个到svn.openwrt.org的隧道。
只需根据自己的需要更换端口和服务器地址即可。