山顶节点不用再爬山:Meshtastic 远程管理节点教程

教程

随着群友的山顶太阳能节点和楼顶太阳能节点越来越多,一个问题也越来越常见:能不能不跑到现场,也不拿着手机贴着蓝牙去改设置?毕竟有些节点装在楼顶,有些节点架在山上,平时部署一次就已经不轻松了,如果每次想改个参数、开个模块、修个配置都得再爬一趟,维护成本确实很高。

这正是 Meshtastic 的 Remote Node Admin 要解决的问题。它允许你通过 Mesh 网络,去远程读取和修改另一个节点的设置。换句话说,只要链路还通,你就可以在自己的控制节点上,像平时改本地节点一样,对远端节点做管理,而不必依赖现场蓝牙、USB 串口或者局域网 TCP。

社区里以前已经有大佬写过旧版远程管理,也就是 legacy Admin channel 的介绍文章。如果你想了解早期方案,可以先看这篇 【超越蓝牙、WiFi、串口】使用 Meshtastic mesh 网络远程管理节点。不过从现在的使用角度来看,Meshtastic 2.5 之后的新版远程管理已经简单很多,也更安全,绝大多数用户应该优先用新版方法。

先看风险提示

Remote Node Admin 是一个很实用,但也确实有风险的高级功能。因为你修改的是远端节点的无线参数、角色、频道、安全设置,一旦改错,节点可能直接从当前 Mesh 里掉线。

最典型的例子就是把频道、区域、LoRa 参数或者管理员权限改乱后,你自己就无法再连过去了。

如果是第一次用,最好先拿一台测试节点练手,确认流程没问题,再碰那些挂在高处、平时不方便接触的正式节点。

Remote Node Admin 到底是什么

默认情况下,Meshtastic 节点只会响应来自本地接口的管理指令,比如 USB、蓝牙或者 TCP。这个设计本身就是一种基础安全措施,避免任何能收到无线数据的人都来尝试改你的节点。

Remote Node Admin 的区别在于,管理命令不是从本地接口发过去,而是以加密的管理消息形式,通过 Mesh 网络发送给远端节点。也就是说,表面上看你是在远程改设置,但本质上还是 Meshtastic 在网络里安全地传递管理命令。

先分清楚:你用的是新版还是旧版

这个功能最容易让人混淆的点,就是不同固件版本的实现方式不一样。

如果你的节点固件是 2.5 及以后版本,远程管理的主流方法是 PKC 公钥授权

做法很简单:把控制节点的 Public Key,填进被控节点的 Security 配置里的 Admin Key 字段中。被控节点最多可以保存 3 个不同的 Admin Key,也就是说,最多可以授权 3 台不同的控制节点去管理它。

如果你的节点还是 2.4.x 及更早版本,那就不能用这个新方法,而是要走老方案:额外建一个名为 admin 的二级频道,并共享同一把 PSK。这个方法就是大家以前常说的 Legacy Admin channel。它现在在 2.5 之后的固件里依然还留着,但主要用途只是为了兼容去管理老节点。2.5 及以后的节点,不能靠 Legacy Admin channel 被管理。

目前应该大部分读者都在用 2.5 后的版本。

使用前你需要准备什么

正式开始之前,先确认几件事。

第一,你至少要有两台节点,一台是你手上的控制节点,另一台是准备被远程管理的目标节点。

第二,这两台节点要已经能在同一个 Mesh 网络里互相看见,至少链路基本通畅,否则你权限配好了也发不过去。

第三,建议先确认两台节点的固件版本,避免你以为自己在配新版,两个设备固件版本都要 2.5 及以后。

第四,如果你准备远程改比较核心的参数,比如频道、区域、LoRa 预设、角色,最好先备份一下配置。

新版 Remote Admin:PKC 公钥授权怎么配

新版方法的核心逻辑其实只有一句话:把控制端的公钥,写进被控端的 Admin Key。

你可以把它理解成给远端节点发一张授权名单。谁的公钥在名单里,谁就有资格通过 Mesh 网络给这台节点发送管理命令。这个思路比早年的共享 admin 频道安全得多,因为不再是谁拿到频道 PSK 谁就都能管,而是明确到具体某一台节点。

Android 用户

如果你用的是 Android,先连接到将来要作为控制端的那台本地节点。进入设置里的 Security 页面,找到它的 Public Key,复制下来。

然后切换连接到那台准备被远程管理的目标节点,进入同一个 Security 页面,点击新增,把刚才复制的 Public Key 粘贴到 Admin Key 字段里并保存。最多可以填 3 个不同的 Admin Key,对应最多 3 台控制节点。

授权配好之后,再重新连接回控制端节点。打开节点列表,点选你要管理的远端节点,进入详细页面,在齿轮旁边找到 Remote Administration。进入之后,常见的 Radio 和 Module 配置项就都可以像本地操作那样去修改了。

苹果用户

苹果端的逻辑和 Android 类似,但入口位置稍有不同。先连接到控制端节点,在 Settings > App Settings 里把 Administration 打开。然后进入 Settings > Radio Configuration > Security,找到这台控制节点的 Public Key,复制下来。

接着连接到被控节点,在 Settings > Radio Configuration > Security 里,把控制端的公钥添加到 Admin Key。这里同样最多可以保存 3 个控制端公钥。

完成后,再切回控制端节点,进入 Settings,在 Settings > Configure Node 中选择你要管理的远端节点。此时应用会把支持的 Radio 和 Module 设置展示出来,你就在这里直接改远端节点的配置即可。管理结束后,记得再切回你自己的本地节点,避免后面以为自己改的是本机,实际改的是远端。

CLI 用户

如果你更习惯命令行,这个功能其实也很好用,而且特别适合做批量运维或者临时抢修。

先用 USB 连上控制端节点,取出它的公钥:

meshtastic --get security.public_key

把这段公钥保存好之后,再用 USB 连上被控节点,把控制端公钥写进它的 Admin Key:

meshtastic --set security.admin_key "base64:PASTEPUBLICKEYHERE"

之后就可以从控制端对远端节点发起读写操作了。CLI 下远程管理的关键,是在命令里加上 --dest,后面跟目标节点的 !nodeid。目前远程管理主要支持 --get--set。例如:

meshtastic --set security.admin_key "PASTEPUBLICKEYHERE" --dest '!28979058'

如果你用的是 Linux 或 macOS,!nodeid 最好放在单引号里;Windows 下通常可以直接写,不一定需要引号。

Web 用户

如果你用的是 Meshtastic Web Client,它目前能做的是帮你完成授权这一步,但还不能真正执行远程管理命令。

做法是先连接到控制端节点,进入 Config > Radio Config > Security,找到控制端的 Public Key,复制出来。然后连接到被控节点,在同样的 Security 页面里把这个公钥填到 Admin Key 并保存。

需要注意的是,当前 Web 界面一次只能填一个 Admin Key,所以它更适合做简单授权,不太适合做多控制端管理。另外,Web Client 目前不支持直接发送 Remote Admin 操作命令,所以真正要远程改配置,还是得回到 Android、苹果 App 或 CLI。

旧版 Legacy Admin channel 什么时候还会用到

如果你的网络里还有 2.4.x 或更早版本的老节点,这时 Legacy Admin channel 依然有用。方法就是额外建立一个名为 admin 的二级频道,并让相关节点共享同一把 PSK。随后在 Security 配置里启用 Legacy Admin channel,具体操作可以参考 【超越蓝牙、WiFi、串口】使用 Meshtastic mesh 网络远程管理节点

但这里要强调一次,这个方法的定位已经变了。它现在主要是为了兼容老固件,而不是推荐的新方案。因为只要一个节点加入了这个 admin 频道,并且知道频道 PSK,它理论上就具备管理能力,这和新版按公钥逐台授权的安全模型不是一个级别。

如果你要用 CLI 启用 Legacy Admin,可执行:

meshtastic --set security.admin_channel_enabled

还是那句话,这条路只建议在必须兼容旧节点的前提下走。只要目标节点已经是 2.5 或更新版本,就不要再指望用这个办法去管理它。

实战里最容易踩的坑

真正麻烦的往往不是不会配,而是配对了但把远端节点配没了。

第一个常见坑,是远端节点虽然已经加了你的 Admin Key,但链路并不稳定。权限没问题,不代表命令一定传得过去。所以在你准备远程修改参数之前,最好先确认这个远端节点平时的信号、跳数和连接质量是可用的。

第二个坑,是一次性去改太多核心参数。比如你在远端直接改频道、区域、LoRa 预设,甚至顺手把自己控制端的 Admin Key 也删了,这些操作都可能让节点瞬间脱网。稳妥的做法是分步骤改,每改完一项先确认节点还在线,再继续下一项。

第三个坑,是把新版和旧版方法混在一起理解。现在很多新用户看到 admin 这个词,第一反应还是去建 admin channel,但如果目标节点本来就是 2.5 之后的新固件,这条路本身就不是正解。你应该先检查的是 Security 里的 Admin Key 有没有配好,而不是频道里有没有 admin

第四个坑,是苹果端用户在管理完远端节点后忘了切回本地节点。这样后面你看到设置页面还在,以为改的是自己手里的机器,实际可能还在操作远端。这个小坑很常见,尤其是在你一边测一边改的时候。

这项功能最适合哪些场景

如果你的节点只是放在桌边,蓝牙一连就能改,那 Remote Node Admin 当然不是刚需。但一旦节点进入装上去就不想再碰的状态,它就会从一个高级功能,直接变成一个非常实用的维护工具。

最典型的场景就是山顶太阳能节点、楼顶中继节点、阳台常电节点、挂杆节点和长期无人值守节点。你可能只是想改一个广播间隔、调一个模块开关、换一个节点角色,或者临时补一个管理员权限,如果没有远程管理,这些小调整都会变成一次实体维护。

从这个角度看,Remote Node Admin 的价值并不只是高级,而是它真正把 Meshtastic 网络从能通信推进到了能运维。尤其是当你的网络开始有固定基础设施节点之后,这个功能基本就值得尽早配上。

Managed Mode:高位固定节点常见的配合功能

如果你的节点已经不是随手就能摸到的设备,而是长期挂在高山、楼顶、塔杆或者阳台外侧,除了开启 Remote Node Admin,很多人还会再配合打开 Managed Mode。

Managed Mode 的取值只有 truefalse。它的作用不是让远程管理生效,而是限制客户端应用直接写入电台配置。开启之后,普通客户端依然可以读取这台节点的配置,但不能直接修改配置。

这时如果还想改这台节点的配置,就只能走管理员通道。在 2.5 及以后固件上,必须通过 PKC Remote Admin 消息来改;在 2.5 之前的老固件上,则只能通过 legacy Admin channel 去改。所以对于很多高山节点、楼顶节点和长期无人值守节点来说,Remote Node Admin 负责解决远程维护问题,Managed Mode 负责把配置权限收紧,两者经常一起使用。

不过要注意,Managed Mode 不是 Remote Node Admin 的必需条件。不开它,远程管理照样能用。它更像是一个额外的安全和运维策略,适合那些已经固定部署、不希望被日常客户端误改配置的节点。

真正需要小心的是锁死风险。在开启 Managed Mode 之前,一定要先确认这台节点已经可以被 Remote Admin 正常控制,或者老固件节点已经能通过 legacy Admin channel 管理,而且当前远程读写配置都能正常工作。先确认链路和权限没有问题,再打开 Managed Mode,会稳妥很多。

总结

新版 Meshtastic 远程管理的核心思路其实非常简单:对于 2.5 及以后版本,把控制端的 Public Key 写入被控端的 Admin Key;对于 2.4.x 及更早版本,才考虑 Legacy Admin channel。只要你先把这条版本分界线看清楚,后面的操作就不会乱。

如果你现在群里正好有几个山顶节点、楼顶太阳能节点,或者你自己已经开始搭长期在线的阳台节点,我的建议是尽早把 Remote Node Admin 配好,而且先拿测试节点演练一遍。这样下次再有人问这个参数能不能不去现场改,答案就不是得爬上去,而是可以,前提是你一开始就把远程管理权限配对了。

本文作者: Hays Chan | 陈希

本文链接: https://meshcn.net/remote-node-admin-meshtastic-tutorial/