使用不带VPN的私有IP访问Linux服务器

我正在一个无法获取公共IP地址或build立VPN访问的networking上工作。 有没有一种方法可以通过使用云中的中介来远程与本地服务器进行通信:本地服务器和远程客户端都向外发出请求? 如果本地服务器每隔几秒钟向一个公共中介(EC2)发出一个请求,看一个远程客户是否在等待与之通话,那么它没有公有IP的事实并不重要。 此时,我也可以向远方的客户发出请求,并通过公共中介ssh进入服务器。 通过这种方式,客户端和服务器都可以启动一个出站请求,该出站请求可以来自私有IP,而不需要对本地networking进行任何修改。 任何明智的想法?

你可以把一个反向的ssh隧道开放给这个“云端点”。

假设框A是桌面,框P是具有私有IP的服务器,框C是云服务器:

在P上,打开隧道:

P% ssh C -R 2200:localhost:22 

离开这个会议运行。

以后从A:

 A% ssh C C% ssh localhost -p 2200 P% # you're now logged into P 

这只有在没有人打断从P到C的第一个ssh会话的情况下才起作用,但只要他们不这样做,它就可以工作。

我已经做了很多次“通过可访问服务器的隧道” 但最近发现使用IPv6更容易。 只需安装Miredo (或者在Windows上激活Teredo),你就可以得到你自己的全球可用的IPv6地址。 由于它很容易发生变化,请设置一个dynamicDNS,然后设置。

您可以从ntop尝试n2n来build立连接,而无需修改防火墙。

我认为,MadHatter发布的ssh解决scheme是最简单的解决scheme。 另外,根据“无VPN”的含义,您可以在机器上使用私有IP和中介上的OpenVPN服务器build立OpenVPN客户端。 OpenVPN客户端只会向中介提供UDPstream量,但您应该能够访问中介,并且可以通过隧道完全访问私有计算机。 对于这个问题,通过在中介上正确的OpenVPN服务器configuration,您的远程工作站可以被configuration为另一个OpenVPN客户端,并且您可以连接到服务器并透明地查看私有计算机。