前言:由于Synology 的 DSM 7 不允许第三方应用程序以 root 用户身份运行。所以DSM7以上的版本将只能使用docker的方式来安装zerotier(而DSM6的zerotier将在2023年进入EOL阶段(停止服务),且用且珍惜吧。


通过docker安装zerotier主要分为以下四个步骤:

1、在nas启动ssh访问;

2、创建TUN服务;

3、安装docker服务(群晖套件直接安装即可,这里略过);

4、拉取并启动zerotier one镜像;

5、将zerotier-one镜像加入你的网络,并添加moon节点

在nas启动ssh访问

在群晖页面控制面板下,找的“终端机和SNMP”这一项,把“启动SSH功能”勾上即可,默认使用22端口即可;

之后使用远程访问工具(我这里使用putty)登录群晖;

创建TUN服务

首先切换到root用户(以下所有的操作都需要有root权限)

sudo -i

创建一个 /usr/local/etc/rc.d/tun.sh 脚本 到 /dev/net/tun 目录下

echo -e '#!/bin/sh -e \ninsmod /lib/modules/tun.ko' > /usr/local/etc/rc.d/tun.sh

给刚刚创建的tun脚本授予所有用户均可执行的权限

chmod a+x /usr/local/etc/rc.d/tun.sh

使用以下命令检查以下tun.ko是否存在

lsmod | grep tun

由于我的群晖默认已经有tun这个包了,所以就不需要安装,直接用即可,如果使用lsmod命令找不到tun这个包,则执行以下脚本,创建TUN

/usr/local/etc/rc.d/tun.sh

如果执行脚本遇到以下报错,说明tun.ko模块可能已存在,不需要重新编译

检查一下 TUN

ls /dev/net/tun

如果您在让TUN工作时遇到困难,请查看‎‎Rui Marinho的指南‎

创建zerotier镜像

创建一个文件夹用于挂载zerotier-one的配置文件和认证信息(我这里路径指定到我自己创建的docker/zerotier文件夹下)

mkdir /volume1/docker/zerotier

这里也可以直接在群晖file Station上创建,然后再文件夹属性中获取实际路径(建议使用这步,比较直观,不容易出错)

以下是zerotier官方给的注意:

In the next step we bind mount to the host's created above in order to store ZeroTier's identity. This is not guaranteed to survive DSM updates. I would suggest placing this on an automatically-mounted volume where your other private user data resides. The location you choose to store your identities should be kept secure and never placed on a shared volume that others can access./var/lib/zerotier-one

译文版本:

‎在下一步中,我们将装载绑定到上面创建的主机,以存储ZeroTier的身份(我的理解是config配置和用户信息)。这不能保证在 DSM 更新后仍然有效(zerotier自己也不确定,为了群晖更新后,会不会不再允许用户使用zerotier做内网穿透,毕竟DSM7之后,群晖直接不再支持zerotier的套件了,可能zerotier自己也感觉后续可能会被不再支持,故在此给用户打个预防针)。zerotier建议将其放在其他私人用户数据所在的自动装载卷上。您选择存储身份(用户信息和config信息)的位置应保持安全,切勿放置在其他人可以访问的共享卷上‎。

构建zerotier-one镜像 (Repo: zerotier/zerotier-synologyzt)

docker run -d           \--name zt             \--restart=always      \--device=/dev/net/tun \--net=host            \--cap-add=NET_ADMIN   \--cap-add=SYS_ADMIN   \-v /volume1/docker/zerotier:/var/lib/zerotier-one zerotier/zerotier-synology:latest

执行完,出现一串检验码即表示镜像部署启动成功,回到群晖管理页面,既可以看到多了一个群晖镜像;

配置zerotier-one加入网络,并配置moon节点

配置zerotier-one加入网络

使用以下命令检查zerotier-one的运行状态

docker exec -it zt zerotier-cli status

再使用以下命令加入你的zerotier-one网络(其中后面的e5cd7a9e1cae134f换成你自己的zerotier-one生成的网络id

docker exec -it zt zerotier-cli join e5cd7a9e1cae134f

当看到200 join OK,既是表示加入网络成功,这时候登录zerotier控制台,即可看到网络列表多了一条未授权加入的网络,勾选允许其加入即可;

接下来在为docker环境下的zerotier-one添加moon节点

这个比较简单,直接在群晖file station下,找到你上面创建的docker文件夹下的zerotier文件夹,将你的moon.d拖拽进入即可

最后,重启zerotier docker容器,在ssh端执行以下命令,检查moon节点是否加载成功(看到多了moon的那行即表示成功)

docker exec -it zt zerotier-cli listpeers

最后在手机上使用zerotier分配的ip即可顺便在4G网络下接入局域网内的群晖了(前提是你的手机需要先安装zerotier客户端,并已加入同一个网络id)

黑群晖(DSM7)使用docker挂载zerotier one实现内网穿透相关推荐

  1. 黑群晖6.21无公网IP无域名内网穿透教程

    黑群晖6.21无公网IP无域名免费内网穿透教程 鼓捣黑群晖的起因,由于生了二胎,照片视频大量数据没有存储.闲来无事,准备解决大量照片存储问题.在咸鱼收了一块二手硬盘6T红盘. 但是问题来了,家里没有台 ...

  2. 将群晖NAS搭建的网站发布上线【内网穿透】——上(7.X版)

     系列文章 如何在群晖NAS上安装cpolar内网穿透(群晖7.X版) 内网穿透远程群晖NAS--上篇(7.X版) 内网穿透远程群晖NAS--下篇(7.X版) 将群晖NAS搭建的网站发布上线[内网穿透 ...

  3. 给群晖6.2.4(NAS)实现免费的内网穿透_以zerotier-One实现

    一.实现效果 ①实现通过外网访问家里的群晖NAS,随时方便访问调取自己家里的群晖资料.视屏等资源. ②实现群晖重启后依然能够启动zerotier-one服务,让外网能够访问. 二.实现方法 2.1.需 ...

  4. 异地远程连接在家里的群晖NAS【无公网IP,免费内网穿透】

    群晖NAS,少不了有在外网远程访问的需求.尽管群晖有自带的QuickConnect,但是使用起来不是很理想,而且,现在基本不会被分配到公网IP,个人被分配到的基本都是内网IP. 而在没有公网IP的情况 ...

  5. 黑群晖从入门到入土,自编译适合自己硬件的黑群晖7.1.x引导(黑群晖DSM7.X引导用arpl编译教程)

    写在前面的话 没啥好说的,只需要感谢在GitHub上开源代码的巴西老哥就好,好了废话不多说直接开始. 黑群晖DSM7.X引导用arpl编译教程 写在前面的话 一.需要的软硬件清单 二.制作引导盘 1. ...

  6. [黑群晖]DSM7.1 ds3617xs 志强e3 1265lv3 b85保姆级安装教程

    [黑群晖]DSM7.1 ds3617xs 志强e3 1265lv3 b85保姆级安装教程 鉴于网上几乎没有志强cpu安装的教程,我走了相当多的弯路,不一定适合你的cpu,但是有一些小问题的解决办法,可 ...

  7. 黑群晖安装ZEROTIER ONE实现内网穿透

    黑群晖安装ZEROTIER ONE实现内网穿透 ZeroTier One的原理是虚拟出一块网卡,连上一个虚拟网络,安装了ZeroTier One客户端的设备可以连入这个网络,经过授权连接成功之后彼此都 ...

  8. 群晖网络不通_群晖系统安装zerotier one进行内网穿透过程中常见问题及解决方法...

    群晖系统安装zerotier one进行内网穿透过程中常见问题及解决方法 2020-07-28 17:27:39 21点赞 330收藏 31评论 zerotier one是一款很好用的P2P内网穿透软 ...

  9. 【转载】无公网IP搞定群晖+ZEROTIER ONE实现内网穿透

    前言 最近刚开始折腾群晖,从5.2到6.0再到5.2再到6.1,期间过程曲折复杂,血泪交融,参考了无数文章,重启了无数次机器,拷贝了无数文件,以及损失了无数数据.再次提醒大家,数据一定要做好备份,一定 ...

最新文章

  1. 整体管理6个过程及相关重点
  2. 2019牛客暑期多校训练营(第七场)D Number(思维)
  3. fcntl函数之文件锁 F_SETLKW
  4. Netty入门(一)环境搭建及使用
  5. linux文件挂载和卸载命令,Linux基础命令(八)——挂载、卸载文件系统
  6. 链接ftp,把文件或图片上传到ftp指定的文件夹中
  7. hnu 暑期实训之Maya历法
  8. 工作中 linux 常用命令:vi、cp、mv、rm、kill、curl、tail
  9. centos7上克隆虚拟机后设置静态IP无效的解决方法
  10. 参考文献格式字号字体_参考文献用什么字体字号 参考文献标准格式字体
  11. java解析micaps_9210的Micaps第13类卫星云图数据
  12. 背包问题贪心算法求解
  13. Django实战教程
  14. 最小二乘法的计算过程
  15. 拉东(Radon)变换
  16. 分光器尺寸及光损耗计算
  17. ENVI/SARscape软件处理问题小结
  18. DateDiff函数的使用
  19. floor puzzles
  20. 把hao123网页用html写出来,hao123改版之用户体验

热门文章

  1. R语言把DataFrame的一行变成向量
  2. 【Unity 2017.3 制作安卓2D单机手游】2.这就开始做
  3. extern 用法详解
  4. laravel 压缩图片 Intervention/image
  5. java 使用 Amazon SES 发送电子邮件
  6. CSS文字超出用省略号...鼠标悬停显示全部文字
  7. python记录鼠标键盘操作自动执行重复工作
  8. 10款可视化大屏特效,酷炫又内涵!
  9. Component属性
  10. Nginx用户访问及密码验证