网络通信密码学IoT协议【免费下载链接】ReticulumThe cryptography-based networking stack for building unstoppable networks with LoRa, Packet Radio, WiFi and everything in between.项目地址https://gitcode.com/gh_mirrors/re/Reticulum点击查看免费下载本篇技术指南以 Reticulum 官方手册「Programs Using Reticulum」章节为主体系统梳理围绕 Reticulum 网络栈构建的消息、语音、浏览出版、系统管理与基础设施类程序并深入解析 LXMF、LXST、RRC 等事实标准的应用层协议。读者读完本文后将掌握 Reticulum 生态的完整版图、各程序的核心能力与适用场景并能直接在本仓库中找到rngit、rnsh、rnodeconf等内置工具的源码级实现与操作依据。一、概述Reticulum 之上的应用生态围绕 ReticulumRNS已经存在大量应用覆盖日常通信、信息共享、系统管理与高级组网挑战等多个方向。以下清单并非穷尽式列举而是官方手册给出的、可帮助你快速感受 Reticulum 工作方式的代表性起点大多数程序都针对 LoRa、数据包无线电等低速链路做了专门优化同时也完整支持本地 WiFi、有线以太网、互联网及任意组合的高速链路因此上手实验无需任何无线电收发设备或基础设施将程序分别启动在连接到同一 WiFi 网络的不同设备上即可开始使用之后再按需添加真实射频接口Reticulum 应用的开发仍在持续进行在 Reticulum 网络内主要通过 Nomad Network 与rngit节点可以检索到更多相关项目。提示官方手册同时指出本章列出的链接主要指向互联网服务器上的公开镜像各项目的上游仓库实际托管在 Reticulum 节点上。需要获取最新源码与动态时应通过其 Nomad Network 或rngit节点获取。二、浏览与出版Browsing Publishing本节聚焦围绕 Nomad Network 构建的浏览、出版与知识分发应用。除下文列出的程序外其他 Nomad Network 客户端还包括 MeshChatX 与 Columba详见「消息与语音」小节。1. Nomad NetworkNomad Network 是基于 Reticulum 构建的终端加密通信套件主要能力包括加密 LXMF 消息支持直接投递以及面向离线用户的延迟投递store-and-forward文件共享内置文本浏览器与页面服务器支持动态渲染页面、用户认证等附带RRC 客户端与一整套网络工具。2. Ren BrowserRen Browser 是面向 Nomad Network 的现代独立浏览器基于 Reticulum 的 Go 语言实现Reticulum-Go构建。该项目处于积极开发中目前应视为alpha 级软件但大部分功能已经可用。它同时是「与既有软件生态实现真正无缝互操作」的典型示例可完全独立运行使用内嵌的 Go 版 Reticulum也可无缝复用系统上已运行的共享 RNS 实例。3. RNS Page NodeRNS Page Node 提供一种向任意 Nomad Network 兼容客户端服务页面与文件的简单方式可作为主要承担页面/文件服务职责的 NomadNet 节点的即插即用替代方案。4. RetipediaRetipedia 可将整部 Wikipedia、StackExchange 或任意.zim文件托管给 Nomad Network 客户端使用用于在离线网络中分发离线知识库。5. Git Over Reticulum仓库内置rngit官方手册在「Git Over Reticulum」小节中引用了仓库内置的 rngit 系统。它提供了一套完全分布式的方案用于在 Reticulum 上管理、托管、协作与交互 Git 仓库。其核心构成与用法如下详细技术参考见 docs/markdown/git.md两个组成部分rngit节点托管仓库与git-remote-rns辅助程序让 Git 与 rngit 节点通信。安装 RNS 后即可像使用其他任何远程一样透明地使用 Git 访问 Reticulum 托管的仓库URL 格式rns://DESTINATION_HASH/group/repo典型操作示例# 启动一个仓库节点 $ rngit # 查看身份与目的地哈希 $ rngit --print-identity # 从远程 rngit 节点克隆仓库 $ git clone rns://50824b711717f97c2fb1166ceddd5ea9/public/myrepo # 为现有仓库添加 Reticulum 远程 $ git remote add some_remote rns://50824b711717f97c2fb1166ceddd5ea9/public/myrepo # 推送到 Reticulum 远程 $ git push some_remote master # 从远程仓库拉取变更 $ git pull rns_remote master # 在本地 rngit 节点上 fork 远程已有仓库 $ rngit fork rns://8a37cdd16938ce79861561adbd59023a/reticulum/lxmf rns://50824b711717f97c2fb1166ceddd5ea9/public/myforkrngit全部命令行选项usage: rngit.py [-h] [--config CONFIG] [--rnsconfig RNSCONFIG] [-s] [-i] [-v] [-q] [--version] options: -h, --help show this help message and exit --config CONFIG 指向备用配置目录 --rnsconfig RNSCONFIG 指向备用 Reticulum 配置目录 -p, --print-identity 打印身份与目的地信息后退出 -s, --service 以服务方式运行并写日志文件 -i, --interactive 初始化后进入交互式 shell -v, --verbose 提高日志详细度 -q, --quiet 降低日志详细度 --version 显示版本号后退出git-remote-rns的环境变量配置该辅助程序由 Git 在遇到rns://URL 时自动调用通常无需用户直接执行支持RNGIT_CONFIG备用客户端配置目录与RNS_CONFIG备用 Reticulum 配置目录两个环境变量仓库管理与同步除创建空仓库外rngit还支持rngit create rns://.../group/repo创建仓库、rngit fork 源URL 本地rns://目标派生仓库Fork 保留上游引用便于后续同步以及rngit mirror 源URL 本地rns://目标建立镜像仓库镜像可通过主配置文件中的mirror_interval默认 24 小时自动同步节点每 15 分钟检查一次待同步镜像也可用rngit sync rns://...手动按需同步。从源码结构看rngit 服务端 通过handle_create、handle_fork、handle_mirror、handle_sync等请求处理器实现上述仓库生命周期管理并配套了load_repository_group、resolve_permission等权限解析逻辑客户端侧git-remote-rns通过 RNS/Utilities/rngit/client.py 中的process_fetch_queue/process_push_queue等例程实现 Git 传输协议与 RNS 请求协议的对接。注意引自官方手册rngit是 RNS 1.2.0 引入的新功能其权限系统虽经精心设计但尚未经过大规模野外测试。托管仓库尤其是公开或半公开仓库时需谨慎。三、消息与语音Messaging Voice1. SidebandSideband 是面向 Android、Linux、macOS、Windows 的技术型 LXMF 与 LXST 客户端同时充当面向高级用户的多用途 Reticulum 工具。它支持通过 LoRa、数据包无线电、WiFi、I2P、加密 QR 纸张消息以及 Reticulum 支持的任何介质与其他用户或 LXMF 兼容系统通信并与其他所有 LXMF 客户端互操作。高级特性包括PTT 与语音消息实时语音通话文件附件私有遥测共享完整的插件系统以扩展功能。2. MeshChatXMeshChatX 是「一站式」Reticulum 客户端集消息、通话与 NomadNet 浏览器于一体为 Reticulum、LXMF 与 LXST 提供完整能力特性包括完整 LXST 支持、自定义语音信箱、电话簿、联系人共享、铃声支持、多身份处理、现代 UI/UX、离线文档、扩展工具、页面归档、集成地图、遥测与增强的应用安全。3. ColumbaColumba 是一款面向 Android 的简洁熟悉型 LXMF 消息应用采用原生 Android 界面与 Material Design 3同时包含 LXST 语音通话功能与移动端 Nomad Network 页面浏览器。4. Ren TUIRen TUI 是基于 Odin 语言与 librnsReticulum-Go构建的早期原型终端 LXMF 客户端目标是实现 NomadNet 风格的消息与浏览体验而不依赖 urwid 或 ncurses 等终端 UI 库。四、聊天Chat1. Reticulum Relay ChatRRCRRC 是构建于 Reticulum 网络栈之上的实时聊天系统设计目标是在 Reticulum 上实现近乎实时的群组交流不引入消息数据库、同步引擎或用户并未要求的架构承诺。其设计哲学更接近 IRC 而非现代「全能平台」「你连接、加入房间、说话、然后离开。在场者看到对话不在场者对话不会等待你。这不是偶然而是整个设计本身。」参考实现rrcd程序提供功能完整的参考 RRC hub-server 守护进程实现用户客户端Nomad Network、MeshChatX、Eridanus、rrc-gui、rrc-web。2. RetiBBSRetiBBS 是面向 Reticulum 网络的老式公告板系统BBS实现允许用户以安全的方式通过留言板进行通信。五、语音与电话Voice Telephony除本节列出的程序外其他 LXST 语音客户端还包括 Sideband、MeshChatX 与 Columba详见上文。1. Reticulum Network Telephonernphonernphone是 LXST 软件包附带的命令行 Reticulum 电话工具与守护进程可用于为 LXST/Reticulum 构建实体硬件电话也可直接在命令行发起通话。它支持与 GPIO 键盘、LCD 显示屏等硬件外设直接对接提供构建安全硬件电话的模块化系统。2. PartylinePartyline 是基于 LXST 构建、受 Mumble 启发的Reticulum 群组语音应用提供在吞吐能力 6 千比特每秒的任意 Reticulum 传输上的实时群组语音LXST 拨入支持只听模式的音乐/广播房间其他多种实用功能。3. LXST PhoneLXST Phone 是用于在 Reticulum 上进行 LXST 语音通话的跨平台桌面应用支持 SAS 验证、对端屏蔽、速率限制、加密通话历史存储与联系人管理等高级特性。六、系统管理System Administration1. Remote Shell仓库内置rnsh官方手册引用了仓库内置的 rnsh 程序。它用于在 Reticulum 上建立完全交互式的远程 shell 会话也允许将任意程序的输入/输出通过管道连接到远程系统工作方式与ssh类似。rnsh效率极高即使 LoRa 或数据包无线电这类超低带宽链路也能承载完整交互式会话在链路吞吐低至数百比特每秒的极端受限链路上还可切换到**行交互模式line-interactive mode**继续工作。结合 docs/markdown/using.md 手册章节rnsh的关键用法如下# 监听模式仅接受指定身份的连接 $ rnsh -l -a 941bed5e228775e5a8079fc38b1ccf3f -a 1b03013c25f1c2ca068a4f080b844a10 # 从另一系统连接远程监听端 $ rnsh 7a55144adf826958a9529a3bcf08b149 # 在远程执行指定命令用 -- 分隔 rnsh 选项与远程命令 $ rnsh 7a55144adf826958a9529a3bcf08b149 -- top # 监听端默认命令发起端未提供命令时使用 $ rnsh -l -- /bin/bash --login # 镜像远程进程退出码 $ rnsh -m 7a55144adf826958a9529a3bcf08b149 -- /usr/local/bin/check-status # 打印监听端身份与目的地哈希 $ rnsh -l -p # 周期性通告监听端目的地0 表示仅启动时通告一次 $ rnsh -l -b 900 # 使用指定身份文件 $ rnsh -l -i /path/to/identity认证与授权默认要求发起端使用哈希出现在允许列表中的 Reticulum Identity 进行身份验证。允许列表可通过-a多次指定也可写入~/.rnsh/allowed_identities或~/.config/rnsh/allowed_identities每行一个哈希该文件在每次新连接到来时重新加载无需重启即可生效-n可关闭认证警告任何能到达监听端的 Reticulum 对端都将获得命令执行能力仅应在完全可信环境使用远程命令控制-C--no-remote-command禁止执行发起端发来的命令仅执行监听端默认命令-A--remote-command-as-args将发起端命令追加到默认命令参数列表如rnsh -l -A -- /usr/bin/top用于把远程端限制在特定程序服务名-s指定服务名以区分共享同一身份的多监听实例默认服务名为default例如rnsh -l -s monitoring发起端选项-N--no-id不发送身份要求监听端已关闭认证-m--mirror以远程进程退出码返回-w--timeout指定连接与请求超时秒数默认匹配 Reticulum 路径请求超时身份与目的地默认身份文件位于~/.reticulum/identities/rnsh可用-i指定不存在时自动创建-p打印身份与目的地信息详细度支持-v/-q多次叠加调整日志级别监听端默认INFO、发起端默认ERROR发起端日志默认写入~/.rnsh/logfile会话转义序列仅在新行之后识别~~发送字面波浪号、~.立即终止会话、~L切换行交互模式、~?显示转义序列速查。源码佐证rnsh的监听/发起双模式、认证与命令控制逻辑位于 RNS/Utilities/rnsh 模块rnsh.py提供 CLI 入口与身份准备listener.py/initiator.py分别实现两侧会话流程session.py与protocol.py定义会话状态机与线上消息类型含终端窗口尺寸、命令行、退出码等协议消息process.py负责子进程启动、管道与终端属性处理。2. RNS FileSyncRNS FileSync 实现设备间的自动文件同步无需中央服务器、互联网连接或云服务可在 Reticulum 支持的任意网络介质射频、LoRa、WiFi 或互联网上工作适用于离网、注重隐私与高弹性的文件共享场景。七、工具与组件Utilities Components1. Modem73MODEM73 及其配套的 Modem73Interface 是开源软件调制解调器可配合任何具备 2400 Hz 带宽的 HF、VHF 或 UHF 电台使用仅需声卡与连接电台的音频线即可。2. LXMFyLXMFy 是面向 LXMF 的综合且先进的机器人创建框架可用于构建运行于 LXMF 与 Reticulum 之上的各类自动化或机器人系统社区已有面向 Home Assistant 控制、LLM 集成等多种用途的机器人实现。3. Micron Parser JSMicron Parser JS 是Micron 标记语言的 JavaScript 解析器大多数基于 Web 的 Nomad Network 浏览器都依赖它。如需编写展示 Micron 页面的工具该库是必需的。4. ReticulatedReticulated 是Reticulum 网络模拟器可从基于节点的 Web UI 生成并控制真实运行的交互式 Reticulum 实例。其主要能力包括创建任意拓扑的网络设置比特率、MTU并配置路径损耗与传播行为提供实时网络的自上而下视图可将任意 Reticulum 应用接入模拟网络内置基础 LXMF 聊天功能与 Resource 传输等实用工具。5. RNMonRNMon 是监控守护进程用于监控多个 RNS 应用的状态并通过 Influx line protocol 将指标推送到 InfluxDB 实例。八、设备刷写器Device Flashers除仓库内置的命令行rnodeconf刷写器RNS/Utilities/rnodeconf.py用于检查、配置既有 RNode 并从受支持的硬件设备创建、配置新 RNode之外社区还提供了多种 RNode 设备刷写器例如 RNS Moscow 与 Aetherlab 提供的在线刷写服务Sideband 与 MeshChatX 等程序也内置了可完全离线使用的设备刷写器。九、事实标准协议Protocols通过 Reticulum 社区的实战使用与测试已涌现出一批标准协议。自定义协议在特定场景下仍有价值但采用这些标准协议能让应用开发者快速实现高级功能并确保不同客户端应用之间的兼容性与互操作性从而形成用户可自由选择应用、同时仍与所有人保持连接的开源通信生态。1. LXMFLXMF Messenger FormatLXMF 是一种简洁灵活的消息格式与投递协议在尽量少占用带宽的前提下支持广泛的应用类型零配置消息路由、端到端加密与前向保密Forward Secrecy可承载于 Reticulum 支持的任意介质之上效率足以在数据包无线电或 LoRa 等极低带宽系统中投递消息加密 LXMF 消息可编码为QR 码或基于文本的 URI实现完全模拟化的纸张消息传输借助Propagation Nodes传播节点可向消息发出时不可达的用户或端点进行存储转发。仓库内相关证据RNS 核心在多个位置感知 LXMF 生态例如 RNS/Reticulum.py 支持为接口配置discovery_lxmf_address接口发现 LXMF 地址以便发现网络中的传播节点RNS/Utilities/rnstatus.py 可显示运营商节点的 LXMF 地址。LXMF 协议本体作为独立包pip install lxmf随生态分发见 RNS/Discovery.py 中的相关提示。2. LXSTLXST Streaming TransportLXST 是一种简洁灵活的实时流格式与投递协议同样以最小带宽开销支持广泛的应用类型。它构建于 Reticulum 之上提供零配置流路由、端到端加密与前向保密可承载于 Reticulum 支持的任意介质目前驱动着 Reticulum 上的实时语音与电话应用。3. RRCReticulum Relay Chat 协议RRC 协议是构建于 Reticulum 网络栈之上的实时聊天系统见上文「Reticulum Relay Chat」小节。它刻意保持简单不假装自己是电子邮件、信箱或分布式归档行为更像房间里的对话——在场者听到不在场者听不到。这并非缺陷而是设计本身。十、接口模块与连接资源Interface Modules Connectivity Resources本节列出社区提供的、用于在特殊或挑战性介质上构建 Reticulum 网络的接口模块、指南与资源Modem73可与 Reticulum 配合使用的高效软件调制解调器RNS over HTTP在 HTTP 之上运行 Reticulum 的自定义接口模块Reticulum over ICMP使用PipeInterface在 ICMP 之上运行 Reticulum 的指南Reticulum over DNS配合 Iodine 在 DNS 之上运行 Reticulum 的指南Reticulum over HF radio在 HF 射频之上运行 Reticulum 的指南。源码佐证上述基于特殊介质的方案大量依赖仓库内置的接口实现。RNS/Interfaces/PipeInterface.py 通过外部命令管道收发数据MAX_CHUNK 32768、HW_MTU 1064并以简化的 HDLC 帧格式封装数据包参见其中HDLC类的FLAG/ESC/ESC_MASK常量是 ICMP、DNS 等隧道方案的通用载体完整的接口家族还包括 TCPInterface.py、UDPInterface.py、KISSInterface.py、RNodeInterface.py、AutoInterface.py、I2PInterface.py 等统一位于 RNS/Interfaces 目录。结语如何从本文档继续深入本文所梳理的生态程序全部以 Reticulum 为底座而 Reticulum 自身的核心实现、接口家族与工具链均可在本仓库中直接研读核心栈RNS/Reticulum.py网络栈主类与配置加载、RNS/Transport.py传输与路径选择、RNS/Link.py链路层内置工具rngit分布式 Git、rnsh远程 shell、rnodeconfRNode 刷写与配置、rnstatus状态与 LXMF 地址查询、rnprobe、rnpath、rnx等位于 RNS/Utilities接口家族RNS/Interfaces 目录下包含射频KISS/RNode/Serial/AX.25、网络TCP/UDP/Weave/Backbone与特殊介质Pipe/Auto/Local/I2P等全部内置接口。从「在同一个 WiFi 网络的两台设备上启动任意两个程序」开始到部署 Propagation Nodes 提供离线延迟投递再到用rngit托管自己的分布式仓库——本文档所列举的生态即构成了通往 Reticulum 实战的最佳入口。赞分享网络通信密码学IoT协议【免费下载链接】ReticulumThe cryptography-based networking stack for building unstoppable networks with LoRa, Packet Radio, WiFi and everything in between.项目地址https://gitcode.com/gh_mirrors/re/Reticulum点击查看免费下载相关推荐Dendrite API开发指南如何构建基于Matrix协议的应用程序Dendrite API开发指南如何构建基于Matrix协议的应用程序 Dendrite是一个使用Go语言编写的第二代Matrix家庭服务器为开发者提供了强后端即时通讯FreeRDP远程桌面协议完全指南从基础连接到高级应用FreeRDP远程桌面协议完全指南从基础连接到高级应用 在当今数字化工作环境中远程桌面连接已成为企业运维和个人工作的必备工具。FreeRDP作为一款开源免费后端网络通信音视频Opik LangChain 集成详解用 extract_current_langgraph_span_data 解决 LangGraph 异步执行的追踪上下文传播Opik LangChain 集成详解用 extract_current_langgraph_span_data 解决 LangGraph 异步执行的追踪上下AI 技能人工智能大模型深度学习上一篇混合精度量化策略NVIDIA-Nemotron-3-Super-120B-A12B-OptiQ-2bit的4位与2位分层设计下一篇craft.js的未来路线图新特性与版本规划解读创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考