通过蜂窝网络Webify嵌入式基于Linux的控制器

时间:2011-02-19 00:02:40

标签: linux networking embedded cellular-network

在以下项目中需要一个基本方向。

有一个基于linux的控制器做一些工业控制的东西。 该盒子配备了蜂窝调制解调器,能够通过移动运营商上网。使用蜂窝通信是因为控制器大多安装在没有电缆或短距离无线电的地方。太阳通常不会发光的地方:)

任务是允许互联网客户端直接连接到盒子以进行一些基本的控制/监控。问题是连通性 - 客户如何发现盒子? - 我想让盒子充当服务器(如果可能的话)。假设蜂窝运营商允许盒子上线并不一定意味着盒子将获得公共IP,以便任何人都可以连接。据我所知,蜂窝网络充当了在其内部工作的人的网关,并且无法从外部接触该网络中的某个人。我错了吗?我们正在寻找通用解决方案,而不是针对特定蜂窝提供商的解决方案。控制器安装在不同的国家,我们需要找到标准方式来“webify”它。

框中的软件(和硬件)是我们的,我们基本上可以做任何事情,但我正在寻找正确的方式来做到这一点,以避免以后与不同提供商的意外。顺便说一句,解决方案不一定必须是技术性的,也许可以购买永久IP的每盒,或设置VPN ..我应该采用哪种方式?有什么问题要问?

欢迎您的想法!

3 个答案:

答案 0 :(得分:1)

这是“移动代理”出现在不同地方或使用不同提供商的典型问题(在这种情况下只是一个提供商,但它几乎相同)。通常它是使用某种家庭代理解决的 - 移动连接到的服务器并提供有关如何到达它的详细信息,或者如果无法直接访问它,则归属代理充当代理。

客户端始终首先联系本地代理,如果可能,他们会联系移动设备,或者如果不是,他们会将服务器用作代理。

在某些情况下,动态dns可能足以满足您需要真正的代理/外观。

有一本好书:Andrew S. Tanenbaum& Maarten van Steen:“分布式系统:原理和范例”

答案 1 :(得分:1)

您对问题的总结基本上是正确的。我已经实现了几个这样做的系统,并且成功的几率很高。

解决此问题的方式取决于您希望单个用户与之交互的远程单元数量。如果每个用户只处理一个或两个设备,则在远程设备上实现Web服务器是合理的。如果每个用户处理许多设备,请考虑尽可能多地集中管理。我使用Zenoss实现了数据记录和自定义控制服务器。

如果Web服务器位于远程设备上,您可以购买带有静态IP的SIM卡,也可以使用代理服务器。我建议设置代理服务器,除非设备数量非常少。

SIM卡有三种选择:

  • 在公共互联网上使用地址的静态IP将是昂贵的,并且与每个国家的每个提供商协商交易将是令人厌烦的。不需要代理服务器。
  • 私有APN SIM将为您提供静态地址选项,但在私有地址范围内。仍然需要与移动网络进行协商,并且您将需要代理服务器位于公共互联网和私人地址范围之间,
  • 标准数据SIM将通过NAT连接到Internet。您可以通过打开VPN连接(我们使用openvpn)来服务器来使用它们来托管您的服务。您现在可以通过连接到同一VPN或通过代理服务器直接访问设备。

如果你使用openvpn,这里有一些提示:

  • 为每个单元提供一个公共序列号和一个私钥。将它们存储在设备的固件中,并存储在中央数据库中。将公共序列号放在设备外部。您可以使用openvpn登录脚本来确保特定单元始终显示在正确的IP地址上,从而使代理配置保持静态。
  • 您可以通过调整其keepalive行为以及重新协商的频率来控制openvpn的带宽使用情况。在大型部署之前测量并调整它。
  • 移动网络中的NAT超时通常在5到15分钟之间。设备必须经常向服务器发送数据包,以使NAT保持活动状态。
  • 廉价SIM卡交易可能只适用于有限端口的网络。

其他提示:

  • GPRS调制解调器固件可以(很少)内部崩溃。如果您的硬件支持它,请为软件提供电源循环调制解调器的功能。
  • 在发送国际货件之前,在您所在国家/地区覆盖率较差的地区测试您的包装盒。

答案 2 :(得分:0)

您可以要求移动电话提供商为您提供具有互联网接入和固定IP地址的SIM卡。然后你可以托管你喜欢的任何服务器。不要忘记你正在处理有限的带宽。