反向ssh隧道的数量有什么限制?

我们有100多个embedded式板卡需要偶尔讨论。

我们已经find了可靠地做到这一点的最好方法(有一些奇怪的互联网连接)是让电路板打开一些反向ssh隧道到我们的服务器。

目前,每个委员会开设三条隧道,总数约为300条。隧道大部分时间处于闲置状态。

这是否有任何性能影响? 假设我们没有用完端口或文件描述符,最有可能把我们绊倒的是什么?

编辑:我主要关心一次连接数百个非活动客户端。 只有less数几个隧道在任何时候都能被使用。

主动SSH连接的限制是65,534减去系统中使用的TCP端口数量 – 如果我们想保守,我们只需要说60,000(或者对于大多数实际目的而言是“Unlimited”)。 您可能会遇到其他系统资源限制,具体取决于您连接的计算机。

也就是说,你可能想要节省隧道的数量(你真的需要每块电路板有三个连接吗?),如果你不总是需要连接的话,你可能想让远程站点只在需要的时候启动它们。

TL; DR:内存。 rest是好的(数以百计的隧道)。

假设我们没有用完端口或文件描述符,最有可能把我们绊倒的是什么?

我认为这是足够安全的回答: 记忆

一个快速实验显示每个传入连接消耗4.6兆字节的实际内存。 其中一部分可能是共享的,一个真正的实验会告诉。 修复:添加交换空间。

另外,86兆的寻址空间相当大。 这很可能是共享的,或者一个32位的服务器在50个连接之前就会寻址空间耗尽。 修复:使用64位操作系统。

假设我们没有用完端口或文件描述符,

这个假设是否成立?

  • 在数百个范围内, 端口不会成为问题,除非您的服务器也是其他服务器的高stream量服务器。

  • 文件描述符可能会耗尽。 一个快速实验显示,每个传入的ssh连接消耗了21个文件描述符,而不包括一个shell。 文件描述符的限制可以在系统范围内进行调整,所以它不应该是一个真正的拦截器。

(在64位Debian服务器上完成实验。)