我想通过代理签出/更新代码,因为我的本地连接速度很慢。 我设置了ssh隧道: ssh -D 8090 [email protected]
把所有数据包转发到我的localhost:8090。
我如何设置颠覆来使用这个?
您正在使用SSH来设置本地SOCKS服务器,该服务器通过SSH连接到您的SSH服务器。 你提到你这样做的原因是“本地连接速度慢”,但是我没有看到如何通过隧道传送到SSH服务器使其更快。
无论如何,你的问题是,Subversion可以通过HTTP代理或SSH隧道连接,但它不知道关于SOCKS。 所以你需要通过捕获所有的TCP连接并将它们redirect到SOCKS代理来进行SOCKSify Subversion。
而不是解释之前做过的那些人,我会告诉你他们详细的解释:
或者简单地说,大部分都是从奥利弗的页面上切下来的:
Debian包含两个在sourceforge上也可用的socksifier。 最近更新的是ProxyChains,configuration起来非常简单。 大多数袜子以类似的方式工作,所以这些说明应该是一个合理的一般情况。 要configurationProxyChains,您只需编辑$(HOME)/。proxychains / proxychains.conf以仅包含以下行:
DynamicChain tcp_read_time_out 15000 tcp_connect_time_out 10000 [ProxyList] socks5 127.0.0.1 8090 # NB: for some reason 'localhost' doesn't work in the above line
所有你需要做的是'包装'svn在ProxyChains。
proxychains svn commit
在上面的例子中,svn应用程序并不聪明,它的TCP连接到Subversion服务器被redirect到你的SOCKS代理。
在这里发帖,因为我发现了一个更less的kludge-y的方式来做到这一点。 您可以使用Polipo通过HTTP代理使用SSH SOCKS隧道,方法是在其configuration中添加以下行:
socksParentProxy = "localhost:8090" socksProxyType = socks5
polipo
默认侦听端口8123
。 然后在$HOME/.subversion/servers
创build一个你想查看的Subversion主机的组,例如,如果你的Subversion版本库主机被命名为proj1.svn.domain.tld
, proj2.svn.domain.tld
,等等,然后将以下内容添加到[groups]
部分:
[groups] domain = *.svn.domain.tld
最后,通过为该组添加一个块,为刚添加的主机组指定一个代理configuration:
[domain] http-proxy-host=localhost http-proxy-port=8123
在此之后,您应该能够正常操作存储库,就像以前在没有SSH隧道的情况下工作一样。
HTH
我不知道使用ssh -D
隧道,但使用类似的东西
ssh -L8090:svn.server.com:22 [email protected]
然后你可以通过添加一个新的协议来颠覆隧道所在的特定端口。 所以,在〜/ .subversion / config中添加一行就好
pssh = ssh -p8090
在[tunnels]
部分,然后而不是svn + ssh://[email protected]使用svn + pssh:// user @ localhost
如果你有一个现有的工作副本,你可以使用
svn switch --relocate svn+ssh://[email protected] svn+pssh://user@localhost
切换与工作副本链接的地址而不必进行新的结账。
查看〜/ .subversion /的默认configuration文件注释了很多有用的例子。 代理将在〜/ .subversion / servers中设置
在Windows PC上有需要通过socks代理服务器获得svn + ssh连接到SVN仓库的场合。 这个问题可以通过提供SSHfunction的Putty解决,并且可以使用不同的代理types。 build议的解决scheme不需要本地端口转发。
这是什么 – SVN将使用协议名称来检测应该使用plink.exe进行连接,并且plink将使用会话名称socks_proxy来标识该代理存在。 请记住,应该使用斜杠inputPATH_TO_PLINK ,而不是反斜杠。 当plink.exe位于文件夹C:\ Program Files \ Putty中时的示例: ssh = C:/ Program Files / Putty / PLINK.EXE -load socks_proxy 。
你可以试试tsocks 。 用tsocks,你configuration它使用SOCKS代理SSH设置然后像这样运行svn:
tsocks svn co {etc...}