欢迎光临
我们一直在努力

群晖 DSM 7 使用 Docker 安装 ZeroTier

文章目录

  1. 创建一个持久的 TUN(虚拟网卡)
  • 测试tun.ko模块是否有效
  • 官方文档:https://docs.zerotier.com/devices/synology

    Synology 的 DSM 7 不允许第三方应用程序以 root 身份运行。因此,我们现在推荐使用 Docker 来运行 ZeroTier。

    它是在您的 NAS 上运行第三方应用程序的更安全的方式。

    设置后,此配置将在重新启动和 DSM 升级后保持不变。

    创建一个持久的 TUN(虚拟网卡)

    以管理员方式运行

    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模块持久化

    模块安装需要在每次 Syn­ol­ogy 重启时保持持久性,就必须重复使用 insmod 命令。

    可以创建开机脚本搞定,执行如下命令进行创建:

    cat < /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

    重新启动 Syn­ol­ogy 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

    Github:https://github.com/zerotier/zerotier-synology

    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)
    未经允许不得转载:拆东墙 » 群晖 DSM 7 使用 Docker 安装 ZeroTier

    评论 抢沙发

    登录

    找回密码

    注册