Synology 的 DSM 7 不允许第三方应用程序以 root 身份运行。因此,我们现在推荐使用 Docker 来运行 ZeroTier。
它是在您的 NAS 上运行第三方应用程序的更安全的方式。
设置后,此配置将在重新启动和 DSM 升级后保持不变。
创建一个持久的
以管理员方式运行
sudo -i
检查tun模块状态
检查是否安装了 tun 模块:
lsmod | grep tun
如果结果为空,请尝试安装它:
insmod /lib/modules/tun.ko
如果一切顺利,继续进行下一个测试。
测试tun.ko模块是否有效
确保 tun.ko 模块可以正常工作:
mkdir /dev/net
mknod /dev/net/tun c 10 200
chmod 600 /dev/net/tun
cat /dev/net/tun
如果 cat 命令的返回结果是 File descriptor in bad state,则表示模块已正确安装。
使tun.ko模块持久化
模块安装需要在每次 Synology 重启时保持持久性,就必须重复使用 insmod 命令。
可以创建开机脚本搞定,执行如下命令进行创建:
cat <<EOF > /usr/local/etc/rc.d/tun.sh
#!/bin/sh -e
insmod /lib/modules/tun.ko
EOF
给脚本可执行权限:
chmod a+x /usr/local/etc/rc.d/tun.sh
重新启动 Synology NAS 或手动执行一次脚本。完成!
运行一次脚本以创建一个 TUN
/usr/local/etc/rc.d/tun.sh
运行ZeroTier Docker
创建目录来存储 ZeroTier 的身份和配置(容器目录挂载到宿主机)
mkdir /var/lib/zerotier-one
拉取ZeroTier Docker容器并运行(容器名zt):
docker run -d \
--name zt \
--restart=always \
--device=/dev/net/tun \
--net=host \
--cap-add=NET_ADMIN \
--cap-add=SYS_ADMIN \
-v /var/lib/zerotier-one:/var/lib/zerotier-one zerotier/zerotier-synology:latest
Docker Hub:https://hub.docker.com/r/zyclonite/zerotier
常用命令
查看节点状态
docker exec -it zt zerotier-cli status
加入您的网络
docker exec -it zt zerotier-cli join e5cd7a9e1cae134f
在官网网络设备列表中授权NAS 。然后查看网络状态:
docker exec -it zt zerotier-cli listnetworks
显示正在运行的容器(可选)
docker ps
进入容器(可选)
docker exec -it zt bash
升级 ZeroTier
要升级 ZeroTier,您需要停止并删除容器,然后拉取最新的并启动一个新容器:
docker ps
示例输出:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
52c7cb58a1dd zerotier/zerotier-synology:latest "zerotier-one" 5 weeks ago Up 9 days zt
停止容器
docker stop 52c7cb58a1dd
删除容器
docker container rm 52c7cb58a1dd
拉取最新镜像
docker pull zerotier/zerotier-synology:latest
运行容器
docker run -d \
--name zt \
--restart=always \
--device=/dev/net/tun \
--net=host \
--cap-add=NET_ADMIN \
--cap-add=SYS_ADMIN \
-v /var/lib/zerotier-one:/var/lib/zerotier-one zerotier/zerotier-synology:latest
添加Moons(可选)
自己搭建Moons:Linux搭建ZeroTier的Moon服务器
Moons官方文档:https://docs.zerotier.com/zerotier/moons
直接使用命令zerotier-cli orbit
docker exec zt zerotier-cli orbit 9c960b9ac2 9c960b9ac2
是否成功?
查看 zerotier-cli listpeers
docker exec zerotier-one zerotier-cli listpeers
如果输出中出现一条最后为MOON的记录,说明已经成功连接Moon服务器
zerotier-cli listpeers
200 listpeers
200 listpeers id myip/9993;6012;1706 -1 1.8.4 MOON
200 listpeers 62f865ae71 50.7.252.138/9993;6012;1070 -294 - PLANET
评论(0)