💻 Reticulum on a Mac

Your MacBook can become a node of an encrypted mesh network in about fifteen minutes — no account, no sign-up, no company. This tutorial takes you from nothing to sending your first encrypted message, using only the Terminal and free software. When you finish, come drive the simulations on the Reticulum Lab page to see what the network is doing underneath. 你的 MacBook 可以在大约十五分钟内变成一个加密网状网络的节点—— 不用注册账号,不用公司参与。本教程只用终端和自由软件,带你从零发出第一条加密消息。 完成后,去Reticulum 实验室页面驾驶那些模拟器, 看看网络在底层做了什么。

Why a Mac laptop is a great first node. It has Python already wired into its developer tools, WiFi and Ethernet for the zero-config local mesh, USB for a LoRa radio later, and a battery — which means your node keeps running in a blackout. That last one is not a joke; it is half the point. 为什么 Mac 笔记本是绝佳的第一个节点:它的开发工具自带 Python, 有 WiFi 和以太网可以跑零配置本地网、有 USB 以后能接 LoRa 电台,还有电池—— 停电时你的节点还能继续跑。最后这条不是玩笑,它正是意义的一半。

🧭 What can a Mac actually do on Reticulum?

Summary

With nothing but this tutorial, a Mac can chat with any device on your WiFi with zero configuration, join a worldwide test network over the internet, send encrypted messages and files, run commands on remote machines, host tiny pages, sign and encrypt files, and route traffic for other people. Add a cheap LoRa radio later and it does all of that without any infrastructure at all.

摘要

只靠本教程,一台 Mac 就能零配置地与 WiFi 上的任何设备聊天、通过互联网加入全球测试网、收发加密消息和文件、在远程机器上执行命令、托管小页面、给文件签名和加密,还能为别人转发流量。以后加一个便宜的 LoRa 电台,这一切都不再需要任何基础设施。

💬
Encrypted chat, no accounts
Message any Reticulum user with NomadNet or MeshChat. Your identity is a key your Mac generates — nobody issues it, nobody can ban it. 用 NomadNet 或 MeshChat 给任何 Reticulum 用户发消息。身份是 Mac 自己生成的密钥——没人签发,也没人能封禁。
📶
A mesh on your WiFi — zero config
Two devices on the same network find each other automatically. Unplug your router's internet cable and it keeps working. 同一网络里的设备会自动互相发现。拔掉路由器的外网线,它照样工作。
🌍
Join the worldwide testnet
Four config lines connect you to the public test network, and suddenly the whole mesh — including LoRa radios on other continents — is reachable. 四行配置就能接入公共测试网,整个网络——包括别的大洲的 LoRa 电台——瞬间可达。
📁
Send files with rncp
Encrypted file copy to any node you allow — across the room or across the world, no cloud in between. 向任何你允许的节点加密传文件——同屋或跨洋,中间没有云。
🖥
Remote commands with rnx
Run a command on another of your machines over the mesh — like SSH, but with no IP address and no port forwarding. 通过网状网络在另一台机器上执行命令——像 SSH,但不需要 IP 地址和端口转发。
📰
Host a page with NomadNet
Serve a tiny text site from your laptop that anyone on the mesh can read — a notice board that needs no hosting company. 用笔记本发布一个小文字站点,网里的任何人都能读——不需要托管商的公告板。
🔏
Sign & encrypt files with rnid
Your Reticulum identity doubles as a signing and encryption tool for any file on disk. 你的 Reticulum 身份还能给磁盘上的任何文件签名和加密。
🛰
Route for others · add radio later
Switch on transport mode and your Mac forwards packets for neighbours. Plug in a ~$30 RNode and the mesh leaves the building. 打开中转模式,Mac 就为邻居转发数据包。插上约 30 美元的 RNode,网就走出大楼了。

🛠 The tutorial — nothing to a node in 8 steps

Tick each step as you finish it. Your progress is saved on this device. 每完成一步就打个勾,进度会保存在这台设备上。

1Check that Python is there

Open Terminal (press ⌘-space, type "terminal", press return) and ask for the Python version. 打开终端(按 ⌘-空格,输入 terminal,回车),查看 Python 版本。

python3 --version

If macOS offers to install the Command Line Tools, say yes and run the command again. Any version 3.9 or newer is fine. 如果 macOS 提示安装命令行工具,同意后再运行一次。3.9 以上的版本都可以。

2Install Reticulum

python3 -m pip install rns

Newer macOS versions protect the system Python and answer with externally-managed-environment. That is normal — use this instead: 较新的 macOS 会保护系统 Python,报错 externally-managed-environment。 这很正常——改用下面这条:

python3 -m pip install rns --break-system-packages
If the terminal says "command not found: rnsd" in the next step, pip's program folder is not on your PATH — a known macOS quirk. Run python3 -m site --user-base, add /bin to the path it prints, and put that in ~/.zshrc, e.g. echo 'export PATH="$HOME/Library/Python/3.9/bin:$PATH"' >> ~/.zshrc — then open a new terminal window. 如果下一步提示 command not found: rnsd,是 pip 的程序目录不在 PATH 里(macOS 的老毛病)。运行 python3 -m site --user-base,在输出的路径后加 /bin,写进 ~/.zshrc,然后开一个新的终端窗口。

3Start your node

rnsd -v

That's it — your Mac is now a Reticulum node. The first run creates a config file at ~/.reticulum/config and starts the default AutoInterface, which speaks to other Reticulum devices on your WiFi and Ethernet with zero configuration. Leave this window running and open a second Terminal tab (⌘-T) for the next steps. 就这样——你的 Mac 已经是一个 Reticulum 节点了。第一次运行会在 ~/.reticulum/config 生成配置文件,并启动默认的 AutoInterface: 零配置就能和 WiFi、以太网上的其他 Reticulum 设备通话。让这个窗口一直跑着, 用 ⌘-T 开第二个标签页继续。

4Look at your network

rnstatus

You'll see your interfaces, how much traffic they have carried, and how many peers are visible. Right now it is probably just the AutoInterface, quietly listening on your local network. 你会看到各个接口、它们承载了多少流量、有多少对等节点可见。 现在大概只有 AutoInterface 在本地网络上安静地监听。

The best first experiment: install Reticulum on a second machine on the same WiFi — another Mac, a Linux box, or the Sideband app on an Android phone — and run rnstatus again. They find each other by themselves. Now turn off your router's internet. They still find each other. That is the mesh. 最好的第一个实验:在同一 WiFi 的第二台设备上装 Reticulum—— 另一台 Mac、一台 Linux,或安卓手机上的 Sideband 应用——再运行一次 rnstatus。它们会自己找到对方。把路由器的外网关掉,它们仍然互相可见。 就是网状网络。

5Join the worldwide testnet

Your local mesh is nice, but lonely. The project runs a public testnet anyone can join over the internet. Open the config file: 本地网不错,但有点孤单。官方运营着一个任何人都能通过互联网加入的公共 测试网。打开配置文件:

nano ~/.reticulum/config

Scroll to the [interfaces] section and add this block below the existing entries (spacing matters — keep the indentation): 滚动到 [interfaces] 部分,在已有条目下面加入这一段 (注意保持缩进):

[[RNS Testnet Dublin]] type = TCPClientInterface enabled = yes target_host = dublin.connect.reticulum.network target_port = 4965

Save (ctrl-O, return) and exit (ctrl-X), then restart rnsd. Run rnstatus again — the Dublin interface appears, and you are now part of a mesh that spans continents. More public entry points are listed at community directories like directory.rns.recipes. 保存(ctrl-O 回车)退出(ctrl-X),重启 rnsd,再运行 rnstatus——都柏林接口出现了,你已经身处一张横跨大洲的网。 更多公共入口见社区目录 directory.rns.recipes。

Is the testnet private too? Yes — encryption is not optional in Reticulum, and packets carry no sender address anywhere, testnet or not. But treat the testnet as a public square: it is for learning and experiments, and it is occasionally reset. 测试网也加密吗?是的——在 Reticulum 里加密不是可选项, 数据包无论在哪都不带发件人地址。但请把测试网当作公共广场:它用于学习和实验,偶尔会被重置。

6Chat and browse with NomadNet

python3 -m pip install nomadnet --break-system-packages nomadnet

NomadNet is a full messenger and micro-web that runs in your terminal. Press ctrl-W to switch sections: Conversations for encrypted person-to-person messages (they wait politely if your friend is offline — that is LXMF store-and-forward), and Network to discover nodes — tiny text sites people host, which you can browse like a 1990s web that nobody can switch off. Your own node can host one too, straight from the laptop. NomadNet 是跑在终端里的完整信使加微型网络。按 ctrl-W 切换板块: Conversations 是端到端加密的私聊(朋友不在线时消息会耐心等待——这就是 LXMF 的存储转发),Network 用来发现节点——人们托管的小文字站点, 像一个没人能关掉的九十年代互联网。你的笔记本也能直接托管一个。

Prefer a graphical app? Both Sideband (by Reticulum's author) and MeshChat (browser-based UI) have macOS builds on their GitHub release pages. 想要图形界面?Sideband (Reticulum 作者出品)和 MeshChat (浏览器界面)的 GitHub 发布页都有 macOS 版本。

7Move a file, run a command

Reticulum ships with small sharp tools. On the receiving machine, allow transfers from your identity and listen: Reticulum 自带一组小而锋利的工具。在接收端允许你的身份并监听:

# on the receiver rncp --listen --allow <sender identity hash> # on your Mac — send a file to that node rncp holiday_photos.zip <receiver destination hash>
# ping a destination across the mesh rnprobe rnstransport.probe <destination hash> # run one command on a machine you control rnx <destination hash> "uptime"

Every one of these is end-to-end encrypted, works over any mix of WiFi, internet and radio hops, and needs no IP address, no DNS and no port forwarding — destinations are the 16-byte fingerprints you met in the lab. 这些操作全部端到端加密,可以跨 WiFi、互联网和无线电任意混合的路径, 不需要 IP 地址、DNS 或端口转发——目的地就是你在实验室里 见过的 16 字节指纹。

8Where to grow next

Three good directions, in rising order of adventure: 三个不错的方向,冒险程度递增:

  • Become a transport node. Set enable_transport = yes in ~/.reticulum/config and your Mac starts forwarding for its neighbours — the self-healing behaviour from the lab, running on your desk. enable_transport = yes 写进配置,Mac 就开始为邻居转发—— 实验室里那个自愈行为,就跑在你桌上。
  • Add a LoRa radio. A LilyGO or Heltec board (~$30) flashed with the free RNode firmware plugs into USB and gives your mesh kilometres of range with no infrastructure. Use rnodeconf to flash it. 约 30 美元的 LilyGO / Heltec 板刷上免费的 RNode 固件,插进 USB, 你的网就有了数公里的无基础设施覆盖。用 rnodeconf 烧录。
  • Read the map of the machine. The official manual is genuinely good, and the Reticulum Lab on this site lets you drive the announce, the packet and the handshake yourself. 读一读官方手册(写得真好), 再到本站的 Reticulum 实验室亲手驾驶公告、数据包和握手。
a credit-card-sized LoRa mesh tracker held between two fingers, its circuit board visible through the translucent case
Where this road leads: a complete mesh node the size of a credit card. Your laptop is the on-ramp. 这条路通向哪里:一张信用卡大小的完整网状节点。你的笔记本就是入口匝道。 Photo: SenseCAP Card Tracker T1000-E — XoMEoX, CC BY 4.0, via Wikimedia Commons.

📌 Points to Remember

  • One pip command makes your Mac a node. python3 -m pip install rns, run rnsd, done. The config lives at ~/.reticulum/config. 一条 pip 命令就让 Mac 成为节点:装 rns、跑 rnsd,配置在 ~/.reticulum/config。
  • Zero-config on your own WiFi. The default AutoInterface finds other Reticulum devices on the local network by itself — even with the internet unplugged. 本地 WiFi 零配置:默认的 AutoInterface 会自己找到局域网里的其他设备——拔了外网也一样。
  • Four config lines reach the world. The Dublin testnet hub connects your local node to a mesh spanning continents. 四行配置连向世界:都柏林测试网入口把本地节点接进横跨大洲的网。
  • The tools are small and sharp. NomadNet chats and hosts pages, rncp moves files, rnx runs commands, rnid signs and encrypts — all without IP addresses or accounts. 工具小而锋利:NomadNet 聊天与托管页面、rncp 传文件、rnx 执行命令、 rnid 签名加密——全都不需要 IP 地址或账号。
  • The laptop is the on-ramp, radio is the road. A ~$30 RNode board takes the same mesh off the internet entirely. 笔记本是匝道,无线电才是路:约 30 美元的 RNode 板让同一张网彻底离开互联网。

Thank you for building your first node — and see you in the next lab. 感谢你搭起第一个节点——我们下个实验室见。