11

对于工作,我在一个封闭的网络中工作。我们设置的一些 IP 地址只能从我们的网络内部访问。不过,有一个盒子,我们可以通过 SSH 进入并通过隧道进入我们各自的开发者盒子。

我知道我可以通过使用-Lssh 的参数从我们的开发人员框中获取流量。我想知道是否有一种方法可以通过我们打开的盒子进入一个封闭的盒子,如果我们的 Subversion (SVN) 存储库被存储?

My computer --> Open box --> Developer boxes/SVN repository

我无法通过 ssh 进入 SVN 框,但是有没有办法像代理一样使用 ssh 来访问私有 Subversion 框?

更新:

1.1.1.1 -> 打开盒子 1.1.1.2 -> SVN 盒子

通过打开的盒子后,我可以通过 SSH 连接到 SVN 盒子:

ssh user1@1.1.1.1
ssh user2@1.1.1.2

这将允许我访问 SVN 框。我想,ssh 进入打开的盒子,本地转发 SVN 盒子的端口 22 到我的端口 22。因此

ssh user1@1.1.1.1 -L 22:1.1.1.2:22

然后在命令行中使用 SVN:

svn co svn+ssh://user2@localhost/path

这返回

svn:网络连接意外关闭

为什么会这样?svn+ssh 是否使用我不知道的另一个端口?

4

2 回答 2

9

是的,你应该能够隧道。我不确定你是否在工作时使用类似这样svn co http://.....或类似的东西连接到 SVNsvn checkout svn://......

我想你想隧道到端口 80(如果使用 http)、端口 443(如果使用 https)和端口 3690,如果你只使用 svn(不使用 apache)。所以你的命令应该是这样的

ssh -f user@publicly.accessible.server.com -L 3690:your.internal.svn.server:3690 -N

然后你应该能够从你的 localhost 签出/提交/更新/等,就好像你的 localhost 是 svn 服务器一样。

-f 使其进入后台,因此当您想要的只是隧道时,您不会看到终端卡在公共服务器 shell 提示符处。-N 表示不执行远程命令。

于 2011-05-14T22:16:30.550 回答
0

我们公司也有同样的情况。如果不使用VPN访问“内部”网络,我能想到的唯一选择是在网络上打一个洞以允许访问您的特定盒子。我们通常在 netscalar 中创建一个指向内部盒子的虚拟 IP 地址,以保护内部盒子免受“命名”暴露。

我建议与您的网络团队合作创建此设置,或者如果您没有网络团队,请查看路由器设置以创建此连接。

于 2011-05-14T22:16:26.117 回答