远程pipe理防火墙后面的多台设备

我正在寻找一个解决scheme,让我从中央服务器远程访问多个设备。

这些设备预装了定制软件,但其networking条件将是未知的,可能在3G或NAT受限的WiFi环境下。

我想到的第一件事是使用反向SSH连接(通过systemd服务使用ssh -R或autoSSH),尽pipe这意味着每个设备都有一个redirect端口。 这不是一个真正的问题,我怀疑我会有超过50K设备在同一时间运行。

但是,我正在寻找一个更容易pipe理的基础架构,并且更具可扩展性,以防万一。 我试图调查其他问题,我无法find关于这个问题的答案。 我看到一些人推荐使用VPN隧道,将每个设备连接到中心设备。 如果有人能解释它是如何工作的,这将是很好的,我真的不知道如何工作,我在哪里设置每个设备ID /名称,以及如何启动远程连接,一旦它正在运行。

任何其他方法或解决scheme也是受欢迎的。

注1:我认为一个接一个的远程访问就足够了,但如果所有可用的(以便将命令发送到一组设备)也将是有帮助的(但是,如果一个解决scheme在你的脑海里,不要停止回答)。

注2:系统是基于Debian的。 (Raspbian,如果需要也可以是Ubuntu)

用时髦的热门词汇“物联网”,我们经常会遇到这样的问题。 我会添加一些考虑周到的答案,并邀请他人进行编辑和改进。

  • 放弃交互式访问任何特定设备的想法 。 您需要设备上的代理程序从pipe理服务器获取指令/命令,并将其恢复为运行状况和任何结果/收集的数据。 现场操作员确认设备确实与pipe理服务器通信或发生错误是非常有用的。

  • 您的设备需要打电话回家
    你会希望你的设备连接到你的pipe理服务器,而不是相反。 由于许多消费者和企业仍然在使用IPv4,因此在从设备到服务器build立连接的情况下,仍然有相当多的NAT比其他方式更顺利(这将需要设置端口转发等) 。
    大多数消费者/小型企业防火墙的默认行为是允许所有传出stream量,并且由于那些通常不是真正的pipe理,这意味着打电话回家通常会简单地工作,而无需进一步的设置。
    即使很多托pipenetworking也希望允许传出连接,以打开传入连接。

  • 该协议需要是HTTPHTTPS 。 这超过了正常的TCP / IP,即使不允许直接的互联网访问,您的设备仍然可以轻松configuration为使用Web代理。

  • 您的pipe理服务器需要侦听默认的Web端口,即80(HTTP)和/或443(HTTPS)。 跟随这个部落有很多需要说的…

  • 您的设备需要能够使用DHCP进行自我configuration,但您还需要为现场操作员提供设置静态IPconfiguration和/或代理服务器的方法。

  • 您的设备将需要同时支持IPv6和IPv4

  • 自动注册 – 在部署设备之前,您可能不想(手动)注册每台设备的大量设备(而不是设备在开机和连接时应该注册自己)。

  • 代理商不应该按照固定的时间表运行,你不希望成千上万的代理商在同一时间内回家。

你可能想看看现有的configurationpipe理工具 ,它已经提供了很多这样的function。

如果您决定推出自己的产品,请考虑利用框架,如Azure IoT网关SDK , Google Compute IoT或AWS IoT