Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
Reticulum — 基于密码学的网络协议栈,用于通过 LoRa、分组无线电、WiFi 及各种媒介构建不可阻挡的网络。 | Kitploit
工具/GitHubGitHub/markqvist/reticulum
加密/解密工具网络安全无线安全密码学隐私保护实用工具与框架身份验证
GitHubmarkqvist/reticulum

Reticulum

基于密码学的网络协议栈,用于通过 LoRa、分组无线电、WiFi 及各种媒介构建不可阻挡的网络。

查看仓库
6.7k490126天前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
网站

Reticulum网络栈

此仓库是公共镜像。所有开发都在别处进行。

要理解该系统的基础哲学和目标,请阅读Reticulum之道。

Reticulum是基于密码学的网络栈,用于利用现成的硬件构建局域网和广域网。它甚至可以在极高延迟和极低带宽下运行。Reticulum允许你使用现成工具构建广域网,并提供端到端加密和连接、发起者匿名性、自动配置的密码学支持的多跳传输、高效寻址、不可伪造的交付确认等。

Reticulum的愿景是让任何人都能成为自己的网络运营商,并使利用众多独立、可互连和自治的网络覆盖广阔区域变得廉价而容易。Reticulum 不是一个网络。它是用于构建成千上万个网络的工具。没有终止开关、监视、审查和控制的网络。可以自由互操作、关联和断开关联,且无需中央监督的网络。属于人类的网络。属于人民的网络。

Reticulum是一个完整的网络栈,不依赖IP或更高层,但可以将IP用作Reticulum的底层载体。因此,通过互联网或私有IP网络隧道化Reticulum是轻而易举的。

不依赖传统网络栈释放了开销,这些开销已被用于实现直接建立在密码学原理上的网络栈,从而在开放和不可信的网络中实现弹性和稳定的功能。

无需内核模块或驱动程序。Reticulum完全在用户空间运行,并且可以在几乎所有运行Python 3的系统上运行。

阅读手册

Reticulum的完整文档可在markqvist.github.io/Reticulum/manual/获取。

您也可以下载Reticulum手册PDF版或EPUB格式电子书。

更多信息,请访问reticulum.network和Wiki的FAQ部分。

显著特性

  • 无协调的全局唯一寻址和标识
  • 完全自配置的异构载体多跳路由
  • 异构拓扑上的灵活可扩展性
    • Reticulum可以在任何混合物理介质和拓扑上传输数据
    • 低带宽网络可以与大型高带宽网络共存并互操作
  • 发起者匿名性,通信时无需透露身份
    • Reticulum在任何数据包中都不包含源地址
  • 非对称X25519加密和Ed25519签名作为所有通信的基础
    • 基础的Reticulum身份密钥是512位椭圆曲线密钥集
  • 所有通信类型均支持前向保密,包括单个数据包和链路上
  • Reticulum使用以下格式进行加密令牌:
    • 每个数据包和链路的临时密钥源自Curve25519上的ECDH密钥交换
    • AES-256 CBC模式,PKCS7填充
    • 使用SHA256的HMAC进行认证
    • 通过os.urandom()生成IV
  • 不可伪造的数据包交付确认
  • 灵活可扩展的接口系统
    • Reticulum包含多种内置接口类型
    • 能够加载和使用用户或社区提供的自定义接口类型
    • 轻松创建自己的自定义接口,用于通过任何介质进行通信
  • 所有支持接口类型上的认证和虚拟网络分段
  • 直观易用的API
    • 比套接字API更简单易用,但更强大
    • 使构建分布式和去中心化应用简单得多
  • 可靠高效地传输任意数量数据
    • Reticulum可以处理几个字节的数据或数GB的文件
    • 排序、压缩、传输协调和校验和自动完成
    • API非常易用,并提供传输进度
  • 轻量、灵活且可扩展的请求/响应机制
  • 高效链路建立
    • 建立加密和验证链路的总开销仅为3个数据包,共297字节
    • 保持链路打开的低成本仅为每秒0.44比特
  • 通过信道和缓冲区机制实现可靠的顺序交付

参考实现

此仓库中的Python代码是Reticulum的参考实现。Reticulum协议完全且权威地由该参考实现及其相关手册定义。由Mark Qvist维护,其Reticulum身份标识为<bc7291552be7a58f361522990465165c>。

目前没有,也永远不会存在任何二级协议规范衍生品。你无法获得比可执行、功能完备、可测试、已部署并在全球24/7运行的规范更好的规范。

对于Reticulum,没有也永远不会有一个单独的衍生“正式规范”、“RFC”或任何类似的东西:

参考实现就是最终、权威的规范。

与Reticulum协议的兼容性定义为与此参考实现具有完全的互操作性以及足够的功能对等。任何实现此目标的特定协议实现就是Reticulum。任何未实现此目标的都不是Reticulum。

参考实现遵循Reticulum许可证。

Reticulum协议于2016年奉献给公共领域。

Reticulum应用示例

如果你想快速了解Reticulum能做什么,请查看手册的使用Reticulum的程序部分,或以下资源:

  • LXMF是建立在Reticulum上的分布式、容忍延迟和中断的消息传输协议
  • LXST协议和框架提供基于Reticulum的实时音频和信号传输。它包括用于构建基于语音的应用和硬件设备的原语和工具,例如可用于构建硬件电话的rnphone程序。
  • 对于离网、加密且弹性的网格通信平台,请参阅Nomad Network
  • 适用于Android、Linux、macOS和Windows的Sideband应用具有图形界面和许多高级功能,例如文件传输、图片和语音消息、实时语音通话、分布式遥测系统、地图功能以及完整的插件可扩展性。
  • MeshChatX是一个功能齐全的LXMF客户端,具有许多内置工具和功能,还支持图片和语音消息、文件传输和语音通话。它还包括一个内置页面浏览器,用于浏览Nomad Network节点。
  • 你可以使用附带的rnsh程序通过Reticulum建立远程shell会话。

Reticulum可以用在哪里?

几乎任何能够支持至少半双工信道、吞吐量大于每秒5比特且MTU为500字节的介质。数据无线电、调制解调器、LoRa无线电、串行线、AX.25 TNC、业余无线电数字模式、WiFi和以太网设备、自由空间光链路以及类似系统都是Reticulum可以使用的物理设备类型的例子。

一种名为RNode的开源LoRa接口专为与Reticulum配合使用而设计。你可以自己构建,也可以购买完整的收发器,只需USB连接主机即可。

Reticulum也可以封装在现有IP网络上,因此没有什么能阻止你通过有线以太网、本地WiFi网络或互联网使用它,它在这些网络上同样可以正常工作。事实上,Reticulum的优势之一是它能够轻松地将不同介质连接成一个自配置、弹性和加密的网格,利用任何可用的基础设施混合。

例如,可以设置一个同时连接到LoRa无线电、分组无线电TNC和WiFi网络的树莓派。配置好接口后,Reticulum将处理其余部分,WiFi网络上的任何设备都可以与LoRa和分组无线电侧的网络节点通信,反之亦然。

如何开始?

开始使用Reticulum网络栈的最佳方式取决于你想做什么。有关完整的细节和示例,请参阅Reticulum手册中的快速入门部分。

要在系统上简单安装Reticulum和相关工具,最简单的方法是通过pip。然后你可以启动任何使用Reticulum的程序,或使用rnsd工具将Reticulum作为系统服务启动。```bash pip install rns

root@kitploit:~
如果你使用的操作系统禁止通过 `pip` 正常安装用户包,你可以通过编辑 `~/.config/pip/pip.conf` 文件,并在 `[global]` 部分添加以下指令来恢复 `pip` 的正常行为:```text
[global]
break-system-packages = true

或者,你可以使用 pipx 工具在隔离环境中安装 Reticulum:```bash pipx install rns

root@kitploit:~
当 Reticulum 首次启动时,它会创建一个默认配置文件,提供与本地可能可达的其他 Reticulum 对等体的基本连接。默认配置文件中包含了一些示例和创建更复杂配置的参考。

如果您的系统上安装了旧版本的 `pip`,您可能需要先使用 `pip install pip --upgrade` 进行升级。如果您尚未安装 `pip`,可以使用系统的软件包管理器(例如 `sudo apt install python3-pip` 或类似命令)进行安装。

有关如何通过多种介质(如分组无线电或 LoRa、串口,或通过使用 UDP 和 TCP 接口的快速 IP 链路和互联网)扩展通信的更多详细示例,请参阅 [Reticulum 手册](https://markqvist.github.io/Reticulum/manual/) 中的 [支持的接口](https://markqvist.github.io/Reticulum/manual/interfaces.html) 部分。

## 包含的实用工具

Reticulum 包含一系列有用的实用工具,用于管理您的网络、查看状态和信息,以及执行其他任务。您可以在 [Reticulum 手册](https://markqvist.github.io/Reticulum/manual/) 的 [包含的实用程序](https://markqvist.github.io/Reticulum/manual/using.html#included-utility-programs) 部分了解有关这些程序的更多信息。

- 系统守护进程 `rnsd`,用于将 Reticulum 作为始终可用的服务运行
- 接口状态实用工具 `rnstatus`,显示接口信息
- 路径查找和管理工具 `rnpath`,允许您查看和修改路径表
- 诊断工具 `rnprobe`,用于检查与目标节点的连接性
- 简单的文件传输程序 `rncp`,使系统之间轻松传输文件
- 身份管理和加密实用工具 `rnid`,允许您管理身份并加密/解密文件
- `rnsh` 程序允许您与远程系统建立完全交互式的 shell 会话
- 远程命令执行程序 `rnx`,允许您运行简单的命令和程序,并从远程系统检索输出
- `rngit` 程序提供了一个完整的多仓库 Git 节点,用于通过 Reticulum 提供仓库服务
- 附带的 `git-remote-rns` 助手允许您通过 Reticulum 与 Git 仓库交互

所有工具(包括 `rnx` 和 `rncp`)即使在极低带宽的链路上(如 LoRa 或分组无线电)也能可靠且良好地运行。如需通过 Reticulum 使用全功能远程 shell,还请查看 [rnsh](https://github.com/acehoss/rnsh) 程序。

## 支持的接口类型和设备

Reticulum 实现了一系列通用接口类型,涵盖了 Reticulum 可以运行的大多数通信硬件。如果您的硬件不受支持,[实现自定义接口模块](https://markqvist.github.io/Reticulum/manual/interfaces.html#custom-interfaces) 非常简单。

我们欣然接受自定义接口的拉取请求,前提是它们通常有用且在真实世界使用中经过充分测试。

目前,支持以下内置接口:

- 任何以太网设备
- 使用 [RNode](https://unsigned.io/rnode/) 的 LoRa
- 分组无线电 TNC(带或不带 AX.25)
- KISS 兼容的硬件和软件调制解调器
- 任何带有串口的设备
- 基于 IP 网络的 TCP
- 基于 IP 网络的 UDP
- 通过 stdio 或管道的外部程序
- 通过 stdio 或管道的自定义硬件

## 性能

Reticulum 的目标是覆盖一个非常宽的可用的性能范围,但优先考虑在低带宽介质上的功能和性能。目标是提供从每秒 250 比特到每秒 1 吉比特的动态性能范围(在普通硬件上)。

目前,可用的性能范围约为每秒 150 比特到每秒 500 兆比特,比这更快的物理介质尚未饱和。超出当前水平的性能计划在未来的升级中实现,但目前不是高度优先的事项。

## 当前状态

所有核心协议功能均已实现并运行,但随着真实世界使用的探索和理解,可能会添加更多功能。API 和线格式可以认为是稳定的。

## 依赖项

默认 `rns` 包的安装只需要两个外部依赖项,如下所列。几乎所有系统和发行版都有这些依赖项的现成包,当使用 `pip` 安装 `rns` 包时,它们也会被下载并安装。

- [PyCA/cryptography](https://github.com/pyca/cryptography)
- [pyserial](https://github.com/pyserial/pyserial)

在更不寻常的系统中,以及在少数罕见情况下,可能无法安装甚至编译上述一个或多个模块。在这种情况下,您可以改用 `rnspure` 包,该包安装时无需外部依赖项。请注意,`rns` 和 `rnspure` 包的内容是*相同的*。唯一的区别是 `rnspure` 包在安装时不列出任何依赖项。

无论 Reticulum 如何安装和启动,它只会在*需要*且*可用*时加载外部依赖项。例如,如果您想在无法支持 [pyserial](https://github.com/pyserial/pyserial) 的系统上使用 Reticulum,完全可以使用 `rnspure` 包,但 Reticulum 将无法使用基于串口的接口。所有其他可用模块仍会在需要时加载。

**请注意!** 如果您在无法支持 [PyCA/cryptography](https://github.com/pyca/cryptography) 的系统上使用 `rnspure` 包运行 Reticulum,请务必阅读并理解本文档的 [加密原语](#cryptographic-primitives) 部分。

## 引导连接

Reticulum 并不是一个您订阅的服务,也不是一个您“加入”的单一全球网络。Reticulum 提供了通过网络本身发现可用公共接口的功能,并且更广泛的社区提供了各种公开入口点的目录,以引导连接。

要了解如何通过 Reticulum 建立初始连接,请阅读手册中的 [引导连接](https://reticulum.network/manual/gettingstartedfast.html#bootstrapping-connectivity) 部分。

如果您已经大致了解其工作原理,可以使用社区运营的网站(如 [directory.rns.recipes](https://directory.rns.recipes/) 和 [rmap.world](https://rmap.world))查找用于初始连接到全球分布式 Reticulum 骨干网的接口定义。

## 公共测试网

***重要!** 历史上,Reticulum 项目本身曾提供一个面向开发者的测试网。随着全球 Reticulum 节点和入口点数量大幅增长,这个公共测试网(包括阿姆斯特丹测试网入口点)现已退役。如果您仍有依赖此入口点进行连接的实例,请转而使用分布式骨干网。Reticulum 现在包含完整的网络内接口发现和连接引导系统。阅读手册中的 [引导连接](https://reticulum.network/manual/gettingstartedfast.html#bootstrapping-connectivity) 部分以获取指导。*

## 支持 Reticulum

为了实现这一点,我需要您的帮助。请通过以下渠道之一捐款,支持开放、免费和私有通信系统的持续开发:

- 门罗币:  ```
  84FpY1QbxHcgdseePYNmhTHcrgMX4nFfBYtz2GKYToqHVVhJp8Eaw1Z1EedRnKD19b3B8NiLCGVxzKV17UMmmeEsCrPyA5w

比特币 ``` bc1pgqgu8h8xvj4jtafslq396v7ju7hkgymyrzyqft4llfslz5vp99psqfk3a6

root@kitploit:~
- 以太坊  ```
0x91C421DdfB8a30a49A71d63447ddb54cEBe3465E
  • Liberapay:https://liberapay.com/Reticulum/

  • Ko-Fi:https://ko-fi.com/markqvist

密码学原语

Reticulum 使用一套简单、高效、强大且经过充分测试的密码学原语,这些原语具有广泛可用的实现,既可用于通用 CPU,也可用于微控制器。

选择这套特定原语的主要考虑因素之一是,它们可以在几乎所有当前计算平台上 安全地 实现,且陷阱相对较少。

此处列出的原语 具有权威性。任何声称是 Reticulum 但未使用这些确切原语的,都不是 Reticulum,并且可能是故意被入侵或弱化的克隆。所使用的原语包括:

  • Reticulum 身份密钥是 512 位 Curve25519 密钥组
    • 用于签名的 256 位 Ed25519 密钥
    • 用于 ECDH 密钥交换的 256 位 X22519 密钥
  • HKDF 用于密钥派生
  • 加密令牌基于 Fernet 规范
    • 从 Curve25519 上的 ECDH 密钥交换派生的临时密钥
    • 使用 SHA256 进行消息认证的 HMAC
    • 必须通过 os.urandom() 或更优方式生成 IV
    • 使用 PKCS7 填充的 AES-256 CBC 模式
    • 没有 Fernet 版本和时间戳元数据字段
  • SHA-256
  • SHA-512

在默认安装配置中,X25519、Ed25519 和 AES-256-CBC 原语由 OpenSSL(通过 PyCA/cryptography 包)提供。哈希函数 SHA-256 和 SHA-512 由标准 Python hashlib 提供。HKDF、HMAC、Token 原语以及 PKCS7 填充函数始终由以下内部实现提供:

  • HKDF.py
  • HMAC.py
  • Token.py
  • PKCS7.py

Reticulum 还包含了所有必要原语的纯 Python 完整实现。如果启动 Reticulum 时系统上没有 OpenSSL 和 PyCA,Reticulum 将转而使用内部纯 Python 原语。一个次要后果是性能,OpenSSL 后端要 快得多。然而最重要的后果是,使用未经过与 OpenSSL 同等程度的审查、测试和评审的原语,可能会导致安全性下降。

请注意,默认情况下,安装 Reticulum 将 要求 自动安装 OpenSSL 和 PyCA(如果尚未安装)。只有用户特别覆盖此依赖要求时,才可能使用纯 Python 原语,例如通过安装 rnspure 包代替正常的 rns 包,或直接从本地源代码运行。

如果您想使用内部纯 Python 原语,强烈建议 您充分理解这样做所带来的风险,并做出明智的决定,判断这些风险是否对您可接受。

Reticulum 是一个相对较新的软件,应视为如此。尽管其构建时将密码学最佳实践置于首位,但它 尚未 经过外部安全审计,很可能存在隐私或安全漏洞。如果您希望提供帮助,或赞助一次审计,请与我们联系。

致谢与鸣谢

Reticulum 的存在离不开其构建所依赖的众多开源工作、所有参与者的贡献,以及多年来支持该项目的每一个人。感谢所有帮助过的人,非常感谢。

许多其他模块和项目要么是 Reticulum 的一部分,要么被 Reticulum 使用。衷心感谢以下项目的作者和贡献者:

  • PyCA/cryptography,BSD 许可证
  • Pure-25519 作者 Brian Warner,MIT 许可证
  • Pysha2 作者 Thom Dixon,MIT 许可证
  • Python AES-128 作者 Or Gur Arie,MIT 许可证
  • Python AES-256 作者 BoppreH,MIT 许可证
  • Curve25519.py 作者 Nicko van Someren,公共领域
  • I2Plib 作者 Viktor Villainov
  • PySerial 作者 Chris Liechti,BSD 许可证
  • Configobj 作者 Michael Foord、Nicola Larosa、Rob Dennis 和 Eli Courtwright,BSD 许可证
  • ifaddr 作者 Stefan C. Mueller,MIT 许可证
  • Umsgpack.py 作者 Ivan A. Sergeev
  • rnsh 作者 Aaron Heise
  • Python
下载工具