我在笔记本电脑(Ubuntu)上,其网络使用 HTTP 代理(仅允许 http 连接)。
当我使用 svn up 作为像“http://.....”这样的 url 时,一切都很酷(谷歌浏览器存储库工作完美),但现在我需要使用“svn://...”从服务器上 svn up。 ' 我看到连接被拒绝。
我已经在 /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 访问它,那么您就可以使用 SSH 端口转发的 SVN 服务器。

使用 SSHs -L ( 或者 -R ,我忘了,它总是让我感到困惑)建立一个 ssh 隧道,以便

127.0.0.1:3690 确实通过 ssh 隧道连接到远程:3690,然后您可以通过以下方式使用它

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

好吧,这个话题有点过时了,但是当我在谷歌上找到它并找到一个解决方案时,这可能对某人来说很有趣:

基本上(当然)这在每个 http 代理上都是不可能的,但适用于允许在端口 3690 上进行 http 连接的代理。端口 443 上的 http 代理使用此方法来提供安全 https 连接的方法。如果您的管理员将代理配置为打开端口 3690 以进行 http 连接,您可以设置本地计算机以通过代理建立隧道。

我只是需要从我们公司网络内的 svn.openwrt.org 查看一些文件。创建隧道的一个简单解决方案是将以下行添加到 /etc/hosts

127.0.0.1 svn.openwrt.org

之后,您可以使用 socat 创建到本地端口的 tcp 隧道:

虽然真实;执行 socat tcp-listen:3690 proxy: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 模块并托管 SVN 服务器的服务器上的 Apache。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top