更新日志
2026-07-12 v0.26.36
- 新增:
- 优化:
- 不再依赖外部
web目录的静态文件
- 不再依赖外部
- 修复:
2026-07-04 v0.26.35
2026-06-04 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 本地随机源
2026-05-23 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
- 修复:
- 新增:
2026-03-27 v0.26.32
2026-03-23 v0.26.31
2026-03-12 v0.26.30
- 修复:
- http 协议 websocket 错误,感谢xiaozonglong 提供的 home assistant 环境 ,#268,#296
- 域名解析中,主机url点击无法跳转非80端口 311
- 新增的主机配置页面,客户端ID异常 #310
- 自动 HTTPS(301) 按照
https_proxy_port配置的端口号跳转
- 修复:
2026-01-24 v0.26.29
2025-12-06 v0.26.28
2025-11-05 v0.26.27
- 新增:
客户端新增【IP白名单】,可通过两种方式添加IP:
- 方式1️⃣:在【客户端】新建/修改页面,配置IP授权密码,不在IP白名单的外网访问将被跳转到 IP 授权页面,输入正确的授权密码,即可完成添加 IP。
- 方式2️⃣:在【客户端】新建/修改页面,直接添加IP到白名单中。

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

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

注意:强烈推荐使用无配置文件模式启动客户端,所有数据应该在服务端保存和配置,而客户端只做连接转发。客户端配置文件对小白极不友好,配置繁琐,容易出错。
- 新增:
2024-11-07 v0.26.20
2024-06-01 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),如下图所示。
2024-02-27 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
- 新增:nps.conf 新增
2024-01-31 v0.26.17
- 说明:考虑到 npc 历史版本客户端众多,版本号不同旧版本客户端无法连接,为了兼容,仓库版本号将继续沿用 0.26.xx
2024-01-02 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
- 新增:tls 流量加密,(客户端忽略证书校验,谨慎使用,客户端与服务端需要同时开启,或同时关闭),使用方式:
2023-06-01 v0.26.16
- 修复:https 流量不统计 Bug 修复。
- 新增:新增全局黑名单IP,用于防止被肉鸡扫描端口或被恶意攻击。
- 新增:新增客户端上次在线时间。
2023-02-24 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
- 直接启动:
2022-12-30 v0.26.14
- 修复:API 鉴权漏洞修复
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文件即可),去除注册系统服务,启动、停止、升级等命令
