linux – 远程管理防火墙后面的多个设备

我正在寻找一种解决方案,让我可以从中央服务器远程访问多个设备.

这些设备预装了自定义软件,但其网络状况未知,可能在3G或NAT受限的WiFi环境下.

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

但是,我正在寻找一个更易于管理的基础架构,并且更具可扩展性,以防万一.我试着调查其他问题,但我找不到这个问题的答案.我看到有些人建议使用VPN隧道,将每个设备连接到中央设备.如果有人能够解释它是如何工作的那就太棒了,我真的不明白它是如何工作的,我在哪里设置每个设备ID /名称,以及如何在它全部运行后启动远程连接.

任何其他方法解决方案也是受欢迎的.

注1:我认为一个一个的远程访问就足够了,但是如果所有可用的(以便将命令发送到设备组)也会有所帮助(但如果一次解决一个问题,请不要停止回答).

注2:系统是基于debian的. (Raspbian.如果需要它也可以是Ubuntu)

解决方法

随着时尚的口号词“物联网”,我们经常会遇到这类问题.我将通过一些考虑添加一个冗长的答案,并邀请其他人进行编辑和改进.

>放弃对任何特定设备进行交互式访问的想法.您需要设备上的代理从管理服务器获取指令/命令,并且会回发它的健康状况以及任何结果/收集的数据.对于现场运算符来说,确认设备确实与管理服务器通信或出错是很有用的.
>您的设备需要打电话回家.
您希望您的设备连接到您的管理服务器,而不是相反.由于IPv4仍然被许多消费者和企业使用,因此仍然存在相当多的NAT,其中建立从设备到服务器的连接将比其他方式更顺利地工作(这将需要设置端口转发等) .
大多数消费者/小型企业防火墙的认行为是允许所有传出流量,因为那些通常不是真正管理的,这意味着打电话回家通常只需在没有进一步设置的情况下工作.
甚至许多托管网络也更愿意通过打开传入连接来允许传出连接.
>协议需要是HTTP或HTTPS.它在正常的TCP / IP上运行,即使不允许直接访问Internet,您的设备仍然可以轻松配置为使用Web代理.
>您的管理服务器需要侦听认Web端口,即80(HTTP)和/或443(HTTPS).跟随部落有很多话要说……
>您的设备需要能够使用DHCP进行自我配置,但您还需要为现场运算符提供一种方法来设置静态IP配置和/或代理服务器.
>您的设备需要同时支持IPv6和IPv4.
>自动登记 – 在部署之前,您可能不希望(手动)在管理服务器上注册每个设备的设备数量较多,而设备应该在打开电源并连接时自行注册.
>代理商不应该按照固定的时间表运行,您不希望成千上万的代理商在同一时刻为所有电话回家.

你可能想看一下现有的configuration management tooling,它已经提供了很多这样的功能.

如果您决定自己动手,请考虑利用Azure IoT gateway SDK,Google Compute IoTAWS IoT等框架

相关文章

1、安装Apache。 1)执行如下命令,安装Apache服务及其扩展包...
一、先说一下用ansible批量采集机器信息的实现办法: 1、先把...
安装配置 1. 安装vsftpd 检查是否安装了vsftpd # rpm -qa | ...
如何抑制stable_secret读取关键的“net.ipv6.conf.all.stabl...
1 删除0字节文件 find -type f -size 0 -exec rm -rf {} ...
## 步骤 1:安装必要的软件包 首先,需要确保系统已安装 `dh...