群晖 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
- 打开群晖 套件中心
- 搜索并安装 Container Manager(旧版本称为 Docker)
- 等待安装完成
1.2 开启 SSH 服务
- 进入 控制面板 > 终端机和 SNMP
- 勾选 启动 SSH 功能
- 端口保持默认 22 或自定义
- 点击 应用
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/tun2.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方法二:使用任务计划
- 控制面板 → 任务计划 → 新增 → 触发的任务 → 用户定义脚本
- 任务名称:创建 TUN 设备;用户账号:root;事件:开机
- 脚本内容:
#!/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/zerotier3.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十一、总结
- ✅ 创建 TUN 设备
- ✅ 配置开机自启动
- ✅ 部署 ZeroTier Docker 容器
- ✅ 加入 ZeroTier 网络并授权
现在你的群晖 NAS 已成功加入 ZeroTier 虚拟局域网,可从任何地方安全访问 NAS 资源。
参考资料:
作者注: 本教程基于 DSM 7.2 系统测试通过,最后更新:2025 年 11 月。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END








