跳转到主要内容

这是本节的多页打印视图。 .

返回本页常规视图.

更新日志

查看各版本新增功能、问题修复和行为变更
版本发布日期
v0.26.402026-10-01
v0.26.382026-08-24
v0.26.372026-08-08
v0.26.362026-07-12
v0.26.352026-07-04
v0.26.342026-06-04
v0.26.332026-05-23
v0.26.322026-03-27
v0.26.312026-03-23
v0.26.302026-03-12
v0.26.292026-01-24
v0.26.282025-12-06
v0.26.272025-11-05
v0.26.262025-08-15
v0.26.252025-05-28
v0.26.242025-04-16
v0.26.232025-04-11
v0.26.222025-01-23
v0.26.212025-01-07
v0.26.202024-11-07
v0.26.192024-06-01
v0.26.182024-02-27
v0.26.172024-01-31
v0.27.01 (已作废)2024-01-02
v0.26.162023-06-01
v0.26.152023-02-24
v0.26.142022-12-30
历史记录2022-09-14 至 2022-12-19

1 - v0.26.40

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

v0.26.38 更新内容
  • 新增:
    • GUI 客户端(npc-gui)迁移到 Wails v3
    • GUI 客户端新增版本自动更新:启动时自动检查 GitHub 最新 release,支持一键下载并热替换当前可执行文件后自动重启 img.png
  • 修复:
    • 客户端内网地址为 192.169.x.x 等非标准私网段时,Web 面板客户端列表不显示本机 IP #348

3 - v0.26.37

v0.26.37 更新内容
  • 修复:
    • NPC 安装到系统服务失败 BUG #338
    • 隧道实际未运行但面板提示「启动成功」、运行状态始终为关闭的问题 #339
    • 配置 allow_ports 后随机生成端口问题 #339
    • Web 面板languages.xml使用 NPS 版本号作为缓存标识 #342
  • 新增:
    • 客户端、隧道、域名解析修改接口支持修改流量数据 #341

4 - v0.26.36

v0.26.36 更新内容
  • 新增:
    • 新增客户端内网地址上报功能,客户端列表展示 npc 内网地址 #333
    • Web 管理端客户端/隧道/域名列表业务字段支持服务端排序(备注、状态、在线等)#254
  • 优化:
    • 不再依赖外部 web 目录的静态文件
  • 修复:
    • 客户端/服务端在线更新失败 BUG
    • nps -server 安装成功后 web_port 未正常显示BUG #317
    • Bridge 握手增加 10s 读超时,校验失败/读失败立即关闭连接,减轻端口扫描导致的连接与 goroutine 堆积 #281
    • 解决私密代理和P2P连接的TLS启用问题 #143
    • HTTP 正向代理 Basic 认证 BUG#133
    • SOCKS5 用户名密码认证 BUG #133
    • 客户端建连失败后半连接假死、需手动重启 npc BUG #115

5 - v0.26.35

v0.26.35 更新内容
  • 新增:
    • 客户端列表、隧道列表、域名解析列表支持多选批量删除 #287
  • 修复:
    • HTTP 代理在 SVN 客户端无法正常检出 #336
    • 新增/编辑隧道时无提示且不跳转,重复点击会产生多条记录 #334
    • mips/mipsle 架构运行出现 Illegal instruction 错误 #331
  • 优化:
    • 隧道、域名解析编辑页的客户端 ID 改为下拉选择 #334

6 - v0.26.34

v0.26.34 更新内容
  • 新增:
    • nps -server 管理脚本欢迎语显示当前版本号,更新版本时比对版本,已是最新则直接退出,避免无谓覆盖 #328
    • npc 管理脚本欢迎语显示当前版本号,新增 [5] 更新客户端 选项,更新并替换 npc 二进制
    • 客户端新增到期时间字段,创建/修改客户端时可选填写,到期后自动暂停客户端 #322
  • 修复:
    • 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

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
  • 修复:
    • #184 限速导致隧道中断:UpdateClient 在 RateLimit=0 时创建零速率令牌桶导致永久阻塞
    • #159 关闭隧道端口仍可用:StopServer 错误时提前返回未更新状态 + 重复 OpenTask case 导致隧道被自动重启
    • #170 TCP 负载均衡只有一个后端可达:GetRandomTarget 未处理 \r 换行符和尾部空行
    • #319 客户端列表不显示实时网速:NowRate 计算逻辑错误,改为统计每秒实际消耗字节数
    • #306 #316 TCP Basic 认证与域名解析冲突:移除 TCP 隧道 Basic 认证探测,域名解析继续使用客户端 Basic 认证

8 - v0.26.32

v0.26.32 更新内容
  • 修复:
    • 客户端注册参数未正确处理[快捷启动命令]和[TLS快捷启动命令] #303
    • 修复https反向代理bug,感谢okawao 的 PR

9 - v0.26.31

v0.26.31 更新内容
  • 新增:
    • 域名解析记录开关功能 #314
    • TCP隧道增加Basic认证 306
  • 修复:
    • 新增隧道出现secret mode keys must be unique 301

10 - v0.26.30

v0.26.30 更新内容
  • 修复:
    • http 协议 websocket 错误,感谢xiaozonglong 提供的 home assistant 环境 ,#268 ,#296
    • 域名解析中,主机url点击无法跳转非80端口 311
    • 新增的主机配置页面,客户端ID异常 #310
    • 自动 HTTPS(301) 按照 https_proxy_port 配置的端口号跳转

11 - v0.26.29

v0.26.29 更新内容
  • 新增:
    • GUI 客户端,基于 Wails 开发,点击查看了解更多 ,需要 WebView2 运行时,可通过两种方式添加客户端。

      • 方式1:直接输入快捷启动命令即可
      • 方式2:手动添加客户端,输入-server -vkey等参数
      img.png
  • 修复:
    • Android 包未构建到 Release 72

12 - v0.26.28

v0.26.28 更新内容
  • 【全局参数】页面新增服务地址配置项,用于客户端命令地址显示、隧道访问地址显示 293
  • 【IP授权功能优化】,通过穿透的端口去提交 IP 认证,感谢 Aqamoe 的建议 291
  • 【重构限速器实现】提升性能和准确性

13 - v0.26.27

v0.26.27 更新内容
  • 新增:
    • 客户端新增【IP白名单】,可通过两种方式添加IP:

      • 方式1️⃣:在【客户端】新建/修改页面,配置IP授权密码,不在IP白名单的外网访问将被跳转到 IP 授权页面,输入正确的授权密码,即可完成添加 IP。
      • 方式2️⃣:在【客户端】新建/修改页面,直接添加IP到白名单中。
      img.png
    • 客户端配置移除【压缩】和【加密】功能,此功能会显著提高内存和CPU占用率,“利大于弊”。

    • 客户端默认不再提供配置文件,强烈推荐使用无配置文件模式启动客户端

14 - v0.26.26

v0.26.26 更新内容
  • 修复:
    • windows注册服务 使用tls无法连接 269
    • 域名解析自动HTTPS逻辑bug 273

15 - v0.26.25

v0.26.25 更新内容
  • 新增:
    • nps增加nps(.exe) -server 命令,用于管理NPS服务,安装和卸载服务在 Linux 下需要有 sudo 权限,Windows 下需要有管理员权限。

      img.png
    • 增加【TLS快捷启动命令】,可用于在tls模式下,快速启动客户端。 257

16 - v0.26.24

v0.26.24 更新内容
  • 新增:
    • 隧道支持复制功能,在隧道页面增加复制按钮,除了端口号为随机生成外,其他参数全部拷贝。251
  • 修复:
    • 私密代理连接时服务端会报错退出,250

17 - v0.26.23

v0.26.23 更新内容
  • 新增:
    • TCP 隧道支持 Proxy Protocol 协议来传递经过请求的真实 IP。

      img.png
  • 修复:

18 - v0.26.22

v0.26.22 更新内容
  • 优化:
    • 客户端注册系统服务时,(新版客户端注册方式,非 install 命令) 将按照 npc-[vkey].log 格式保存日志,每个客户端VKEY单独一个日志文件,windows 日志位于 npc.exe 同级目录下,linux 位于 /var/log/目录。
    • 域名模式,HTTPS证书支持上传文件和文件路径,系统将自动识别路径还是证书内容。 #175
  • 修复:
    • ipv6地址显示不全 #237

19 - v0.26.21

v0.26.21 更新内容
  • 新增:
    • 客户端列表页面新增【快捷启动命令】,此命令为连接地址+链接秘钥的base64编码,方便一键启动、一键安装客户端。
    • 域名解析和隧道列表增加访问地址,可以点击隧道链接,直接网页打开。 #234
  • 优化:
    • 修改vkey生成方式,由16位缩短至10位,截取uuid前10位,避免重复。

    • 优化客户端启动方式,当npc文件目录下无配置文件时,可直接双击运行客户端,输入命令完成启动、安装、卸载客户端,直接启动和安装服务时需要输入【快捷启动命令】,卸载服务、启动服务、停止服务时,只需输入隧道秘钥【vkey】即可。安装服务以 nps-client-vkey 方式命名 ,实现注册多个服务。

      image

注意:强烈推荐使用无配置文件模式启动客户端,所有数据应该在服务端保存和配置,而客户端只做连接转发。客户端配置文件对小白极不友好,配置繁琐,容易出错。

20 - v0.26.20

v0.26.20 更新内容
  • 新增:
    • 客户端增加创建时间
  • 修复:
    • 客户端限速单位不统一 #185
    • 增加从下拉选择客户端,隧道列表排序,新增编辑后不会刷新界面 #183
    • 隧道数量限制无法统计域名映射 #209

21 - v0.26.19

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),如下图所示。

    image

22 - v0.26.18

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

v0.26.17 更新内容
  • 说明:考虑到 npc 历史版本客户端众多,版本号不同旧版本客户端无法连接,为了兼容,仓库版本号将继续沿用 0.26.xx

24 - v0.27.01(已作废)

v0.27.01 已作废,功能移动到 v0.26.17

此版本已作废,功能移动到 v0.26.17。

  • 新增:tls 流量加密,(客户端忽略证书校验,谨慎使用,客户端与服务端需要同时开启,或同时关闭),使用方式:
    • 服务端:nps.conf tls_enable=true;
    • 客户端:npc.conf tls_enable=true 或者 npc.exe -server=xxx -vkey=xxx -tls_enable=true

25 - v0.26.16

v0.26.16 更新内容
  • 修复:https 流量不统计 Bug 修复。
  • 新增:新增全局黑名单IP,用于防止被肉鸡扫描端口或被恶意攻击。
  • 新增:新增客户端上次在线时间。

26 - v0.26.15

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

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
  • 2022-10-24

    • 修复:HTTP协议支持WebSocket(稳定性待测试)
  • 2022-10-21

    • 修复:HTTP协议下实时统计流量,能够精准的限制住流量(上下行对等)
    • 优化:删除HTTP隧道时,客户端已用流量不再清空
  • 2022-10-19

    • BUG:在TCP协议下,流量统计有问题,只有当连接断开时才会统计流量。例如,限制客户端流量20m,当传输100m的文件时,也能传输成功。

    • 修复:TCP协议下实时统计流量,能够精准的限制住流量(上下行对等)

    • 优化:删除TCP隧道时,客户端已用流量不再清空

      image
  • 2022-09-14

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