一、实现效果
①实现通过外网访问家里的群晖NAS,随时方便访问调取自己家里的群晖资料、视屏等资源。
②实现群晖重启后依然能够启动zerotier-one服务,让外网能够访问。
二、实现方法
2.1、需要先到ZeroTier官网注册账号
ZeroTier官网https://www.zerotier.com/download/具体的注册操作请参考如下连接:
参考《使用Zerotier实现免费内网穿透》文章的——2.2、注册ZeroTier进行注册https://coffeemilk.blog.csdn.net/article/details/119360712
2.2、下载对应自己群晖的zerotier套件
1、首先打开群晖的SSH功能
2、然后需要在自己电脑上准备Putty用来连接群晖,请参考如下文章:
3、使用Putty登陆群晖查看型号
使用Putty登陆群晖后输入查看型号的命令
uname -ar
4、下载对应自己群晖的Zerotier-One套件
比如我这里:查询到了自己群晖的型号(我这里的群晖型号是:synology_kvmx64_virtualdsm),则下载对应型号的zerotier-One套件(zerotier_kvmx64-6.1_1.4.0-0.spk )即可。
Zerotier-One各个平台安装包下载https://download.zerotier.com/RELEASES/
2.3、群晖安装下载好的zerotier套件
且打开安装好的zerotier
2.4、加入创建好的zerotier账户
复制zerotier中创建好的网络ID,让群晖套件中加入该网络
注意:此时发现点击了【Join】按钮后,界面没有反应,无法加入zerotier的网络。
三、无法加入zerotier网络的解决方法
3.1、使用Putty登陆群晖加入zerotier网络
打开Putty登陆后输入【sudo-i】后按下Enter键输入密码即可进入root权限,然后输入命令【zerotier-cli join 你的zerotier网络ID】加入自己创建的zerotier网络
3.2、检查tun模块状态
注意:以下操作均是使用Putty连接群晖,且使用【sudo -i】提升权限为root后操作。
①检查是否安装了tun模块:命令如下
lsmod | grep tun
②如果检查tun模块的结果为空,请尝试使用如下命令安装tun模块:
insmod /lib/modules/tun.ko
③如果检查tun模块的结果不为空,则不用安装(正常包含tun模块的界面如下)
3.3、测试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,则表示模块已正确安装,如下图所示:
3.4、使tun.ko模块持久化
tun.ko模块的安装需要在每次群晖重启时保持持久性,这就要求必须每次重启后重复使用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
重新启动群晖,即可完成。