novemus/wormhole

GitHub: novemus/wormhole

wormhole 是一款通过 UDP/TCP/SSL 多协议隧道将远程 TCP 服务转发到本地接口的工具,旨在为私有服务提供具备 NAT/DPI 容忍性的传输通道。

Stars: 7 | Forks: 0

# README [wormhole](https://github.com/novemus/wormhole) 是一款通过多协议(UDP/TCP/SSL)安全隧道转发 TCP 服务的工具。该实用程序的初衷是扩展 [plexus](https://github.com/novemus/plexus) 工具的功能,并为私有服务提供具有 NAT/DPI 容忍性的传输隧道。UDP/TCP 隧道通过 [tubus](https://github.com/novemus/tubus) 库实现,而 SSL 隧道则使用 OpenSSL。`tubus` 库提供了使用预共享密钥混淆传输通道的能力。这对于保护隧道免受潜在攻击非常有用。请注意,这种混淆并非完全意义上的加密。应用程序应当自行负责对传输数据进行加密。 ## 构建 您可以为 Debian 和 Windows 平台下载 [预构建包](https://github.com/novemus/wormhole/releases)。 该项目依赖于 `boost` 和 `tubus` 库。克隆存储库并运行以下命令: ``` $ cd ~ $ git clone https://github.com/novemus/wormhole.git $ cd ~/wormhole $ [CMAKE_PREFIX_PATH=...] cmake -B ./build -DCMAKE_BUILD_TYPE=Release [-DBOOST_ROOT=...] [-DBUILD_SHARED_LIBS=ON] [-DWORMHOLE_SKIP_TEST_RULES=OFF] $ cmake --build ./build --config Release --target all $ cmake --build ./build --target install ``` ## 使用说明 在导出某项服务的主机上,使用您的参数运行以下命令: ``` $ export WORMHOLE_SECRET=<64-bit-number> $ wormhole --purpose=export --service= --gateway= --faraway= ``` 在导入外部服务的主机上,使用您的参数运行以下命令: ``` $ export WORMHOLE_SECRET=<64-bit-number> $ wormhole --purpose=import --service= --gateway= --faraway= ``` 主要命令行选项: `--purpose` - 应用程序相对于指定服务的使用方式:**export|import** `--service` - 映射所导入服务的 endpoint,或所导出服务的 endpoint:**ip:port** `--gateway` - 本地公共接口上的传输隧道 endpoint:**ip:port** `--faraway` - 远程公共接口上的传输隧道 endpoint:**ip:port** `--quality` - 隧道协议和连接 schema:**udp:client|udp:server|udp:mutual|tcp:client|tcp:server|tcp:mutual|ssl:client|ssl:server|ssl:mutual|any:either** 环境变量: `WORMHOLE_SECRET` - 用于混淆 UDP/TCP 隧道的预共享密钥,64 位数字 `WORMHOLE_CERT` - 主机 SSL 证书的路径,PEM 文件 `WORMHOLE_KEY` - 主机 SSL 私钥的路径,PEM 文件 `WORMHOLE_CA` - CA 证书的路径,PEM 文件 ## 库 `wormhole` 库的 API 在 [wormhole.h](https://github.com/novemus/wormhole/blob/master/wormhole.h) 头文件中进行了描述。 ## 许可证 `wormhole` 采用 Apache License 2.0 授权,这意味着只要您满足其条件,就可以自由地将其用于商业和非商业目的。有关更多详细信息,请参阅 LICENSE.txt 文件。 ## 版权 版权所有 © 2023 Novemus Band. 保留所有权利。
标签:Bash脚本, C++, CMake, NAT穿透, 安全合规, 安全测试工具, 数据擦除, 端口转发, 网络代理, 网络通信, 网络隧道