Releases: yosebyte/nodepass
Releases · yosebyte/nodepass
v1.9.0
更新日志
-
新增:
- 新增
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
更新日志
-
优化:
- 上下文取消逻辑统一处理,核心循环退出更稳定
- 隧道资源初始化更严谨,错误反馈更及时
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
更新日志
-
新增:
- 新增
NodePass基础高可用功能,通过轮询方式将负载均衡与故障转移相结合。新增目标地址组概念,将原单一目标地址进行扩展,命令格式方面,目标地址以,相分隔,核心将自动开启高可用,同时生效于单端或双端模式的出口位置。 - 新增
meta字段,包含peer和tags以扩展实例的元数据信息,有助于解决双端模式下,分布式部署的实例割裂问题。 - 新增主控
ID的生成和持久化逻辑,以备前端应用取用。
- 新增
-
优化:
- 实例级别的内部错误(例如端口冲突等)可顺利传递至主控,用以标记实例状态,加强外部感知。
- 缩短
tcp和udp以及实例握手的超时时间,进一步提升故障转移的相应速度。
-
修复:
- 修复主控从持久化文件拉取实例时,高负载状态下的竞态问题,避免实例拉取失败。
- 修复实例流量信息重置后继续陡增的重置不完整问题。
-
文档:
- 以上新增内容均已在内置文档
/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
更新日志
-
新增:
- 环境变量
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
更新日志
-
新增:
- 新增池连接复用开关,通过
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
更新日志
-
新增:
API新增标签设置可选项,有助于前端更好的进行跨平台信息主控持久化。- 新增
TCP缓冲区池,贯穿单端、双端底层链路,极大降低了内存占用。
-
优化:
- 信号通道全面升级,新增
base64加解密,完全消除了隧道URL解析错误问题。
- 信号通道全面升级,新增
-
重构:
- 精简部分重用代码,继续精简主函数,增强错误处理显示。
- 底层
pool和conn库的少量重构,增强内存管理,降低占用。
-
修复:
- 修复一些
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
更新日志
-
优化:
- 调整
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
更新日志
-
新增:
- 新增运行模式控制功能(
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
proxyparameter 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...
v1.5.1
更新日志
-
修复:
- 紧急修复一处
v1.5.0新增的潜在缺陷,避免 CPU 占用增长远超预期。
- 紧急修复一处
-
优化:
- 大幅压降 SSE 中
update的推送频率,与健康检查结果合并推送。 - 为各循环位置增设、调整 50ms 短延迟以增强并发稳定性能。
- 在入口和出口处理 go 协程中增设主上下文检测,避免资源泄露。
- 优化了一些日志的显示,统一日志风格,降低代码复杂度。
- 大幅压降 SSE 中
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
更新日志
-
新增:
- 重磅推出“池连接回收”功能,支持连接回收复用,提升池管理效率,大幅度提升双端模式性能。
- 新增双端模式下 UDP 会话管理,已完全支持各类 UDP 传输,包括不限于 QUIC over TCP/TLS。
- 新增日志等级
none与event,支持更灵活的日志输出策略,适配高并发与无日志场景。 - 新增“反触发”健康检查机制,带有端内延迟显示、池连接数显示等功能,与 API 同步推送。
- 服务端现在可以通过设置自己侧的
max参数来对最大连接数进行限制,客户端设置保持不变。
-
优化:
- 大幅度压降
Event日志数量,目前通过 API 方式广播至前端的此类日志已被过滤。 - TCP 单连接流程中资源释放逻辑优化,避免目标连接未关闭导致的资源泄漏。
- 优化连接池错误状态在健康检查中的重置逻辑,防止误报。
- TCP 与 UDP 数据传输日志输出增强,细化数据交换、连接关闭等阶段日志。
- 健康检查日志输出结构重构,加入连接池状态信息,便于定位问题。
- 日志等级初始化函数增强,支持更严谨的参数验证与默认值。
- 精简 client/server 启动流程代码,提升可读性与可维护性。
- 改进 UDP 会话关闭时的错误处理机制,降低极端场景下的崩溃风险。
- 增强目标连接失败后的处理策略,引入延迟避免过快重试。
- 大幅度压降
-
重构:
- 调整错误通道初始化逻辑,提升调度流程一致性。
- 核心控制流与健康检查结构重构,引入互斥锁保护写操作,防止并发写入冲突。
- 实例的结构体增强,加入健康检查统计字段,并改进日志解析逻辑。
- UDP 会话管理流程优化,提升并发稳定性与错误可追踪性。
-
修复:
- 修复连接池容量默认值设置过高的问题,将默认最大容量为 1024,可按需调整。
- 修复持久化文件保存调用过程中阻塞主流程的问题,现已异步执行。
- 修复因连接池容量错误配置导致的资源泄漏与崩溃问题。
- 修复 TCP/UDP 通道读取超时控制未生效的问题。
- 增强读取失败时的错误日志输出,便于追踪。
-
兼容:
- 当前
v1.5.0与v1.4.4及以下版本的服务端/客户端不相互兼容,两侧需同时更新。 - 同步更新
conn和pool依赖版本至最新(如 v1.0.18、v1.0.3 等),增强性能与兼容性。 - 所有连接池行为调整均已同步更新至文档,确保使用者行为一致。
- 当前
-
文档:
- 更新
README.md与README_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