智能客户端架构
无人值守,自动调和
客户端分两种形态:nssh 负责把隧道建起来,智能客户端 nssh-agent 负责让它一直活着。Web 端把隧道分配到设备,Agent 自动调和,全程无需登录设备。
Web 管理端
设备分组 · 隧道分配
心跳轮询 · 隧道下发
智能客户端
声明式调和 · 自动更新
自动增删改隧道
nssh 客户端
建立隧道 · 自动重连
客户端
客户端技术方案
Go语言实现,支持多平台多形态,推荐「智能客户端 + nssh」组合
nssh 客户端(开源版)
CLI
参数解析 · 命令分发
Unix Socket / Named Pipe
Daemon
守护进程 · Worker管理
子进程
Worker 1
Worker 2
Worker 3
·····
安装方式
pip
npm
Docker
多平台二进制
断线重连
网络中断后自动重连,守护进程持续管理连接状态。
心跳保活
定期发送心跳包检测连接状态,确保隧道持续可用。
双向转发
高效的数据双向传输,支持高并发连接转发。
多版本
标准版、NAS版、路由版、企业版,适配不同设备场景。
无人值守
智能客户端(nssh-agent)
部署一次,之后所有隧道都由 Agent 自动照看
部署在局域网设备上的无人值守常驻程序,定期从 Web 管理端拉取分配给本设备的隧道,自动调和本地 nssh,全程无需人工登录设备。
Agent 自动化循环
心跳轮询
定期上报状态
隧道分配
Web 下发本设备子集
声明式调和
自动增删改隧道
nssh 更新
SHA256 校验替换
Agent 自更新
后台无缝替换
隧道自动分配
Web 端按设备分组分配隧道,心跳只拉取本设备子集,数据隔离。
自动管理 nssh
按期望状态自动增删改 nssh 隧道进程,配置变更自动生效。
自动更新
nssh 二进制与 Agent 自身均自动检测新版本,校验后无缝替换。
断网保护
拉取失败时保持最后已知状态,绝不因网络问题拆除隧道。
技术选型
为什么这样做客户端
每一项技术选型都有明确的工程理由
为什么客户端也用 Go?
Go可交叉编译到所有平台(Linux/macOS/Windows/ARM),单二进制文件无依赖,UPX压缩后体积小,适合嵌入式设备(NAS/路由器)。