是否可以configuration反向VPN隧道?

基本上,我的目标是有一个100%的便携式和独立的服务器。 我正在使用由太阳能电池板和电池供电的Raspberry Pi来构build它,并使用4g热点连接到互联网。 它只需要有2个function,一个SSH服务和一个VPN服务。

这是我的问题。

我最初开始这个项目,认为我最大的问题将是IP漫游。 我为自己build立了一个dynamicDNS域,并写了一个每60秒更新一次的cron。 然后我将端口转发到Pi(热点基本上是一个路由器,而且pi有一个wifiencryption狗)。

但是,我无法使用公共IP连接到热点路由器。 那么我意识到,所有的4G LTE设备都可以在一个子网上接收IP到更大的NAT。 这显然是4G的一种新做法。 3G设备用来接收可达的公共IP。

基本上我需要一种方法来访问没有唯一IP的VPN服务器。

VPN服务器是否可以build立与客户端的连接,有点像反向的SSH隧道?

就像它可以连续轮询一组IP地址(或dynamicDNS域),直到其中一个接受连接,或者轮询另一个服务器,该服务器将包含IP当前“想要”连接的列表(并且这些IP本质上查询该服务器以请求VPN连接)。

我知道这是迟缓的,打破了客户端的服务器模式,但我有点绝望。 可能吗?

正如你所看到的,连接回你的系统并不那么简单。 问题的实质是,即使你可以做DNS注册(这使得服务器可以find彼此的资格),你的机器之间的实际IP连接是不可能的。

您的问题有多种解决scheme。

最简单的是,如果你有某种types的中央服务器(具有公共的,固定的IP),并且VPN服务器在其上运行。 在您的rasperry pi上,就像其他客户端一样,只有一个VPN客户端运行。 此服务器作为rasperrys和其他设备之间的中间网关。

Raspberry -> Central GW machine <- Your any other system 

它解决了DNS注册的问题和IP联系人的问题。

从networking的angular度来看,没有人连接到你的rasperry。 只有你的树莓连接到你的中央GW。

OpenVPN是一个非常漂亮的解决scheme。


还有更棘手的解决scheme。 例如,你可以以某种方式告诉你的rasperry 连接到你的客户,并通过这个vpn。 但是,如果您的客户也支持NAT,那么目前这种情况非常普遍,尤其是在移动networking中。

或者你也可以使用tor来查找你身后的中间服务器。 是的, tor并不是真正的破解工具,它也可以用于常规任务。 但这不是很可靠,而且很慢。

我也遇到了连接到我的树莓派连接到打开热点(在我的情况下,这是最佳WiFi)( SSH到我的树莓派2 @最佳WiFi – 树莓派交易所 )的一些问题。

所以,我想分享一下使用这个ssh反向隧道进入我的Raspberry Pi 2方法:

 pi@raspberrypi ~ $ crontab -l | tail -1 @hourly ssh -S alexus -O check XXX > /dev/null 2>&1 ; if [ $? != 0 ] ; then ssh -M -S alexus -fN -R2222:localhost:22 -p 443 XXX ; fi pi@raspberrypi ~ $ 

这个解决scheme需要另一个主机启动并运行,通过它你可以SSH进入你的树莓。 即使这个解决scheme不适合你,也可能适用于其他人)

在不久的将来,我打算探索openvpn选项。

尼基塔,你其实有几个select。 我已经用专用的电源设置了RP,但是在电路板上只有一个mifi卡。

最简单的解决scheme是联系您的ISP并请求一个公共或静态的NAT IP地址。 大多数无线提供商将这样做,但他们可能会收取您的费用。 Verizon每个账户的费用为500美元,但是您可以根据自己的需要在设备上设置尽可能多的公共IP地址。 我不知道其他提供商是否收费。

另一个select是用反向SSH设置一个穷人的VPN。 这允许Pi创build到服务器的连接,您可以在其中遍历SSH连接返回到设备。 有关说明,请参阅此文章http://www.thegeekstuff.com/2013/11/reverse-ssh-tunnel/

有许多远程pipe理客户端,只要记住,没有一个公共的IP,而不是一个私有的NAT IP,你将不得不让它build立连接。 幸运的是,这是大多数客户如何在家庭networking上运行,所以有很多解决scheme。