16 个稳定版本
3.4.4 | 2024 年 2 月 5 日 |
---|---|
3.3.6 | 2024 年 1 月 28 日 |
#4 in #tunneling
每月下载 169 次
35KB
755 行
Zika
基于 MQTT 的 IP 隧道
设计用于允许连接到现有 MQTT 网络的 IoT/Edge 设备进行远程访问。
工作原理
IP 数据包作为 2 个主题的 MQTT 负载发送
- 客户端 -> 服务器:
topic>
(负载前缀为隧道 ID) - 服务器 -> 客户端:
<topic>/<base64-tunnel-id>
服务器:可以处理来自多个客户端的多个隧道,每个隧道映射到不同的本地 IP
客户端:可以创建多个隧道连接到多个服务器,每个隧道映射到不同的本地 IP
假设 MQTT 连接是安全的且具有认证机制。Zika 在 MQTT 连接之上不提供额外的安全层,如果 MQTT 连接/代理受到损害,则可能捕获/注入任意 IP 数据包到目标设备。
配置 & 运行
将 zika-client
和 zika_config.toml
复制到同一目录
运行 zika-client
- Linux:
setcap cap_net_admin+eip zika-client
- macOS: 需要
sudo
- Windows: 以管理员身份运行,需要在同一目录中包含
wintun.dll
构建
$ cargo build
依赖项
~20–51MB
~886K SLoC