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穿透, 安全合规, 安全测试工具, 数据擦除, 端口转发, 网络代理, 网络通信, 网络隧道