这是本节的多页打印视图。 .
更新日志
- 1: v0.26.40
- 2: v0.26.38
- 3: v0.26.37
- 4: v0.26.36
- 5: v0.26.35
- 6: v0.26.34
- 7: v0.26.33
- 8: v0.26.32
- 9: v0.26.31
- 10: v0.26.30
- 11: v0.26.29
- 12: v0.26.28
- 13: v0.26.27
- 14: v0.26.26
- 15: v0.26.25
- 16: v0.26.24
- 17: v0.26.23
- 18: v0.26.22
- 19: v0.26.21
- 20: v0.26.20
- 21: v0.26.19
- 22: v0.26.18
- 23: v0.26.17
- 24: v0.27.01(已作废)
- 25: v0.26.16
- 26: v0.26.15
- 27: v0.26.14
- 28: 历史记录
| 版本 | 发布日期 |
|---|---|
| v0.26.40 | 2026-10-01 |
| v0.26.38 | 2026-08-24 |
| v0.26.37 | 2026-08-08 |
| v0.26.36 | 2026-07-12 |
| v0.26.35 | 2026-07-04 |
| v0.26.34 | 2026-06-04 |
| v0.26.33 | 2026-05-23 |
| v0.26.32 | 2026-03-27 |
| v0.26.31 | 2026-03-23 |
| v0.26.30 | 2026-03-12 |
| v0.26.29 | 2026-01-24 |
| v0.26.28 | 2025-12-06 |
| v0.26.27 | 2025-11-05 |
| v0.26.26 | 2025-08-15 |
| v0.26.25 | 2025-05-28 |
| v0.26.24 | 2025-04-16 |
| v0.26.23 | 2025-04-11 |
| v0.26.22 | 2025-01-23 |
| v0.26.21 | 2025-01-07 |
| v0.26.20 | 2024-11-07 |
| v0.26.19 | 2024-06-01 |
| v0.26.18 | 2024-02-27 |
| v0.26.17 | 2024-01-31 |
| v0.27.01 (已作废) | 2024-01-02 |
| v0.26.16 | 2023-06-01 |
| v0.26.15 | 2023-02-24 |
| v0.26.14 | 2022-12-30 |
| 历史记录 | 2022-09-14 至 2022-12-19 |
1 - v0.26.40
- 新增:
- TCP 独立端口隧道新增访问控制:支持公开访问和 IPv4、IPv6、CIDR 白名单;白名单为空时拒绝全部连接
- TCP 隧道新增按来源 IP 的滑动窗口连接限频和临时封禁,默认每 600 秒最多建立 600 个新连接并封禁 600 秒;支持在全局设置、单条隧道和
npc.conf中配置,Web 修改后无需重启且不影响已有连接 - Web 管理端为客户端、各类隧道和全局设置页面新增中英文使用说明,并优化配置表单在桌面端和移动端的布局
- Web 服务会在响应时自动压缩未预压缩的 CSS、JavaScript 静态资源
- 修复:
- 修复 P2P over UDP 服务端握手状态并发读写问题;增加无效报文校验、待处理会话数量限制、20 秒超时清理和安全关闭,避免竞态、状态泄漏及异常报文造成资源耗尽
- 普通客户端登录会持续校验客户端是否存在、启用且允许显示;客户端被停用、删除或隐藏后,已有会话立即失效
- 限制普通客户端修改自身状态、到期时间、流量和连接配额等管理员字段,并将全局设置限制为管理员访问
- 验证码校验失败后立即终止登录,防止继续执行账号密码认证
- IP 白名单认证日志不再记录客户端密钥和授权密码等敏感信息
- 修复中英文界面的缺失或错误文案,批量删除确认提示按单条和多条分别显示,流量单位统一为 IEC 单位
- 修复 NPC、NPC SDK 和旧 GUI 构建目标相互冲突的问题,并将依赖 Docker 的 mux 测试隔离为集成测试
- 安全:
- 升级
github.com/ulikunitz/xz至 v0.5.8,修复 CVE-2021-29482 - 升级
golang.org/x/net至 v0.55.0,修复 CVE-2024-45338、CVE-2025-22870 和 CVE-2026-25681 - 升级
golang.org/x/crypto至 v0.52.0、golang.org/x/image至 v0.43.0、golang.org/x/text至 v0.39.0,修复 CVE-2025-22869、CVE-2026-42508、CVE-2026-46602 和 CVE-2026-56852 - GUI 前端升级 Vite 至 v7.1.5、
@vitejs/plugin-vue至 v5.2.4,修复 CVE-2025-58752
- 升级
- 优化:
- 精简登录页和管理端的过期链接及说明,更新版权年份和运行日志文案
- 外网 IPv4 查询服务切换到
v4.ipip.net - Go 工具链和 Docker 构建环境升级至 1.25,GUI 发布流程升级至 Node.js 22
2 - v0.26.38
- 新增:
- GUI 客户端(npc-gui)迁移到 Wails v3
- GUI 客户端新增版本自动更新:启动时自动检查 GitHub 最新 release,支持一键下载并热替换当前可执行文件后自动重启

- 修复:
- 客户端内网地址为 192.169.x.x 等非标准私网段时,Web 面板客户端列表不显示本机 IP #348
3 - v0.26.37
4 - v0.26.36
- 新增:
- 优化:
- 不再依赖外部
web目录的静态文件
- 不再依赖外部
- 修复:
5 - v0.26.35
6 - v0.26.34
- 新增:
- 修复:
- Dashboard IO 速率采集阻塞请求 500ms,改为后台采集缓存,消除 Sleep 等待
- ServerStatus 切片并发读写不安全,添加 RWMutex 保护
- flowSession goroutine 泄漏,改为仅在 StartNewServer 启动一次
- GetTunnel 双重遍历 sync.Map 性能问题,合并为单次 Range
- Bridge Client 字段并发读写不安全,添加 Mutex 保护
- TLS ClientHello recordLen 无上限,添加 16KB 限制防止内存耗尽
- SOCKS5 地址解析未检查 Read 返回值,改用 io.ReadFull
- 文件存储 panic 改为错误日志,defer 清理临时文件防止泄漏
- GenerateServerPort 可能无限循环,限制 1000 次重试
- P2P UDP 无超时永久阻塞,添加 30s ReadDeadline
- P2P goroutine 退出控制改用 context,修复潜在泄漏
- 客户端 UDP ReadFrom 错误后未退出,修复无效数据继续处理
- #324 隧道/域名解析/UDP 流量始终为 0
- muxPackager buffer pool 泄漏:UnPack() 错误路径未归还 windowBuff 导致内存持续增长
- bridge 客户端重连时旧 WORK_CHAN/WORK_FILE mux 未关闭,底层连接和 goroutine 永不释放
- pmux 连接超时泄漏:process() channel 发送超时后连接未关闭,且 ACCEPT_TIME_OUT 单位错误(10ns 应为 10s)
- pmux 关闭流程 panic:加 done channel + WaitGroup 保证 Close() 等所有 process() 退出后再 close conn channel;process() 入口设 ReadDeadline 防止阻塞读导致 wg.Wait() 死锁;PortListener 加 done channel 唤醒 Accept()
- 优化:ioutil.WriteFile → os.WriteFile、rand.Seed → rand.New 本地随机源
7 - v0.26.33
- 新增:
- 配置文件自动生成:启动时若 conf 目录或 nps.conf 不存在,自动创建并写入默认配置,方便 Docker 部署
- 首次启动默认 web_username/admin、web_password、auth_key、auth_crypt_key 均改为随机生成,并打印到终端,提升安全性
- Web 静态文件打包进可执行文件 + 静态文件 URL 加入版本号参数,升级后自动刷新缓存,部署无需单独拷贝 web 目录
- 精简发布包:去除打包时冗余的 conf/nps.conf、web 目录
- 清理失效配置项:移除 appname、runmode、https_default_cert_file、https_default_key_file、https_just_proxy
- 修复:
9 - v0.26.31
10 - v0.26.30
- 修复:
- http 协议 websocket 错误,感谢xiaozonglong 提供的 home assistant 环境 ,#268 ,#296
- 域名解析中,主机url点击无法跳转非80端口 311
- 新增的主机配置页面,客户端ID异常 #310
- 自动 HTTPS(301) 按照
https_proxy_port配置的端口号跳转
11 - v0.26.29
12 - v0.26.28
13 - v0.26.27
- 新增:
客户端新增【IP白名单】,可通过两种方式添加IP:
- 方式1️⃣:在【客户端】新建/修改页面,配置IP授权密码,不在IP白名单的外网访问将被跳转到 IP 授权页面,输入正确的授权密码,即可完成添加 IP。
- 方式2️⃣:在【客户端】新建/修改页面,直接添加IP到白名单中。

客户端配置移除【压缩】和【加密】功能,此功能会显著提高内存和CPU占用率,“利大于弊”。
客户端默认不再提供配置文件,强烈推荐使用无配置文件模式启动客户端
15 - v0.26.25
- 新增:
nps增加
nps(.exe) -server命令,用于管理NPS服务,安装和卸载服务在 Linux 下需要有 sudo 权限,Windows 下需要有管理员权限。
增加【TLS快捷启动命令】,可用于在tls模式下,快速启动客户端。 257
17 - v0.26.23
- 新增:
TCP 隧道支持 Proxy Protocol 协议来传递经过请求的真实 IP。

- 修复:
- 客户端较多时,协程增长过快,感谢 @huanglei288766 的PR
18 - v0.26.22
19 - v0.26.21
- 新增:
- 客户端列表页面新增【快捷启动命令】,此命令为连接地址+链接秘钥的base64编码,方便一键启动、一键安装客户端。
- 域名解析和隧道列表增加访问地址,可以点击隧道链接,直接网页打开。 #234
- 优化:
修改vkey生成方式,由16位缩短至10位,截取uuid前10位,避免重复。
优化客户端启动方式,当npc文件目录下无配置文件时,可直接双击运行客户端,输入命令完成启动、安装、卸载客户端,直接启动和安装服务时需要输入【快捷启动命令】,卸载服务、启动服务、停止服务时,只需输入隧道秘钥【vkey】即可。安装服务以 nps-client-vkey 方式命名 ,实现注册多个服务。

注意:强烈推荐使用无配置文件模式启动客户端,所有数据应该在服务端保存和配置,而客户端只做连接转发。客户端配置文件对小白极不友好,配置繁琐,容易出错。
20 - v0.26.20
21 - v0.26.19
golang 版本升级到 1.22。
增加自动https,自动将http 重定向(301)到 https。
客户端命令行方式启动支持多个隧道ID,使用逗号拼接,示例:
npc -server=xxx:8024 -vkey=ytkpyr0er676m0r7,iwnbjfbvygvzyzzt。移除 nps.conf 参数
https_just_proxy,调整 https 处理逻辑,如果上传了 https 证书,则由nps负责SSL(此方式可以获取真实IP),否则走端口转发模式(使用本地证书,nps 获取不到真实IP),如下图所示。
22 - v0.26.18
- 新增:nps.conf 新增
tls_bridge_port=8025参数,当tls_enable=true时,nps 会监听8025端口,作为 tls 的连接端口。客户端可以选择连接 tls 端口或者非 tls 端口:npc.exe -server=xxx:8024 -vkey=xxx或npc.exe -server=xxx:8025 -vkey=xxx -tls_enable=true
23 - v0.26.17
- 说明:考虑到 npc 历史版本客户端众多,版本号不同旧版本客户端无法连接,为了兼容,仓库版本号将继续沿用 0.26.xx
24 - v0.27.01(已作废)
此版本已作废,功能移动到 v0.26.17。
- 新增:tls 流量加密,(客户端忽略证书校验,谨慎使用,客户端与服务端需要同时开启,或同时关闭),使用方式:
- 服务端:nps.conf
tls_enable=true; - 客户端:npc.conf
tls_enable=true或者npc.exe -server=xxx -vkey=xxx -tls_enable=true
- 服务端:nps.conf
25 - v0.26.16
- 修复:https 流量不统计 Bug 修复。
- 新增:新增全局黑名单IP,用于防止被肉鸡扫描端口或被恶意攻击。
- 新增:新增客户端上次在线时间。
26 - v0.26.15
- 修复:更新程序 url 更改到当前仓库中
- 修复:nps 在外部路径启动时找不到配置文件
- 新增:增加 nps 启动参数,
-conf_path=D:\test\nps,可用于加载指定nps配置文件和web文件目录。 - window 使用示例:
- 直接启动:
nps.exe -conf_path=D:\test\nps - 安装:
nps.exe install -conf_path=D:\test\nps - 安装启动:
nps.exe start
- 直接启动:
- linux 使用示例:
- 直接启动:
./nps -conf_path=/app/nps - 安装:
./nps install -conf_path=/app/nps - 安装启动:
nps start -conf_path=/app/nps
- 直接启动:
27 - v0.26.14
- 修复:API 鉴权漏洞修复
28 - 历史记录
2022-12-19
- 修复:某些场景下丢包导致服务端意外退出
- 优化:新增隧道时,不指定服务端口时,将自动生成端口号
- 优化:API返回ID,
/client/add/,/index/addhost/,/index/add/ - 优化:域名解析、隧道页面,增加[唯一验证密钥],方便搜查
2022-10-30
- 新增:在管理面板中新增客户端时,可以配置多个黑名单IP,用于防止被肉鸡扫描端口或被恶意攻击。
- 优化:0.26.12 版本还原了注册系统功能,使用方式和以前一样。无论是否注册了系统服务,直接执行 nps 时只会读取当前目录下的配置文件。
2022-10-27
- 新增:在管理面板登录时开启验证码校验,开启方式:nps.conf
open_captcha=true,感谢 @dongFangTuring 提供的PR
- 新增:在管理面板登录时开启验证码校验,开启方式:nps.conf
2022-10-24
- 修复:HTTP协议支持WebSocket(稳定性待测试)
2022-10-21
- 修复:HTTP协议下实时统计流量,能够精准的限制住流量(上下行对等)
- 优化:删除HTTP隧道时,客户端已用流量不再清空
2022-10-19
BUG:在TCP协议下,流量统计有问题,只有当连接断开时才会统计流量。例如,限制客户端流量20m,当传输100m的文件时,也能传输成功。
修复:TCP协议下实时统计流量,能够精准的限制住流量(上下行对等)
优化:删除TCP隧道时,客户端已用流量不再清空

2022-09-14
- 修改NPS工作目录为当前可执行文件目录(即配置文件和nps可执行文件放在同一目录下,直接执行nps文件即可),去除注册系统服务,启动、停止、升级等命令