如何远程访问多台基于 Raspberry 的机器(物联网)

问题描述 投票:0回答:1

我们开发了一种基于中央大脑(Raspberry Pi 计算机)的机器。它使用4G/5G路由器来访问外部世界。我预计会有数百台这样的机器。现在,我创建了一个基于 REST 的 API,这样我就可以访问 Raspberry 内存/磁盘中的数据库,我的问题是:考虑到静态 IP 不是免费的,而且并不便宜,该怎么办?每台机器都有一个新域,以便该域将成为 API 的端点?我在这里看到的问题是,我必须注册和维护数百个域(例如 www.machine1.comwww.machine2.com 等)。我认为这不是正确的制作方法,对吗?当我想到基于云或现场服务器的解决方案时,我仍然遇到这样的问题:云应用程序或服务器需要知道在哪里可以找到每台机器进行 API 通信(静态 IP 或域)。

如果有人可以帮助我决定如何选择正确的解决方案,我将不胜感激。谢谢!

到目前为止,我正在考虑为每台计算机购买静态 IP 或为每台计算机购买特定/临时域。对我来说,这些解决方案似乎都不是有效或明智的方法。

rest raspberry-pi cloud iot remote-access
1个回答
0
投票

首先,您确定远程计算机上有公共IP吗?
端口可以远程访问吗?
在某些情况下,ISP 使用 4G/5G 专用网络,因此他们不必拥有与设备一样多的公共 IPv4...例如法国就是这种情况。

我们暂时先把 REST API 放在一边。

那么你就会有以下2种情况:

案例A:公网IP

如果您有一个具有可访问端口的公共 IP,您可以使用中央服务器,每台计算机都会定期连接该服务器以提供/更新其 IP。

然后中央服务器记录这些“资产”及其IP。
如果您不想编写和管理此服务器,您可以使用您选择的 DynamicDns 服务。

案例B:私有IP

如果您的计算机位于 NAT 网络上,则必须使用中央服务器,每台计算机都将连接到该服务器,然后等待来自该连接的命令。

抛开安全问题,最简单的方法是使用 ssh,因为您可以将本地端口绑定到远程连接(请参阅

man ssh
,选项:-L 或 -D)。
从安全角度来看,您至少必须 chroot/jail 到中央服务器的每个传入连接,以确保没有人可以干扰该服务器。

在这两种情况下,请务必确保客户端连接中央服务器并与之通信的方式的安全。

现在您知道如何连接,如何与您的 API 对话?

案例 A 很简单:正常使用 API,因为您拥有远程 IP/dns。

情况 B 因为您无法打开端口,所以您必须通过机器和中央服务器之间的隧道进行通信。

© www.soinside.com 2019 - 2024. All rights reserved.