NodePass
NodePass 是一款基于 Go 语言开发的开源 TCP 隧道工具,适用于在复杂网络环境下实现数据传输。项目设计上将控制通道和数据通道分离,控制通道使用未加密的 TCP 连接,而数据通道支持三种 TLS 模式(无加密、自签证书、定制证书),以满足不同的安全要求。

主要功能与特点
-
双模式架构
- 服务器模式:在指定地址上监听控制连接,同时在目标地址上接受 TCP/UDP 流量。收到连接后,通过控制通道发送信号,并按配置的 TLS 模式建立数据通道。
- 客户端模式:连接服务器控制通道,接收建立数据通道的信号,并将数据转发至本地目标。
-
协议支持
同时支持 TCP 和 UDP 流量,确保大部分应用场景下的兼容性,既适合全双工的持久通信,也能处理无状态的单次数据交换。
-
灵活加密选项
通过命令行参数配置 TLS 模式,用户可以根据实际需求选择无加密、自签证书或自定义证书模式,从而在安全性和性能之间找到平衡。
-
智能连接池
内置连接池用于管理和复用连接,自动处理连接的创建、重连以及资源释放,从而降低系统开销并保证稳定性。
-
零配置部署
所有参数均通过命令行和环境变量设定,无需额外配置文件。单一二进制文件即可部署,大大简化了安装和升级过程。
工作原理
-
控制通道
用于客户端和服务器之间的信号传递,保持长连接状态。所有建立数据通道的指令均通过这一通道传递。
-
数据通道
根据服务器配置的 TLS 模式为每个传入连接创建独立数据通道,实现数据传输。可根据实际场景选择不同加密级别。
-
连接管理
通过内置的连接池,对连接进行预先建立和动态管理。连接在使用后会自动关闭,确保系统资源的有效利用。
使用示例
nodepass server://:10101/127.0.0.1:8080?tls=1
启动一个服务器,监听 10101 端口,并将接收到的流量转发到本地 8080 端口,同时采用自动生成自签证书的 TLS 模式。
nodepass client://server.example.com:10101/127.0.0.1:8080
客户端连接到服务器的控制通道,并将流量转发至本地 8080 端口,自动匹配服务器的 TLS 配置。
NodePass 针对高级网络环境做了充分优化,适合对网络性能和安全性有一定要求的用户使用。
详细信息和最新版本请参考仓库:
https://github.com/yosebyte/nodepass
|