VNMesh:无限资源的内网穿透方案

6 阅读6分钟

传统的内网穿透服务,都有端口映射数量、连接数目限制,只能满足轻量使用,只要服务数量或连接数量增长到一定程度,就会被拒绝服务。即便是充值到高级会员,资源数目只是稍微多那么一点,还是有很大限制,无法从根本上满足用户需求。

为什么会有资源数目限制?

以TCP端口映射为例,用户需要将本地服务映射到公网转发节点的一个公开TCP端口上,而服务器端口数量有限,最多65535个,这是TCP/IP协议的上限。但这65535个端口不能都拿来给用户分配,因为服务器本身还需要占用一些端口号,如ssh、http、telent等服务都需要占用知名TCP端口号,通常来说,低于1024的端口都是知名端口,是不参与动态分配的。另外,还需要留一部分端口范围给服务器作为注册端口,范围通常是1024-49151,这部分端口供普通用户和服务使用。动态/私有端口 (49152-65535)则是IANA规定的临时端口分配的主要范围,用于动态分配端口号。而在许多主流 Linux 发行版中,内核用于动态分配的临时端口范围实际上是32768 到 60999(这与 IANA 建议的 49152-65535 有所不同),这些端口才是转发服务器能拿来动态分配的端口号,数量极其有限。虽然可以通过修改Linux系统配置增加少量端口,但能增加的依然有限,并且会影响系统自身的可用性和稳定性。

这就是为什么每个用户只能创建少量TCP端口映射的原因。资源就这么点,用户茫茫多,狼多肉少,自然会限制申请数量。

为什么会有连接数量限制?

传统的内网穿透服务通常只有几条几十条的连接上限,即便是付费,连接数量也不会很多,只够轻度使用,只要业务量一上来,连接数目完全不够用的。这些限制的根本原因是什么呢?

每个公网服务器节点的资源是固定的,维持连接需要实实在在的消耗:

  • 内存是最大瓶颈:每个TCP连接都需要内存来维持状态、协议栈缓冲区和会话信息。一个连接可能消耗几KB到几十KB。如果支持1万个并发,单是连接状态就可能消耗几百MB甚至GB级内存,成本很高。
  • CPU消耗不容忽视:高并发下,CPU主要忙于处理数据处理、系统调用(epoll/kqueue事件循环)和上下文切换。当数千个连接并发传输数据时,CPU使用率会飙升,导致响应变慢。
  • 文件描述符上限:每个连接都是一个“文件”,操作系统对进程能打开的文件描述符数量有限制,虽然可以调高,但太高也会影响系统稳定性。

这些限制决定了传统的内网穿透服务不会给用户分配太多的连接数量。

VNMesh如何破局

破解资源数量的限制

对于资源数量的限制,VNMesh特别提供了全端口设备映射方案,用户可以将1-65535个端口全部一键映射到公网,不再有端口数量的限制。

解决了什么核心痛点?

  • 告别繁琐的逐个配置:这是最直观的好处。如果你在内网设备上运行着多个服务(比如 SSH (22)、远程桌面 (3389)、Web 服务 (80, 443)、数据库 (3306, 5432) 以及各种游戏服务器),传统方案需要为每个服务手动配置一条“公网端口 -> 内网IP:端口”的规则。而全端口映射只需一次配置,所有端口自动生效。
  • 保留原始端口号:很多软件或硬编码的应用程序会默认连接特定端口(例如,FTP 的 21 端口,游戏服务器的 25565 端口)。使用传统端口映射时,你经常需要把公网的10021端口映射到内网的 21 端口,访问时还得记着。全端口映射能确保你用 公网IP:21 就能直接访问到内网的 FTP服务,体验和操作一台真正的公网服务器完全一样。
  • 不再有端口映射数量的限制:全部的1-65535个端口可以一键映射,没有了资源数目限制,核心价值不仅仅是把 6 万多个端口全打开,而是给了你“拥有整台服务器”的完整能力和控制权,让你可以像管理一台真正的云主机一样,灵活、从容地管理和使用你的内网设备

破解连接数量的限制

对于连接数量的限制,VNMesh的转发服务器的设备映射能力当前已经做到了并发10亿条连接,这还远远没到其连接数目上限,只是压到了这么多。有了这么大量连接的能力后,就可以给每个用户分配大量连接数量,甚至不做限制。此时连接数量的瓶颈就已经不在公网转发服务器了,而在于用户的内网服务器能承受多少条连接。

未来的方向:举一反三,推而广之

既然设备映射能做到无连接数目限制,那么传统的TCP端口映射、WEB服务映射等,是不是也能做到无连接数量限制呢?理论上来说,答案是肯定的,技术上来说,是有一定难度的。这也是VNMesh当前正在努力攻克的方向,并且已经有了不错的效果,相信在不久的将来,就能看到VNMesh的全服务无限连接。

期待您的建议

VNMesh是一个完全创新的内网穿透方案,和传统服务从底层技术上就走了不同的路,它还在快速发展中,非常期待您的参与,我们期待您的宝贵建议,以使得VNMesh更健康的发展。

By:www.vnmesh.com