设想
- 多个 IoT 设备由不同的客户拥有,在不同的 NAT LAN 后面运行。
- 想要远程访问其物联网设备的客户。
- 物联网设备有一个板载手动网络服务器。
- 客户当前通过临时分配的(按每个连接)WAN 非 CGNAT IPv4 地址(该国仅有一家移动运营商提供)远程访问他们的物联网设备。
约束
- IoT 设备在最小硬件(~8MB 闪存)上运行裸机固件,因此无法运行任何客户端软件(绝对必要的固件修改除外)。
- 固件无法支持 IPv6。
- 许多设备位于相当偏远的位置,因此添加另一个物理设备(例如运行 Ngrok 之类的设备)实际上是不可行的。
问题
我们如何摆脱单一蜂窝供应商的供应商锁定,同时仍为我们的客户提供对其物联网设备的远程访问?
理想情况下,我们会为客户设置一个集中式反向代理,但反向代理通常需要已知的上游主机地址。在我们的案例中,我们的上游将是 NAT LAN 后面的 IoT 设备。
是否存在可以作为反向代理的现有软件/服务,但上游动态地“呈现自己”(向反向代理)?
答案1
也许可以看看 frp:一个快速反向代理,可帮助您将 NAT 或防火墙后面的本地服务器暴露给互联网。它还提供编译后的 ARM 二进制文件。
Github项目链接:https://github.com/fatedier/frp