2011-05-14 71 views
9

为了工作,我在封闭的网络中工作。有几个我们设置的IP地址只能从我们的网络内访问。不过,有一个方框,我们可以通过SSH进入并通过隧道进入我们各自的开发者框。通过隧道颠覆

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

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

我无法通过SSH进入SVN中,但有使用ssh像一个代理获得访问私有颠覆对话框的方法?

UPDATE:

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

我可以通过开箱子我隧道后SSH进入SVN箱:

ssh [email protected] 
ssh [email protected] 

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

ssh [email protected] -L 22:1.1.1.2:22 

然后在命令行中使用SVN:

svn co svn+ssh://[email protected]/path 

这将返回

svn: Network connection closed unexpectedly

这是怎么发生的? svn + ssh使用另一个我不知道的端口吗?

回答

8

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

我认为你想隧道到任何端口80(如果使用HTTP),端口443(如果使用https)和端口3690,如果你只使用svn(不使用apache)。所以,你的命令应该是这个样子

ssh -f [email protected] -L 3690:your.internal.svn.server:3690 -N 

那么你应该能够检查出/从本地主机提交/更新/ etc,仿佛你本地主机是SVN服务器。

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

+0

我使用svn co svn + ssh:// ip/var/svn/project 如果开箱子的ip是1.1.1.1,svn服务器是1.1.1.2,我会做ssh -f [email protected] - L 3690:1.1.1.2:3690 -N当我尝试使用svn co svn + ssh:// localhost/var/svn/project – tlunter 2011-05-15 00:18:21

+0

尝试并结帐时,这仍然不会返回任何结果。我认为在这种情况下,您希望使用不带ssh的svn。原因是你已经通过SSH隧道到你的公司网络。但是,如果你仍然想要ssh部分,我认为你可能需要转发ssh而不是svn端口。 – wilbbe01 2011-05-15 00:20:44

+0

3690是svn端口。既然你正在通过ssh执行svn(+ ssh部分),你将需要在你的svn服务器上通过SSH隧道。所以我想你想尝试的是'ssh -f [email protected] -L 6000:1.1.1.2:22-N。然后在你的svn + ssh命令中,你需要执行svn + ssh:// localhost:6000/repository/path/here /' – wilbbe01 2011-05-15 00:25:38

0

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

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

+0

请看,我的工作是一所大学的技术团队,所以我可以根据自己的需要进行基本设置。它的一小部分技术人员的好处是,当我们为闭合工作而开发时,我们可以根据需要设置虚拟机。无需经过多人。 我希望能够尝试使这个工作,而不必与任何服务器设置混乱。希望我能很快得到它的工作。 – tlunter 2011-05-15 00:21:19