【问题标题】:run shell script on client remotly from server从服务器远程在客户端上运行 shell 脚本
【发布时间】:2016-04-25 07:00:00
【问题描述】:

我有一台服务器和多个客户端。服务器想要在它想要的每台设备上运行 shell 脚本。绝对不可能通过简单的套接字,因为我们可能有成千上万的设备。服务器和设备也应始终通过套接字连接。经过大量搜索后,我发现解决方案可能是 NAT-T。但我仍然不知道如何使用它或者是否有其他解决方案。 请帮助我在客户端和服务器上应该做什么。

【问题讨论】:

  • 那么在每台设备上都使用 ssh 吗?有 nodejs 库可以做到这一点。如果您打开了一个套接字(现在不清楚是否有或没有),您可以使用类似于子进程通信的东西吗?为什么要使用 NAT?这听起来更像是节点之外的网络层问题。您可以或不能从服务器访问设备,还是只能设备访问服务器?
  • 那么客户端的地址和端口是什么?客户的地址也可能发生变化。问题是我如何通过服务器访问客户端。

标签: node.js nat-traversal


【解决方案1】:

如果您事先不知道客户端地址和端口,则需要使用客户端连接到服务器。 1000 台设备都没有问题。您在大约 65000 个开放端口的套接字限制中运行(检查 ulimit)。在客户端和服务器之间构建一个对象流,并根据客户端接收到的对象执行脚本。您还可以在客户端上设置一个时间间隔,让他们每隔 n 秒使用简单的 http(s) 检查是否有需要为他们做的事情?

请参见此处的示例:Node Stream Docs 或在这里:Node HTTP Docs

【讨论】:

  • 客户端超过65000怎么办?
  • 您需要另一种方法 - 例如 http.但是如果你有超过 65000 个客户端,你可能需要一个真正的架构。看看一些 IoT 架构方法,例如来自 amazon aws 或其他...
猜你喜欢
  • 2012-10-20
  • 1970-01-01
  • 2018-07-17
  • 1970-01-01
  • 1970-01-01
  • 2018-07-30
  • 1970-01-01
  • 1970-01-01
  • 2016-12-01
相关资源
最近更新 更多