跳转到主要内容

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 本地随机源