Skip to content

Releases: yosebyte/nodepass

v1.9.0

31 Oct 00:17
1263661

Choose a tag to compare

更新日志

  • 新增:

    • 新增 noudp 参数,用于禁用 UDP 功能。
  • 优化:

    • 连接池改为并发创建,提升连接池化速度。
    • 弃用池连接复用功能,简化连接管理逻辑。
    • 实现 read 超时控制与池连接复用解耦。
  • 修复:

    • 实例在错误状态下未重置运行指标的问题。
  • 兼容:

    • 涉及到连接池重构,双端版本需同步更新。
  • 文档:

    • 更新仓库内置文档,增加对新变动的说明。

Changelog

  • 1263661 Merge pull request #73 from NodePassProject/main
  • fb27430 docs: update documentation to remove pool connection reuse with enhanced udp protocol control
  • 4e66cee feat: add a query parameter to control whether UDP functionality is disabled
  • e7e9665 chore: update pool dependency to v1.0.48 in go.mod and go.sum
  • 62be9c1 fix: reset instance status details when error happens
  • 47aa615 chore: update pool dependency to v1.0.47 in go.mod and go.sum
  • 5ecff85 chore: update pool dependency to v1.0.46 in go.mod and go.sum
  • 80f51ac chore: update pool dependency to v1.0.45 in go.mod and go.sum
  • 41fa727 chore: update pool dependency to v1.0.44 in go.mod and go.sum
  • a059a34 chore: update pool dependency to v1.0.43 in go.mod and go.sum
  • 7274289 chore: update pool dependency to v1.0.42 in go.mod and go.sum
  • dd2b0b8 refactor: remove pool connection reuse logic from connection cleanup
  • 6bb2d84 refactor: update connection retrieval methods in common TCP and common UDP
  • 59f77d2 chore: update pool dependency to v1.0.41 in go.mod and go.sum

v1.8.3

24 Oct 08:03
1fc4077

Choose a tag to compare

更新日志

  • 优化:

    • 上下文取消逻辑统一处理,核心循环退出更稳定
    • 隧道资源初始化更严谨,错误反馈更及时
    • UDP 错误日志过滤 EOF 正常关闭情况,减少噪声
    • 主控定时任务合并,逻辑更清晰,调度更可靠
    • 实例停止时运行指标完整重置,状态展示更准确
  • 修复:

    • 主控指标中多核心 CPU 占用统计与实际占用不符的问题
    • 主控启动时部分未及时变更状态的实例没有自启动的问题
    • 主控定时任务过短导致异常实例重复重启的问题

Changelog

  • 1fc4077 Merge pull request #72 from NodePassProject/main
  • c90f983 refactor: remove hybridStart and improve error handling in start method
  • 7fbe355 docs: add example for resource-constrained configuration with small connection pool
  • 7bfd0dd Revert "docs: enhance documentation for STUN NAT traversal features and examples across all relevant markdown files"
  • 785303e refactor: optimize context error handling in client and server run methods
  • a80c1aa refactor: streamline context error handling in common control and loop functions
  • 9be2928 refactor: replace time.After with time.Ticker for periodic tasks in healthCheck and startPeriodicTasks
  • c307a2f feat: implement NAT mapping keep-alive mechanism in hybridStart function
  • ad555c9 fix: refine error handling in UDP functions to ignore io.EOF errors
  • 2107ccb fix: reset instance status to 'stopped' for non-API Key instances during state load
  • 06beeba docs: enhance documentation for STUN NAT traversal features and examples across all relevant markdown files
  • da92584 fix: update client start logic to handle hybrid mode with single control and improve tunnel listener initialization
  • 15619b9 feat(exp): add NAT traversal mode to client for STUN discovery and connection forwarding
  • 2823361 fix: update periodic cleanup and restart intervals to use ReloadInterval for consistency
  • fac0dad fix: reset instance metrics on stop to ensure accurate state management
  • 205fa29 fix: refine CPU usage calculation in getLinuxSysInfo by removing unnecessary CPU count dependency

v1.8.2

16 Oct 02:13
d1d8290

Choose a tag to compare

更新日志

  • 新增:

    • 新增 NodePass 基础高可用功能,通过轮询方式将负载均衡与故障转移相结合。新增目标地址组概念,将原单一目标地址进行扩展,命令格式方面,目标地址以 , 相分隔,核心将自动开启高可用,同时生效于单端或双端模式的出口位置。
    • 新增 meta 字段,包含 peertags 以扩展实例的元数据信息,有助于解决双端模式下,分布式部署的实例割裂问题。
    • 新增主控 ID 的生成和持久化逻辑,以备前端应用取用。
  • 优化:

    • 实例级别的内部错误(例如端口冲突等)可顺利传递至主控,用以标记实例状态,加强外部感知。
    • 缩短 tcpudp 以及实例握手的超时时间,进一步提升故障转移的相应速度。
  • 修复:

    • 修复主控从持久化文件拉取实例时,高负载状态下的竞态问题,避免实例拉取失败。
    • 修复实例流量信息重置后继续陡增的重置不完整问题。
  • 文档:

    • 以上新增内容均已在内置文档 /docs 中有所体现,请更新前阅读。

Changelog

  • d1d8290 Merge pull request #70 from NodePassProject/main
  • 73e75cd fix: update error detection in InstanceLogWriter to handle server and client errors
  • cbcb8d9 feat: enhance Meta structure in handlePatchInstance to include Peer and Tags validation
  • 1d41d2d chore: update README and README_zh
  • e533ff1 feat: remove checkpoint event logging in common and add automatic recovery for instances in error state
  • 7d8e250 docs: add comprehensive instructions for NodePass AI Coding Agent, covering project overview, architecture, configuration, and development workflow
  • 7033e54 fix: initialize Meta field with tags mapping in Run method for api key instance
  • f2ab83b fix: initialize tags mapping for instances without tags
  • ea5c397 docs: update peer metadata structure for consistency in API documentation
  • c7fd650 refactor: reorder Peer struct fields and update validation in handlePatchInstance
  • bda2beb docs: enhance peer metadata structure with service type and UUID format for service ID
  • 8163358 feat: add service type to Peer struct and update validation in handlePatchInstance
  • 01345d2 docs: enhance instance metadata management with peer information and tagging support
  • 9fd025e feat: update Instance struct to include metadata and enhance tag handling
  • d9be26d feat: add Master ID handling and update API Key instance management
  • bcc56db feat: add alias handling for API Key instances and persist changes
  • e34865a feat: add reset offsets for traffic statistics in Instance struct and update stat calculation logics
  • ea7eada fix: add delay after auto-starting instance to prevent race conditions
  • 0c0dc86 refactor: update logging to use getTargetAddrsString for improved clarity
  • 2d65c89 refactor: update target address handling for improved load balancing and fault tolerance
  • 97b3aee docs: reduce handshake and dialing timeout values for improved responsiveness
  • bfbc8e8 fix: reduce timeout values for handshake and dialing to improve responsiveness
  • 3090349 docs: add support for target address group to enable load balancing and high availability
  • 5260464 feat: implement dialWithRotation for TCP and UDP connections to enhance fault tolerance and load balancing
  • 98a5274 feat: support multiple target addresses for TCP and UDP connections with round-robin selection

v1.8.1

06 Oct 14:54
9ae97e2

Choose a tag to compare

更新日志

  • 新增:

    • 环境变量 NP_UDP_READ_TIMEOUT 控制 UDP 读取超时,默认值 30s 兼顾绝大部分 UDP 场景。
  • 修复:

    • 修复了 UDP 双端模式下入口 udps 指标只增不减的问题。
    • 修复了 UDP 双端模式下出口 udps 指标增长过快的问题。
  • 重构:

    • 重构三处 TCP 连接数管理逻辑,保证提前返回并降低潜在的资源占用。
  • 文档:

    • 新增环境变量在文档中的配置部分有所体现,可根据使用场景微调。

Changelog

  • 9ae97e2 Merge pull request #69 from NodePassProject/main
  • 13b319f refactor: optimize TCP slot management and connection cleanup in commonTCP functions
  • e6bd888 fix: streamline UDP session cleanup and slot management in commonUDPLoop and commonUDPOnce
  • 0d44f66 docs: add NP_UDP_READ_TIMEOUT configuration for UDP read operations
  • f3eeab1 feat: add UDP read timeout configuration and update related handling in UDP loops and once

v1.8.0

06 Oct 00:52
1d9a4ed

Choose a tag to compare

更新日志

  • 新增:

    • 新增池连接复用开关,通过 read 参数配置。read=0 时默认无超时、不回收连接,设置正值可启用连接超时及池连接复用。
  • 优化:

    • 连接池及连接管理库底层逻辑重构,显著提升稳定性,解决边缘场景下的断流问题。
  • 重构:

    • 更新池连接创建逻辑及连接 ID 传递规则,实现两端行为一致性,提升兼容性。
  • 修复:

    • 修复部分连接池管理中的异常断流和资源回收不及时问题。
  • 兼容:

    • 池连接逻辑更新后,需确保两端主控版本保持一致,避免因规则变更导致兼容性问题。
  • 文档:

    • 移除标签管理相关说明,相关逻辑将整合至后续版本中。
    • 补充 read 参数行为及管理说明,明确其在连接池中的作用。
    • 更新相关环境变量默认值说明,保持与实际推荐配置一致。

Changelog

  • 1d9a4ed Merge pull request #68 from NodePassProject/main
  • 7427d6b docs: enhance data read timeout configuration to include connection reuse behavior
  • d68c421 fix: ensure pool reuse is enabled when reading timeout is set from url cmd
  • 6c02a6c chore: update conn dependency version to v1.0.16 in go.mod and go.sum
  • 63c2f0a feat: add pool reuse flag and update read timeout handling in common loop and once
  • 473e092 refactor: remove unused cancellation handling and close signal logic in common tcp udp loop and once
  • 762fedf fix: set read deadline for remote connections in commonTCPLoop and commonTCPOnce
  • f4049fa fix: update close signal handling in commonOnce
  • 118a230 refactor: enhance cancellation handling in commonTCPLoop and commonTCPOnce using context
  • 0dd7bee refactor: improve connection cancellation handling in common loop and common once
  • a747eab refactor: optimize TCP and UDP slot management in commonTCPOnce and commonUDPOnce
  • fe7fef5 fix: replace writeSignal method calls with direct tunnel connection writes in healthCheck and loop functions
  • f85214d refactor: simplify signal construction and sending in common loop and common once
  • bd0d4a0 refactor: streamline connection cleanup in commonTCPLoop, commonUDPLoop, commonTCPOnce, and commonUDPOnce
  • 41d4761 refactor: add clean, flush, ping, and pong URLs to Client and Server structs
  • e83dfde refactor: add signal URLs to Common struct and update healthCheck to use them
  • 00e6e6c feat: implement writeSignal method for tunnel control and refactor healthCheck to use it
  • d588373 chore: update pool dependency from v1.0.39 to v1.0.40 in go.mod and go.sum
  • 09b8495 chore: update pool dependency from v1.0.38 to v1.0.39 in go.mod and go.sum
  • 5f55304 chore: update pool dependency from v1.0.37 to v1.0.38 in go.mod and go.sum
  • 48d1c4a fix: increase timeout for bufReader in tunnelHandshake to improve connection reliability
  • 7ec2f2c fix: change error logging to error level for connection retrieval and refactor cleanup logic in commonUDPOnce
  • 39b3c75 feat: add connection pool cleaning functionality and update health check signals
  • 31ba27a fix: add nil check for tunnelTCPConn before writing close signal in commonTCP/UDP loops
  • 27f5613 fix: update NP_POOL_GET_TIMEOUT default value from 30s to 5s in configuration
  • 7e66121 chore: update pool dependency to v1.0.37 in go.mod and go.sum
  • 0aa2e5b fix: update client connection retrieval to include timeout and change error logging to warning
  • 67e6430 refactor: remove tag management functionality from API and internal logic with updated docs
  • 19eec88 fix: update default TCP data buffer size from 32768 to 16384 in configuration
  • d103643 chore: update pool dependency to v1.0.36 in go.mod and go.sum
  • 9a18655 chore: update pool dependency to v1.0.35 in go.mod and go.sum
  • 4330aef feat: enhance cancellation handling by setting read deadlines for tunnel connections
  • 49eb975 feat: add cancellation handling and close signal mechanism for tunnel connections
  • 7a88eb2 feat: implement cancellation handling for tunnel connections and add close signal mechanism
  • b3afcba chore: update pool dependency to v1.0.34 in go.mod and go.sum
  • 1ce91b8 chore: update pool dependency to v1.0.33 in go.mod and go.sum
  • 78068ce chore: update pool dependency to v1.0.32 in go.mod and go.sum
  • 4a9aa21 chore: update pool dependency to v1.0.31 in go.mod and go.sum

v1.7.0

27 Sep 10:52
0b2c6d3

Choose a tag to compare

更新日志

  • 新增:

    • API 新增标签设置可选项,有助于前端更好的进行跨平台信息主控持久化。
    • 新增 TCP 缓冲区池,贯穿单端、双端底层链路,极大降低了内存占用。
  • 优化:

    • 信号通道全面升级,新增 base64 加解密,完全消除了隧道 URL 解析错误问题。
  • 重构:

    • 精简部分重用代码,继续精简主函数,增强错误处理显示。
    • 底层 poolconn 库的少量重构,增强内存管理,降低占用。
  • 修复:

    • 修复一些 UDP 缓冲区池和 pool 库中缓冲区池失效问题。
  • 兼容:

    • 鉴于信号通道的升级,双端模式将不再向下兼容,建议尽快升级两侧主控。
  • 文档:

    • API 新增标签功能,和配置字段加入文档,更新系统信息指标变更说明。

Changelog

  • 0b2c6d3 Merge pull request #65 from NodePassProject/main
  • 71a8e64 chore: update pool dependency to v1.0.30 in go.mod and go.sum
  • d665ea4 chore: update pool dependency to v1.0.29 in go.mod and go.sum
  • 22e95df feat: separate TCP and UDP buffer pools in Client and Server for improved memory management
  • 0e7ba30 feat: enhance buffer management by separating TCP and UDP buffer pools in Common struct
  • 40aaf7f chore: update conn and pool dependencies to v1.0.15 and v1.0.28 in go.mod and go.sum
  • 14319fb feat: add buffer pool management to Client and Server for improved memory efficiency
  • 4d1edd7 feat: implement buffer pool management in Common struct for improved memory efficiency
  • 089f915 chore: update pool dependency version to v1.0.27 in go.mod and go.sum
  • e9e01fa docs: add TCP data buffer size configuration to enhance performance
  • 9c9beab feat: add TCP buffer size configuration and refactor buffer management
  • dd7791a chore: update pool dependency version to v1.0.26 in go.mod and go.sum
  • 278eccc chore: update conn dependency version to v1.0.14 in go.mod and go.sum
  • 9e7058c chore: update conn dependency version to v1.0.13 in go.mod and go.sum
  • 48ecf6c chore: update pool dependency version to v1.0.25 in go.mod and go.sum
  • c3ac864 docs: add config field to Instance for complete URL configuration management
  • 0ed8254 feat: add config field to Instance and update related methods for configuration management
  • 91f903c refactor(main): enhance error message handling and display in exit info
  • ea0c45b refactor: consolidate periodic tasks into a single method for improved management
  • 81e5dd2 feat: add periodic error instance restart functionality
  • 7376e82 feat: add lastCheckPoint field to Instance and update status based on inactivity
  • 2c8c2bd doce: add 'slot' parameter and update 'mode' description in API documentation
  • 375f8a2 refactor: improve error messages for tag and alias length validation
  • 035f3cd feat: add cleanup of old temporary files during state loading
  • 46fffdc refactor: update instance stopping logic to check for non-stopped status
  • e419f6e feat: implement periodic cleanup to remove duplicate instances by ID
  • 2c0961a refactor: clean up Instance struct and remove unused lastCheckPoint field
  • 6c11851 docs: add auto-generated config tag details and example to API documentation
  • ba1a3b6 feat: implement periodic update for instance tags starting from the new config tag including full default settings
  • ea24cb4 docs: update configuration documentation to include default values for parameters in server, client, and master cores
  • 8268657 refactor: define default configuration constants for pool capacity, run mode, read timeout, rate limit, slot limit, and proxy protocol
  • 6c878e1 docs: update memory and swap usage metrics in API documentation for accuracy
  • 2120a06 refactor: update memory and swap metrics in SystemInfo struct for clarity and accuracy
  • d25c3c2 fix: add deleted flag to Instance struct and update logging behavior to respect deletion status
  • 642d982 docs: enhance tag management logic to support merge-based updates and deletion in a single operation
  • 80eb7b3 refactor: update handlePatchInstance to manage tags more efficiently by using a map for updates and deletions
  • 4009d98 chore: add NodePass-ApplePlatforms section to README for iOS/macOS application
  • c720f04 docs: change tags from key-value object to array of key-value pairs for improved consistency and flexibility
  • 57d3cbc refactor: change Tags from map to array of Tag structs for better structure and validation
  • 187bdef refactor: update generateOpenAPISpec method to be a receiver function and use instance prefix
  • ac2bdcf refactor: update Instance struct to remove omitempty for fields and ensure Tags are initialized
  • e4a355c docs: add POST /info endpoint to update master alias in API documentation
  • 22f541c feat: add alias field to Master and update handleInfo to manage alias via POST request
  • 87248f4 Revert "docs: add gzip compression support for API responses to improve performance"
  • 2b14398 Revert "feat: add gzip compression middleware for HTTP responses"
  • 849bbcd docs: reorder tag management rules section for clarity in API documentation
  • 136ceea fix: enhance logging format to include proxy protocol in client and server run methods
  • 24f18a7 docs: add gzip compression support for API responses to improve performance
  • 3352446 feat: add gzip compression middleware for HTTP responses
  • 338f5d5 docs: implement tag management for instance organization and labeling
  • 0882539 feat: add tags support for detailed instance management
  • 2493114 refactor: simplify core creation logic and enable instance restart on post by default
  • aba384a refactor: update NewMaster method to return error for improved error handling
  • 850696d refactor: update NewClient and NewServer methods to return error for improved error handling
  • 9d88a0b refactor: restructure getAddress and getTunnelKey methods for improved error handling
  • 9ca3b02 refactor: simplify core initialization and logging setup in main package
  • 3781a86 refactor: streamline SSE connection shutdown process and enhance event handling
  • 6ea7748 docs: update key authentication description to clarify encryption method
  • 795aead feat: update tunnel key and URL handling to use encoding and decoding methods
  • 356d8ed feat: add base64 encoding and decoding methods for signal handling

v1.6.1

11 Sep 09:20
a6841df

Choose a tag to compare

更新日志

  • 优化:

    • 调整 slot 默认值至 65536 ,默认不再限制 TCP 和 UDP 连接数。
  • 重构:

    • 精简部分代码,重构错误处理信息,支持更清晰的错误追溯。
  • 修复:

    • 修复 UDP 流量统计功能失效问题,单双端全面支持流量统计和限速。
  • 文档:

    • 添加了 slot 参数具体用法和示例。

Changelog

  • a6841df Merge pull request #64 from NodePassProject/main
  • 2ea9f8a fix: remove unused targetTCPConn references for cleaner connection handling
  • 71c81ae chore: update conn dependency to v1.0.12 for improved functionality
  • 186e27d fix: update UDP connection handling to use StatConn for improved monitoring and reliability
  • f1407eb Revert "fix: improve connection handling by ensuring proper type conversion for UDP and TCP connections"
  • 9f2018d docs: add connection slot limit feature for improved resource management and stability
  • 601da67 fix: increase default slot limit for improved connection handling
  • 94400db fix: enhance signal URL handling in common functions for better reliability
  • a1d0616 refactor: enhance error logging with context in master functions for better traceability
  • 4aa2d26 refactor: enhance error handling with contextual messages in client and server methods
  • cc59f0e refactor: enhance error logging with context in common functions for better traceability
  • 68f0c1e fix: improve connection handling by ensuring proper type conversion for UDP and TCP connections
  • fcc691d chore: update conn dependency version to v1.0.11 for compatibility
  • 72f743e fix: reorder target connection assignment for consistency in connection handling

v1.6.0

06 Sep 14:38
663d1b1

Choose a tag to compare

更新日志

  • 新增:

    • 新增运行模式控制功能(mode 参数),支持服务端、客户端内置模式的精确控制。
    • 新增数据读取超时控制(read 参数),提供更精细的连接超时管理策略。
    • 新增带宽速率限制功能(rate 参数),支持流量控制和带宽管理,防止网络拥塞。
    • 新增最大连接限制功能(slot 参数),防止资源过载,提升系统稳定性。
    • 新增 PROXY 协议支持(proxy 参数),增强与负载均衡器的兼容性。
    • 新增主控基础探针功能、更多监控字段、连接状态主动探测功能,提升系统可观测性。
  • 优化:

    • 大幅度优化配置系统架构,引入高级参数控制,提升系统灵活性。
    • 改进连接处理和资源管理机制,显著提升整体性能表现。
    • 优化环境变量文档说明,明确连接池和并发调优的适用范围。
    • 改进错误处理机制,增强系统可靠性和故障恢复能力。
    • 优化日志记录和监控功能,提升运维效率。
  • 重构:

    • 核心代码架构全面重构,现代化代码结构,提升可维护性。
    • 配置表和最佳实践文档重构,明确各参数在不同模式下的适用性。
    • 系统监控和实例生命周期管理流程优化,提升运行稳定性。
    • 重构连接池和并发处理逻辑,提升高并发场景下的性能表现。
  • 修复:

    • 修复配置参数默认值设置不当的问题,优化系统默认行为。
    • 修复连接管理中的资源泄漏问题,增强内存使用效率。
    • 修复文档中配置示例与实际参数不匹配的问题。
    • 修复部分边缘情况下的连接异常问题,提升系统稳定性。
  • 兼容:

    • 双端握手机制升级,不支持旧版本混用,确保连接安全性。
    • 更新 Go 版本和核心依赖至 1.25 版本,增强性能与兼容性。
    • 所有新增参数均向下兼容,现有配置无需强制修改。
    • 配置格式标准化,确保跨版本使用的一致性。
  • 文档:

    • 全面更新中英文档,详细说明新增功能特性。
    • 新增高级参数配置说明,包含超时控制、速率限制等详细使用指南。
    • 增强配置表格和最佳实践文档,提供更清晰的使用指导。
    • 同步更新所有语言版本的文档,确保信息一致性和准确性。

Changelog

  • 663d1b1 Merge pull request #63 from NodePassProject/main
  • 803df9b chore: add nodepass-core description to README files for clarity on development branch
  • 17de070 fix: update log message for client and server restart to improve clarity
  • bcaf4b9 docs: update NP_SEMAPHORE_LIMIT default value to enhance signal handling capacity
  • 9990da9 fix: increase semaphore limit to enhance concurrency handling
  • 7eaeafc refactor: remove redundant context listeners to prevent resource leaks
  • d67d3f7 docs: update default data read timeout and clarify value format in documentation
  • bb13814 fix: adjust UDP buffer size and update read timeout for improved performance
  • 2115fc5 docs: add mode field to instance object in API documentation for clarity
  • 6c9f458 feat: add mode field to Instance struct and update log writer for mode tracking
  • c3786ac feat: include run mode in checkpoint event logging for better monitoring
  • a242ab3 feat: add run mode determination for client and server start functions
  • 380e4da docs: add automatic backup feature details and recovery instructions for master state file
  • fdc6a2d feat(master): implement periodic gob state backup functionality to enhance data persistence
  • b742fe8 docs: enhance system information output to include memory and swap metrics for improved monitoring
  • d3835c9 feat(master): update SystemInfo structure to include memory and swap metrics for improved system monitoring
  • bfb5fc0 fix(master): replace goroutine with direct call for instance auto-starting to ensure proper execution
  • eda364d fix(master): replace hardcoded sleep duration with baseDuration constant for consistency
  • c9222cb fix(master): improve CPU usage calculation by switching from /proc/loadavg to /proc/stat for more accurate readings
  • 9f414fe fix(master): improve instance monitoring logic by removing isInstanceAlive method and refining error detection
  • 825afab feat(master): enhance instance starting management with detailed monitoring methods including process and check point detections
  • f841e12 fix(common): set timeout to zero in TCP and UDP data exchange for improved performance
  • 40a6ade fix(server): simplify tunnel handshake error handling by removing select statement
  • 5e572a0 fix: streamline error handling in server Run method and remove redundant restart call
  • fb94f19 fix(common): set URL scheme to 'np' in commonTCPLoop and commonUDPLoop
  • 91ef157 docs: enhanced documentation to reflect the new proxy parameter in command syntax for server and client modes
  • 6253a19 fix(common): streamline logging in commonTCP methods by removing redundant error handling
  • 844edaa fix(common): handle errors from tunnelPool connection retrieval in commonLoop and commonOnce methods
  • 8b7e218 fix(deps): update conn and pool dependencies to v1.0.10 and v1.0.24 respectively
  • a96bb5a fix(common): simplify sendProxyV1Header implementation and update commonTCPOnce to use signalURL
  • 5204a53 fix(common): improve error messages for nil address checks and simplify header sending
  • c377b59 feat(common): implement proxy protocol handling in getProxyProtocol and sendProxyV1Header
  • 1bc4225 fix(common): move initTargetListener function to a new position for better organization
  • 27a4442 fix: update logging to use tunnelTCPAddr instead of tunnelAddr in Client , Server and Master
  • 8f2a2c1 fix(common): remove unused tunnelAddr field and improve address validation in initTargetListener and initTunnelListener
  • 07b717c fix(deps): update pool dependency to v1.0.23
  • a40256e fix(common): simplify error handling for closed network connections in TCP and UDP loops
  • 5ceda76 fix(common): improve error logging for address resolution and connection handling
  • 546af34 fix(common): simplify context check in commonUDPLoop to enhance readability
  • 8b6f217 refactor(common): rename slot and byte count variables for consistency, improve error handling, and optimize context checks
  • eab9c3c fix: implement graceful shutdown for client and server with context handling
  • 966a1c9 fix: change error logging to warning for connection timeout in TCP and UDP loops
  • ba57d11 fix: update timeout settings for tunnel connections in client and server handshake
  • a9f4b30 docs: add public endpoints section to usage documentation
  • a41de5b docs: update API documentation to include network and disk I/O metrics for Linux systems
  • c67f96b feat: enhance system info structure to include network and disk I/O metrics
  • 05274c7 fix: improve parsing of /proc/meminfo in getLinuxSysInfo for accurate RAM usage
  • 408cccf fix: update getLinuxSysInfo to return -1 for CPU and RAM when not applicable
  • 442f065 docs: add CPU and RAM usage metrics to system info response for Linux systems
  • 1f01a33 feat: add CPU and RAM usage metrics to system info endpoint and OpenAPI spec
  • 6cf5364 docs: add TCP connectivity test endpoint to API documentation
  • ecdfc1a feat: add TCPing endpoint for connectivity testing with concurrency control
  • 7467c69 docs: correct order of health check data fields in API documentation
  • 2c240c9 refactor: reorder fields in Instance struct and update regex for log parsing
  • 13c80ab fix: update logging format for checkpoint events to improve readability
  • 3223bde fix: handle EOF error in client and server start methods
  • 1eba4b9 refactor: remove semaphore initialization from client and server constructors
  • 1be7337 refactor: remove semaphore usage and implement connection slot management for TCP and UDP
  • 289abb3 docs: add TCP and UDP connection count fields to API documentation and examples for monitoring
  • e01c461 feat: add TCP and UDP connection counts to Instance struct and update log parsing
  • c877de6 fix: update semaphore initialization and logging to use slot limits in client and server
  • d384493 feat: implement connection slot management for TCP and UDP to limit concurrent connections
  • 0627ef4 docs: increase TCP dial timeout default value to improve connection reliability
  • 1e537fc fix: increase TCP dial timeout default value to improve connection reliability
  • cf2eb44 docs: remove redundant max parameters from client URL examples in configuration documentation
  • 7904c59 fix: replace time.Sleep with context-aware select for health check and event loop intervals
  • 48fd7e1 fix: enhance tunnel handshake to validate URL components and streamline data flow handling
  • fcfb0f0 fix: streamline logging information in client and server run methods and change tunnelURL format
  • 23db876 docs: update usage instructions to include advanced parameters for timeouts and rate limits
  • 4c4ea45 docs: clarify connection pool capacity parameters and the...
Read more

v1.5.1

23 Jul 08:25
e2dd219

Choose a tag to compare

更新日志

  • 修复:

    • 紧急修复一处 v1.5.0 新增的潜在缺陷,避免 CPU 占用增长远超预期。
  • 优化:

    • 大幅压降 SSE 中 update 的推送频率,与健康检查结果合并推送。
    • 为各循环位置增设、调整 50ms 短延迟以增强并发稳定性能。
    • 在入口和出口处理 go 协程中增设主上下文检测,避免资源泄露。
    • 优化了一些日志的显示,统一日志风格,降低代码复杂度。

Changelog

  • e2dd219 Merge pull request #58 from NodePassProject/main
  • 586cc6b fix: simplify UDP error logging by removing redundant EOF checks
  • 8e00a19 fix: improve error logging messages and add sleep duration in UDP/TCP loops for stability
  • f085052 fix: remove unnecessary defer close for error channels in commonControl and singleLoop
  • dd095b7 fix: remove common error channel from client and server initialization
  • df3c378 refactor: add context monitoring to prevent resource leaks in connection management
  • 1f48c60 refactor: enhance context management by adding drain func and unified channel initialization
  • 8c93ce2 fix: increase sleep duration to 50ms in various loops for improved stability
  • 3d2f09f refactor: remove SSE event sending during instance stats update

v1.5.0

22 Jul 07:34
e780ec0

Choose a tag to compare

更新日志

  • 新增:

    • 重磅推出“池连接回收”功能,支持连接回收复用,提升池管理效率,大幅度提升双端模式性能。
    • 新增双端模式下 UDP 会话管理,已完全支持各类 UDP 传输,包括不限于 QUIC over TCP/TLS。
    • 新增日志等级 noneevent,支持更灵活的日志输出策略,适配高并发与无日志场景。
    • 新增“反触发”健康检查机制,带有端内延迟显示、池连接数显示等功能,与 API 同步推送。
    • 服务端现在可以通过设置自己侧的 max 参数来对最大连接数进行限制,客户端设置保持不变。
  • 优化:

    • 大幅度压降 Event 日志数量,目前通过 API 方式广播至前端的此类日志已被过滤。
    • TCP 单连接流程中资源释放逻辑优化,避免目标连接未关闭导致的资源泄漏。
    • 优化连接池错误状态在健康检查中的重置逻辑,防止误报。
    • TCP 与 UDP 数据传输日志输出增强,细化数据交换、连接关闭等阶段日志。
    • 健康检查日志输出结构重构,加入连接池状态信息,便于定位问题。
    • 日志等级初始化函数增强,支持更严谨的参数验证与默认值。
    • 精简 client/server 启动流程代码,提升可读性与可维护性。
    • 改进 UDP 会话关闭时的错误处理机制,降低极端场景下的崩溃风险。
    • 增强目标连接失败后的处理策略,引入延迟避免过快重试。
  • 重构:

    • 调整错误通道初始化逻辑,提升调度流程一致性。
    • 核心控制流与健康检查结构重构,引入互斥锁保护写操作,防止并发写入冲突。
    • 实例的结构体增强,加入健康检查统计字段,并改进日志解析逻辑。
    • UDP 会话管理流程优化,提升并发稳定性与错误可追踪性。
  • 修复:

    • 修复连接池容量默认值设置过高的问题,将默认最大容量为 1024,可按需调整。
    • 修复持久化文件保存调用过程中阻塞主流程的问题,现已异步执行。
    • 修复因连接池容量错误配置导致的资源泄漏与崩溃问题。
    • 修复 TCP/UDP 通道读取超时控制未生效的问题。
    • 增强读取失败时的错误日志输出,便于追踪。
  • 兼容:

    • 当前 v1.5.0v1.4.4 及以下版本的服务端/客户端不相互兼容,两侧需同时更新。
    • 同步更新 connpool 依赖版本至最新(如 v1.0.18、v1.0.3 等),增强性能与兼容性。
    • 所有连接池行为调整均已同步更新至文档,确保使用者行为一致。
  • 文档:

    • 更新 README.mdREADME_zh.md 文件,提升配置项、使用说明与功能描述的准确性。
    • 新增日志等级、连接池容量、URL 查询参数范围等说明文档,补充最佳实践内容。
    • 调整 NodePass 项目 Logo 与文档结构,提升整体可读性与视觉一致性。

Changelog

  • e780ec0 Merge pull request #57 from NodePassProject/main
  • 622ef8f refactor: rename initContext to initBackground and adjust error channel initialization
  • 05f8aaf fix: add mutex for saveState to prevent concurrent write issues
  • b79729b fix: run saveState in a goroutine to prevent blocking during instance updates
  • 051c0e3 refactor: increase error channel buffer size for common control and initialization
  • 5f759a8 fix: reset tunnel pool errors during health check and common processing
  • 6356bfa chore: update pool dependency to v1.0.18 in go.mod and go.sum
  • d3b736f fix: improve health check locking mechanism to prevent deadlocks
  • 8d8b4c3 fix: update TLS configuration initialization to use version directly
  • b513248 chore: update pool dependency to v1.0.17 in go.mod and go.sum
  • 59c5da7 docs: update configuration table to reflect valid parameters for log levels and pool capacity
  • 7df05ce docs: update maximum connection pool capacity from 8192 to 1024 in documentation
  • e3333b9 fix: update default max pool capacity from 8192 to 1024
  • 0467df7 chore: update pool dependency to v1.0.16 in go.mod and go.sum
  • edf3fca feat: add support for 'none' and 'event' log levels in initLogLevel function
  • 9ce59a7 docs: add URL query parameter scope and best practices for configuration
  • f627dfb docs: update log levels in configuration and usage documentation to reflect the addition of 'none' level
  • 8494d47 chore: update logs dependency to v1.0.2 in go.mod and go.sum
  • 1cc671c refactor: replace bufio.Reader with conn.TimeoutReader in tunnelHandshake for improved timeout handling
  • 52569d7 chore: update pool dependency to v1.0.15 in go.mod and go.sum
  • e14003d refactor: improve resource management in singleTCPLoop by closing target connection
  • 398eff6 docs: update API documentation for clarity and consistency in Master Mode section
  • c4944cf refactor: enhance Instance struct with health check metrics and improve log parsing
  • 6dc1699 refactor: update health check logging format to include pool status
  • aa2aea5 refactor: enhance logging for data exchange and transfer completion in TCP and UDP loops
  • db80e8c refactor: streamline data flow handling in client and server start methods
  • 7ce1e85 refactor: remove unused strconv and strings imports in client and server handshake
  • 0a84568 fix: reset read deadline and clean up UDP sessions in commonUDPLoop and commonUDPOnce
  • e8ac420 chore: update pool dependency to v1.0.14 in go.mod and go.sum
  • fa3fdbb feat: add max pool capacity handling in tunnel handshake for client and server
  • 038488a fix: improve UDP error handling for session closure in commonUDPLoop and commonUDPOnce
  • 795e665 fix: replace manual read deadline setting with TimeoutReader for singleUDPLoop
  • bb2f57b chore: update conn dependency to v1.0.3 in go.mod and go.sum
  • c412936 refactor: enhance UDP session management and error handling in commonUDPLoop and commonUDPOnce
  • ecb27f8 Merge pull request #56 from NodePassProject/main
  • c97b55b fix: add delay before returning on target connection failure in singleTCPLoop
  • d5470af docs: update README and README_zh to enhance clarity and improve feature descriptions
  • 1098ac8 refactor: streamline UDP session management and enhance error handling in commonUDPLoop and commonUDPOnce
  • 8f01761 refactor: improve UDP session handling and error logging in commonUDPLoop and commonUDPOnce
  • 9b9f7f5 Merge branch 'yosebyte:main' into main
  • 67fb543 chore: update README_zh.md
  • c68f747 chore: update README.md
  • 532e683 fix: enhance error logging for read operations in UDP loops
  • d3bfb1b refactor: improve connection handling and error logging in TCP/UDP loops
  • 5f1bff3 chore: update pool dependency version to v1.0.9
  • 720172c feat: add conn put in singleTCPLoop and update debug logging
  • 105991e chore: update README_zh.md
  • b31619a chore: update README.md
  • b0794df Merge pull request #54 from NodePassProject/main
  • 3f76d60 chore: update nodepass logo in README files
  • 86d21df docs: update UDP and TCP read and dial timeouts to 20 seconds by default
  • 87d8ceb fix: increase UDP and TCP read and dial timeouts to 20 seconds
  • f680289 fix: update debug logging for tunnel connection pool activity
  • 91a609d fix: improve error logging for connection retrieval failures in TCP and UDP loops
  • 708311d chore: update conn dependency from v1.0.0 to v1.0.1 and pool dependency from v1.0.7 to v1.0.8
  • 1565d64 feat: replace remote connection closure with tunnel pool return in TCP and UDP loops