群晖 DSM 7.2 安装 ZeroTier Docker 完整教程

群晖 DSM 7.2 安装 ZeroTier Docker 完整教程

群晖 DSM 7.2 安装 ZeroTier Docker 完整教程

ZeroTier 是一个强大的虚拟局域网(VPN)解决方案,可以让分散在全球各地的设备组成一个虚拟局域网。本文将详细介绍如何在 群晖 DSM 7.2 系统上通过 Docker 安装和配置 ZeroTier 客户端。

环境要求

  • 群晖 NAS 系统版本:DSM 7.2 或更高
  • 已安装 Container Manager(Docker)套件
  • 已开启 SSH 服务
  • Root 权限访问

一、准备工作

1.1 安装 Container Manager

  1. 打开群晖 套件中心
  2. 搜索并安装 Container Manager(旧版本称为 Docker)
  3. 等待安装完成

1.2 开启 SSH 服务

  1. 进入 控制面板 > 终端机和 SNMP
  2. 勾选 启动 SSH 功能
  3. 端口保持默认 22 或自定义
  4. 点击 应用

1.3 SSH 连接到群晖

ssh your_username@your_nas_ip

登录后切换到 root 用户:

sudo -i

二、创建 TUN 设备

ZeroTier 需要 TUN/TAP 设备来创建虚拟网络接口。群晖系统默认没有创建该设备,需要手动创建。

2.1 手动创建 TUN 设备

mkdir -p /dev/net
mknod /dev/net/tun c 10 200
chmod 666 /dev/net/tun
ls -l /dev/net/tun

输出示例:

crw-rw-rw- 1 root root 10, 200 Nov  3 10:30 /dev/net/tun

2.2 创建开机自启动脚本

方法一:使用 rc.d 脚本(推荐)

mkdir -p /usr/local/etc/rc.d
cat > /usr/local/etc/rc.d/tun.sh << 'EOF'
#!/bin/sh
case $1 in
  start)
    sleep 5
    mkdir -p /dev/net
    if [ ! -c /dev/net/tun ]; then
      mknod /dev/net/tun c 10 200
    fi
    chmod 666 /dev/net/tun
    echo "$(date): TUN device initialized" >> /var/log/tun-init.log
    ;;
  stop)
    ;;
esac
EOF
chmod +x /usr/local/etc/rc.d/tun.sh
/usr/local/etc/rc.d/tun.sh start

方法二:使用任务计划

  1. 控制面板 → 任务计划 → 新增 → 触发的任务 → 用户定义脚本
  2. 任务名称:创建 TUN 设备;用户账号:root;事件:开机
  3. 脚本内容:
#!/bin/bash
mkdir -p /dev/net
if [ ! -c /dev/net/tun ]; then
  mknod /dev/net/tun c 10 200
fi
chmod 666 /dev/net/tun
echo "$(date): TUN device created" >> /tmp/tun-creation.log

三、安装 ZeroTier Docker 容器

3.1 创建数据目录

mkdir -p /volume1/docker/zerotier

3.2 运行 ZeroTier 容器

docker run -d \
  --name zerotier-one \
  --restart=always \
  --privileged \
  --net=host \
  --device=/dev/net/tun \
  -v /volume1/docker/zerotier:/var/lib/zerotier-one \
  zerotier/zerotier:latest

参数说明:

  • --privileged:特权模式,容器可访问系统设备
  • --device=/dev/net/tun:映射 TUN 设备
  • --net=host:使用主机网络

3.3 验证运行状态

docker logs zerotier-one
docker exec zerotier-one zerotier-cli info

输出示例:

200 info a1b2c3d4e5 1.12.2 ONLINE

四、加入 ZeroTier 网络

docker exec zerotier-one zerotier-cli join <网络ID>
docker exec zerotier-one zerotier-cli listnetworks

然后到 ZeroTier Central 授权设备。

五、使用 Docker Compose(可选)

version: '3'
services:
  zerotier:
    image: zerotier/zerotier:latest
    container_name: zerotier-one
    restart: always
    privileged: true
    network_mode: host
    devices:
      - /dev/net/tun:/dev/net/tun
    volumes:
      - ./zerotier:/var/lib/zerotier-one
    environment:
      - TZ=Asia/Taipei

在群晖 Container Manager → 项目 中导入此配置并部署。

六、常用命令

docker exec zerotier-one zerotier-cli info
docker exec zerotier-one zerotier-cli listnetworks
docker exec zerotier-one zerotier-cli listpeers
docker restart zerotier-one
docker logs -f zerotier-one

七、故障排查

容器无法启动:

ls -l /dev/net/tun
docker logs zerotier-one

网络不通:

  • ZeroTier Central 是否已授权
  • 群晖防火墙开放 UDP 9993 端口

八、高级配置

  • 静态 IP: 在 ZeroTier Central → Members → Managed IPs 中设置
  • 自定义路由:
    ip route add 192.168.1.0/24 via <ZT网关> dev ztxxxxxx

九、安全建议

  • 启用两步验证
  • 定期更新镜像:
    docker pull zerotier/zerotier:latest
  • 仅授权必要设备

十、卸载

docker stop zerotier-one
docker rm zerotier-one
rm -rf /volume1/docker/zerotier
rm -f /usr/local/etc/rc.d/tun.sh

十一、总结

  1. ✅ 创建 TUN 设备
  2. ✅ 配置开机自启动
  3. ✅ 部署 ZeroTier Docker 容器
  4. ✅ 加入 ZeroTier 网络并授权

现在你的群晖 NAS 已成功加入 ZeroTier 虚拟局域网,可从任何地方安全访问 NAS 资源。


参考资料:

作者注: 本教程基于 DSM 7.2 系统测试通过,最后更新:2025 年 11 月。

© 版权声明
THE END
喜欢就支持一下吧
点赞7 分享