16 个稳定版本

3.4.4 2024 年 2 月 5 日
3.3.6 2024 年 1 月 28 日

#4 in #tunneling

Download history 54/week @ 2024-03-30 262/week @ 2024-04-27 1/week @ 2024-05-04

每月下载 169

MIT 许可协议

35KB
755

Crates.io docs.rs Build Status Github

Zika

基于 MQTT 的 IP 隧道

设计用于允许连接到现有 MQTT 网络的 IoT/Edge 设备进行远程访问。

工作原理

IP 数据包作为 2 个主题的 MQTT 负载发送

  • 客户端 -> 服务器: topic>(负载前缀为隧道 ID)
  • 服务器 -> 客户端: <topic>/<base64-tunnel-id>

服务器:可以处理来自多个客户端的多个隧道,每个隧道映射到不同的本地 IP

客户端:可以创建多个隧道连接到多个服务器,每个隧道映射到不同的本地 IP

假设 MQTT 连接是安全的且具有认证机制。Zika 在 MQTT 连接之上不提供额外的安全层,如果 MQTT 连接/代理受到损害,则可能捕获/注入任意 IP 数据包到目标设备。

配置 & 运行

参见 zika_config.example.toml

zika-clientzika_config.toml 复制到同一目录

运行 zika-client

  • Linux: setcap cap_net_admin+eip zika-client
  • macOS: 需要 sudo
  • Windows: 以管理员身份运行,需要在同一目录中包含 wintun.dll

构建

$ cargo build

依赖项

~20–51MB
~886K SLoC