题 使用没有VPN的私有IP到达Linux服务器


我正在建立一个无法获取公共IP地址或设置VPN访问权限的网络。有没有办法通过使用云中的本地服务器和远程客户端发出出站请求来远程与本地服务器通信?如果本地服务器每隔几秒钟向公共中介(EC2)发出请求以查看远程客户端是否在等待与之通话,那么它没有公共IP这一事实并不重要。此时,我还可以从远程位置的客户端发出请求,并以某种方式通过公共中介进入服务器。这样,客户端和服务器都使用出站请求启动,该出站请求可以源自私有IP,而无需对本地网络进行任何修改。有什么好主意吗?


7
2017-10-06 13:15




恭喜你,你刚刚发明了VPN! - Silent-Bob
@ Silent-Bob或ssh tunel:D - VeeeneX


答案:


您可以将反向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

这只有在没有人中断第一个ssh会话从P到C的情况下才有效,但只要它们没有,它就能正常工作。


8
2017-10-06 13:46



您还可以使用某种进程监视来确保ssh仍在P上运行,例如,使用monit或Upstart。 - cjc
使用autossh可避免在不活动或其他方式后丢失连接 - chmeee


我已经很多次完成了“通过可访问服务器的隧道”;但最近发现使用IPv6要容易得多。只需安装 Miredo,(或在Windows上激活Teredo),您就拥有了自己的全局可访问IPv6地址。由于它易于更改,因此请设置动态DNS,然后进行设置。


2
2017-10-06 13:54





你可以试试 来自ntop的n2n 在不修改防火墙的情况下建立连接。


1
2017-10-06 13:21





我认为MadHatter发布的ssh解决方案是最简单的。此外,根据“无VPN”的含义,您可以在机器上使用专用IP和中间设备上的OpenVPN服务器设置OpenVPN客户端。 OpenVPN客户端将仅向中介提供传出的UDP流量,但您应该能够访问中介并且可以通过隧道完全访问私有机器。就此而言,通过中间件上正确的OpenVPN服务器配置,您的远程工作站可以配置为另一个OpenVPN客户端,您只需连接到服务器并透明地查看私人计算机即可。


1
2017-10-06 13:53