通过隧道颠覆

时间:2011-05-14 22:09:02

标签: svn ssh tunneling

为了工作,我在一个封闭的网络中工作。我们设置了一些IP地址,只能从我们的网络内部访问。但是,有一个框可以通过SSH连接到隧道并通过我们各自的开发人员框。

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

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

我不能ssh进入SVN框,但有没有办法像代理一样使用ssh来访问私有的Subversion框?

更新

1.1.1.1 - >开箱 1.1.1.2 - > SVN Box

我穿过打开的方框后,我可以通过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是否使用了我不知道的另一个端口?

2 个答案:

答案 0 :(得分:8)

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

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

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

然后你应该可以从localhost检出/ commit / update / etc,就好像你的localhost是svn服务器一样。

-f使它变为后台,所以当你想要的只是隧道时,你看不到终端卡在公共服务器shell提示符下。 -N表示不执行远程命令。

答案 1 :(得分:0)

我们公司也有同样的情况。如果没有使用VPN来访问“内部”网络,我能想到的唯一选择就是在网络中打一个洞以允许访问您的特定盒子。我们通常在netscalar中创建一个虚拟IP地址,指向内部框以屏蔽内部框与“命名”曝光。

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