我需要一个SSH的反向代理解决scheme

嗨,这里是我有一个企业数据中心的一个项目的服务器的情况。 我在端口22上有一台对这台机器的SSH访问权限。有一些虚拟机在这台服务器上运行,然后在其他许多操作系统的工作背后。 现在,由于我在数据中心防火墙后面,所以我的主pipe问我是否可以做一些事情,让我可以让很多人直接访问这些虚拟机。 我知道如果我被允许获得22以外的端口的stream量,那么我可以做一个端口转发。 但是因为我不被允许,所以在这种情况下可以解决什么问题。 想要连接的人可能是完全的白痴。只要在他们的机器上打开putty,甚至可以filezilla,他们可能会很高兴。我已经configuration了一个Apache反向代理,用于将Internetstream量redirect到这些主机上的虚拟机。我不清楚至于SSH我能做些什么。所以在这种情况下,有什么等同于Apache反向代理可以做类似的工作的SSH。

我的手中没有防火墙或22以外的任何其他端口,事实上即使我请求他们不允许打开.2次SSH并不是我主pipe想要的东西。

您应该从数据中心的计算机打开ssh隧道到服务器。 我们将其命名为“server1”。 如果你使用openssh,你可以运行

ssh -L0.0.0.0:8080:localhost:8080 you_username@server1 

这将打开从您的计算机端口8080连接到服务器端口8080,跳过之间的防火墙。 假设你的apache正在侦听端口8080.端口转发格式是侦听IP:本地端口:远程地址:远程端口。 当然,单个服务器也可以使用

 ssh -L0.0.0.0:8080:remote_server_address:8080 you_username@server1 

请注意,localhost in -L参数是相对于server1的。 换句话说,服务器正在看到来自本地主机的连接,实际上这些连接是通过SSH连接从计算机传出的。

你也需要参数

 AllowTcpForwarding yes 

在服务器的sshconfiguration(通常是/ etc / ssh / sshd_config)中。

在此之后,其他人可以通过端口8080连接到您的计算机,通过Apache Reverse Proxy获得连接。 如果你需要一般的代理服务器(所以用户可以select地址,而不是Apacheconfiguration中的特定地址),你应该在server1上安装squid,并使用ssh隧道到squid端口。

也许你可以使用一些像SshMeIn一样的东西 。 这是一个开源的networking系统,将通过防火墙的SSH隧道,你甚至不需要打开端口。