跳到主要内容

服务端组件

一句话版:服务端是隧道的大本营——你的 nssh 客户端主动连上来、把隧道挂在这儿,外部流量也由它送进隧道。它是整个体系里离内网最近的一环。


一、它是谁

服务端是运行在节点上的隧道接入服务(SSH 服务端)。你的内网客户端(nssh / ssh)主动连接它,建立一条反向隧道并长期保持,这条隧道就算"落户"在这个服务端上了。

二、它干什么

  • 收留客户端:接受客户端连接,帮它在公网侧挂上访问入口;
  • 看护隧道:隧道活着它就守着,断线后客户端重连回来它重新接上;
  • 转流量:外部请求到达后,由它把流量沿对应隧道送进内网,再把内网的响应带回来。

三、身份端口:它在集群里的"门牌号"

一台节点上往往跑着多个服务端实例,每个实例分配一个独立端口,这个端口就是该实例在集群里的"身份端口"(通常从 2022 开始依次编号)。

  • 一个身份端口 = 一个服务端实例的"工位号";
  • 每个工位内可承载多条隧道(即"每个身份端口 × N 条隧道");
  • 集群能容纳多少隧道,首先受"身份端口总数"约束——而端口号本身有数量上限,这就是后面要聊的"6 万上限"的来源(见 端口负载均衡方案)。
外部流量


服务端实例(身份端口 2022) ── 隧道 A ──> 内网服务 A
── 隧道 B ──> 内网服务 B
服务端实例(身份端口 2023) ── 隧道 C ──> 内网服务 C

四、它和谁配合

伙伴怎么配合
你的客户端客户端连它建隧道、定时心跳、断线重连
L4 负载均衡多个实例合用一个公共入口,由负载均衡分发,见 L4 负载均衡组件
数据端它向数据端"报到",让账本知道哪些隧道在它这儿,见 数据端组件
网关HTTP 网关 / L4 网关把认好的流量交到对应实例

五、小结

记住内网云:服务端是隧道的家,身份端口是门牌号;家里能住多少客,先看门牌有多少。