服务端组件
一句话版:服务端是隧道的大本营——你的 nssh 客户端主动连上来、把隧道挂在这儿,外部流量也由它送进隧道。它是整个体系里离内网最近的一环。
一、它是谁
服务端是运行在节点上的隧道接入服务(SSH 服务端)。你的内网客户端(nssh / ssh)主动连接它,建立一条反向隧道并长期保持,这条隧道就算"落户"在这个服务端上了。
二、它干什么
- 收留客户端:接受客户端连接,帮它在公网侧挂上访问入口;
- 看护隧道:隧道活着它就守着,断线后客户端重连回来它重新接上;
- 转流量:外部请求到达后,由它把流量沿对应隧道送进内网,再把内网的响应带回来。
三、身份端口:它在集群里的"门牌号"
一台节点上往往跑着多个服务端实例,每个实例分配一个独立端口,这个端口就是该实例在集群里的"身份端口"(通常从 2022 开始依次编号)。
- 一个身份端口 = 一个服务端实例的"工位号";
- 每个工位内可承载多条隧道(即"每个身份端口 × N 条隧道");
- 集群能容纳多少隧道,首先受"身份端口总数"约束——而端口号本身有数量上限,这就是后面要聊的"6 万上限"的来源(见 端口负载均衡方案)。
外部流量
│
▼
服务端实例(身份端口 2022) ── 隧道 A ──> 内网服务 A
── 隧道 B ──> 内网服务 B
服务端实例(身份端口 2023) ── 隧道 C ──> 内网服务 C
四、它和谁配合
| 伙伴 | 怎么配合 |
|---|---|
| 你的客户端 | 客户端连它建隧道、定时心跳、断线重连 |
| L4 负载均衡 | 多个实例合用一个公共入口,由负载均衡分发,见 L4 负载均衡组件 |
| 数据端 | 它向数据端"报到",让账本知道哪些隧道在它这儿,见 数据端组件 |
| 网关 | HTTP 网关 / L4 网关把认好的流量交到对应实例 |
五、小结
记住内网云:服务端是隧道的家,身份端口是门牌号;家里能住多少客,先看门牌有多少。