隧道架构

一条隧道,从建立到转发

从SSH握手、账号认证、端口监听,到协议处理、限速与并发控制,隧道的每一层都是自研。原生 ssh -R 只解决了「连通」,我们把业务层全部补上。

nssh 客户端 发起连接 · 自动重连
SSH -R 反向隧道
SSH 服务端 认证 · 协议处理 · 限速 · 转发
端口监听 · 数据转发
内网服务 公网可访问

核心数据流

一条隧道从建立到转发,要经过六个环节,每个环节都可独立管控

从连接到转发

SSH连接 SSH Server
认证 Redis Auth
协议处理 Protocol Handler
隧道创建 Tunnel Manager
端口监听 Port Binding
数据转发 Data Transfer

隧道内核技术

Go语言实现,从协议层开始自研

自研SSH协议栈

基于Go标准库进行深度定制,完整掌控SSH握手、密钥交换、认证、通道建立全流程。

SSH-2.0 协议 密码+密钥认证 反向隧道 自定义通道

自研协程池

自研协程管理机制,按任务类型划分独立工作池,资源精细管控。

独立工作池 阻塞提交 自动调度 资源隔离

自研QoS限速器

基于令牌桶算法,支持全局和隧道级带宽控制,零CPU空转。

令牌桶算法 全局+隧道级 精确阻塞等待 动态调整

并发控制与资源限制

多层并发控制,从单隧道到全局,每个层级都有明确的资源上限。

隧道级隔离 连接数限制 内存监控 Prometheus 指标

原生 ssh -R 做不到的事

连通只是起点,隧道之上还有一整层业务能力

认证鉴权

每次连接都要通过账号认证,隧道不会被陌生人随意占用。

端口分配管理

端口由平台统一分配与回收,避免多条隧道抢同一个端口。

限速控制

按套餐带宽对隧道限速,不干扰同一台服务器上的其它隧道。

并发限制

连接数与内存都有上限,单条隧道不会把节点资源打满。

断线重连

网络抖动后客户端自动重连,隧道尽可能自行恢复。

状态监控

隧道连接状态与流量指标实时上报,异常可查可定位。

为什么这样做隧道

每一项技术选型都有明确的工程理由

为什么不直接用 ssh -R?
原生ssh -R无法做到:认证鉴权、端口分配管理、限速控制、并发限制、断线重连、多进程集群、状态监控。内网云在原生SSH之上构建了完整的业务层。
为什么限速用 阻塞等待 而不是轮询?
传统10ms轮询在低流量时浪费CPU,且精度固定。阻塞消费(ConsumeBlocking)根据TokenBucket缺额精确计算等待时间,零CPU空转,精度到bit/s。

体验自研隧道

注册免费试用,亲身感受自研技术带来的速度与稳定。

免费注册