在群晖 DS414(ARMv7)上安装 ZeroTier 1.6.1(适用于 DSM 7+,无 Docker 环境的)

前言

群晖 DS414 这台老 NAS 用的是 Marvell Armada XP MV78230 处理器。
这块 CPU 的架构是 armv7l ——属于 32 位 ARMv7 指令集。

也就是说:

  • ❌ 没有 Docker;

  • ❌ 无法使用「我不是矿神」第三方套件源(spk7.imnks.com 里没有 DS414 系列);

  • ✅ 但可以手动装上 ZeroTier 1.6.1!

网上类似教程的一点坑

由于这几个条件限制,网上讲解这种特殊情况安装zerotier的教程很少,好不容易找到这篇 CSDN 的文章正好贴合我的情况,但教程里面的安装包是 x86_64 架构的。
DS414 这种 ARMv7 NAS 装上去会直接提示 Exec format error

所以我们要做的是:

  1. 在有完整 Linux 环境的服务器或旁路由上下载并拆包 ZeroTier 1.6.1;

  2. 把正确的 ARMv7 版本 二进制文件上传到 DS414;

  3. 在群晖 SSH 中完成安装、注册、开机自启。

⚙️ Step 1:准备编译(或解包)环境

由于群辉的ssh是简化版本,所以需要借助具有完整环境的服务器里(例如openwrt、你自己的服务器、你的linux环境等等),对zerotier1.6.1进行编译

在你有完整 bash + tar + ar 工具的机器上(可以是 OpenWrt、Debian、Ubuntu 任意)执行:

# 进入临时目录
cd /tmp

# 下载 ZeroTier 1.6.1 ARMHF (ARMv7) 版本
wget https://download.zerotier.com/RELEASES/1.6.1/dist/debian/bionic/zerotier-one_1.6.1_armhf.deb

# 解包
ar x zerotier-one_1.6.1_armhf.deb
tar -xJf data.tar.xz

# 现在你能得到目标文件:
ls ./usr/sbin/zerotier-one
# 输出应类似:-rwxr-xr-x  zerotier-one  2.3M

🚀 Step 2:上传到群晖

用 WinSCP 或 File Station ,把这个文件上传到你的 DSM:

/volume2/zero/zerotier-one

如果没有这个目录,可以先建一个:

mkdir -p /volume2/zero

🧱 Step 3:在群晖 SSH 下安装 ZeroTier 1.6.1

SSH 登录群晖(必须 root)后执行:

# 定义变量(方便后续复制)

BIN=/volume2/zero/zerotier-one
H=/volume2/zero/.zerotier
# 停止旧进程 & 备份旧版
killall zerotier-one 2>/dev/null || true
cp -a /usr/local/bin/zerotier-one /usr/local/bin/zerotier-one.bak 2>/dev/null || true
# 覆盖安装新版
install -m 755 "$BIN" /usr/local/bin/zerotier-one
ln -sf /usr/local/bin/zerotier-one /usr/local/bin/zerotier-cli
# 检查版本
/usr/local/bin/zerotier-one -v
# ✅ 输出应为 1.6.1

🗃️ Step 4:准备工作目录

ZeroTier 需要一个专用的目录来放 identity、peers、planet 等文件。

首先在群辉控制面板-共享文件夹下新增一个共享文件夹,并且把权限只给root,其他都关了

例如我设置的共享文件夹是zerotier,位于存储空间2,那么绝对路径就是群辉的/volume2/zero/下(以此类推,存储空间1~8就是volume1~8)。

然后执行文件会放到后续的/volume2/zero/.zerotier内

mkdir -p "$H"
chown -R root:root "$H"
chmod 700 "$H"

如果你之前装过 1.4.x 版本,并且想保留原节点 ID(避免网络端重新授权),可以把旧目录复制过来:

cp -af /volume2/zero/zerotier-one/. "$H"/
chmod 600 "$H/authtoken.secret" 2>/dev/null || true

🧩 Step 5:启动服务

/usr/local/bin/zerotier-one -d "$H"
sleep 2
cat "$H/zerotier-one.port"
# ✅ 应看到:9993

🌐 Step 6:加入你的 ZeroTier 网络

把下面的 <你的NetworkID> 替换成你在 my.zerotier.com 看到的网络 ID。
(本例使用 18ac8a8e888e8e8

⚠️ 注意:-D 后面 不能加空格

/usr/local/bin/zerotier-cli -D"$H"
info
/usr/local/bin/zerotier-cli -D"$H" join 18ac8a8e888e8e8sleep 2 /usr/local/bin/zerotier-cli -D"$H" listnetworks

输出类似:

200 listnetworks 18ac8a8e888e8e8 e8:88:88:88:88:d0 REQUESTING_CONFIGURATION PRIVATE ztbtor77mw -

🖥️ Step 7:在 ZeroTier Central 授权节点

打开 https://my.zerotier.com → Networks → 你的网络 → Members:

  • 找到刚出现的新节点(名字一般是 NAS 的 Node ID)

  • ✅ 勾选 Auth

  • 分配 Managed IP(例如 10.147.17.0/24 中的一个)

然后再次在 SSH 中查看状态:

/usr/local/bin/zerotier-cli -D"$H" listnetworks

当你看到:

STATUS=OK
ZT assigned ips=10.147.17.xxx

就代表成功加入 ZeroTier 1.6.1 网络 🎉

🧾 Step 8:(可选)开机自启脚本

在 DSM 中创建启动脚本:

cat >/usr/local/etc/rc.d/S99zerotier.sh <<'SH'

#!/bin/sh
BIN=/usr/local/bin/zerotier-one
HOME=/volume2/zero/.zerotier
case "$1" in
start)
$BIN -d "$HOME"
;;
stop)
killall zerotier-one 2>/dev/null
;;
restart)
$0 stop; sleep 1; $0 start
;;
status)
/usr/local/bin/zerotier-cli -D"$HOME" info 2>/dev/null || true

;;
*)
echo "Usage: $0 {start|stop|restart|status}"
exit 1
esac

exit 0
SH
chmod +x /usr/local/etc/rc.d/S99zerotier.sh

重启 NAS 后验证:

/usr/local/etc/rc.d/S99zerotier.sh status

✅ 成功标志

检查项 预期结果
/usr/local/bin/zerotier-one -v 1.6.1
cat /volume2/zero/.zerotier/zerotier-one.port 9993
zerotier-cli -D"/volume2/zero/.zerotier" info ONLINE
zerotier-cli -D"/volume2/zero/.zerotier" listnetworks STATUS=OK + 分配到 IP

版权声明:
作者:gabrielgon
链接:https://www.glglife.com/zai-qun-hui-ds414-armv7-shang-an-zhuang-zerotier161-shi/
来源:光的房间与翩翩夏日
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>