·
16 commits
to master
since this release
JNDC Release
本次版本是自 v20220314 以来的一次较大更新,覆盖服务端、客户端、管理控制台、协议层、部署脚本和运行时配置体系。
Highlights
1. 全新管理控制台
- 新增独立的
jndc-server-frontend前端工程,基于 Vite + React + Ant Design 重构管理后台。 - 管理端现已覆盖完整的核心页面:
- 隧道列表
- 服务注册信息
- 服务管控
- 远程终端
- 端口监听
- IP 访问管控
- HTTP 应用
- 服务端运行信息
- 管理端支持登录鉴权、页面切换动画、统一请求封装,以及基于 WebSocket 的实时通知能力。
2. 新增远程终端能力
- 新增 browser -> server -> client 的远程终端链路。
- 支持在管理后台直接连接客户端终端执行命令。
- 支持终端打开、输入、输出、关闭等完整会话流程。
- 客户端会根据操作系统自动选择 shell:
- Windows:
cmd.exe - Unix-like:
/bin/sh
- Windows:
3. 新增服务端对客户端服务的管控能力
- 客户端新增
authMode配置,支持两种模式:SELF_MANAGEDFULL_AUTHORIZED
- 在全授权模式下,服务端可直接下发并替换客户端受控服务列表。
- 管理后台新增“服务管控”页面,用于查看目标服务状态和执行替换操作。
4. 流量统计与运行状态增强
- 新增客户端设备摘要采集与上报能力,包括设备侧基础信息。
- 服务端新增流量分析中心,可记录并展示:
- 客户端上行/下行累计流量
- 实时带宽快照
- 流量趋势数据
- 流量趋势支持按时间桶聚合,便于后续可视化分析。
- 管理端新增服务端运行信息页与隧道流量查看能力。
5. SQLite 持久化与运行时数据治理增强
- 数据存储层完成重构,新增更清晰的 SQLite 抽象与初始化脚本。
- 新增多类运行时记录对象,包括:
- 客户端认证记录
- 受控服务记录
- 流量趋势记录
- IP 过滤记录
- 通道断连记录
- 新增运行时数据清理服务,支持定期清理历史记录并按需执行
VACUUM。 - 服务端配置新增
cleanupConfig,可控制不同类型历史数据的保留周期。
6. 工程结构与部署方式升级
- 服务端与客户端工程结构进一步拆分,后端与前端边界更清晰。
- 新增服务端统一启动脚本与部署资源:
jndc.shstartup.shshutdown.shrestart.shstatus.shjndc.envjndc-server.service
- 更适合独立部署、脚本运维和 systemd 托管。
- 配置模板同步完善,便于首次初始化和生产部署。
Core Changes
- 升级构建要求到 JDK 21。
- 协议层新增消息模型:
DeviceSummaryServiceControlMessageTerminalControlMessage
- 公共 Web 支撑能力下沉到
jndc_core,服务端/客户端复用性更高。 - 服务端管理 API 和 WebSocket 基础设施重构,鉴权和请求处理链路更清晰。
- Maven、Netty、Lombok、Logback、SQLite 等依赖与构建配置已同步更新。
Fixes & Improvements
- 修复部分配置路径与读取方式相关问题。
- 修复重复绑定可能导致的异常问题。
- 修复错误密码场景下的重复请求问题。
- 优化筛选、IP 记录查询、URL 解析等细节逻辑。
- 更新 README、中文文档和面向开发/协作的项目说明文档。
Breaking / Upgrade Notes
- 当前版本运行和构建统一要求 JDK 21。
- 运行时配置目录以
~/.jndc为准:- Server:
~/.jndc/server/conf/config.yml - Client:
~/.jndc/client/conf/config.yml
- Server:
- 若配置文件不存在,请使用各模块
config.template.yml初始化。 - 管理端前端现按独立部署方式处理,反向代理时请确认:
/api->1777/ws->ws://<server>:1777/ws
- 前端开发端口为
5173。 - 旧客户端 GUI 相关代码已移除,当前客户端以新的后端运行结构为主。
Notes
本次版本属于一次偏架构化、平台化的升级,不只是功能追加,也包括管理面重构、运行治理增强和部署链路标准化。若你是从较早版本升级,建议优先核对 JDK、配置文件位置、管理端代理配置和启动脚本用法。