由于工作变动,很久不写博客了。
新入坑nas(群晖 220+),原因不阐述,经过一段时间折腾,陆续实现以下用途:
1、手机照片自动备份。
2、工作资料多机器自动同步。(家、单位、常驻出差地点)
3、网盘本地化(把存储在某度云上大概200G的照片、资料全部挪到nas上)
4、nas部署qt,远程下载
中间踩了不少坑,趟雷的过程很有共性,供大家参考,本文重点说zerotier实现内网穿透。
1、zerotier内网穿透效果:
1、把分散在广域网上的多个设备(pc、手机、nas等),通过虚拟组网技术,实现局域网化,提升访问和传输速度。
2、不需要固定ip,不需要域名,不需要端口映射之类。
3、需要在各设备上安装并运行zerotier 的客户端。
2、zerotier内网穿透原理:
先说明下,没太细研究,纯猜测(只吃猪肉就好,不关心猪吃啥饲料)。
1、由zerotier客户端向zerotier中心端(zerotier官方服务器)提交运行zerotier客户端设备的外网ip,端口。
2、中心端分配虚拟局域网ip。
3、客户端通过虚拟局域网ip直接通讯,这里提升速度的核心,是绕开中心端的数据转发。
4、中间应该有些加密、隧道打通之类的东西。
3、环境:
设备:
1、群晖 220+ ,放在家里(DSM7.0版本)。
2、公司pc (win10)。
3、家pc(win10) 。
4、N台手机(小米)。
5、电视盒子(小米)……
网络:
1、家,北方某省移动宽带100M外网出口,光猫拨号,小米路由器做无线AP。
ps:曾经探讨光猫做桥接,小米路由器负责拨号,铁通的安装人员死活不同意,懒得废话,放弃
2、公司 中国电信100M 出口。
3、出差地,联通出口,带宽不详。
4、手机,移动4G
5、没有申请固定域名,没有固定ip,也没研究ipv6地址之类。
二、具体配置方法 1、zerotier官网注册账号,申请虚拟组网ID
这一部分都是常规申请操作,目的是到zerotier官网,申请一个zerotier虚拟组网id,后续新加入客户端,也需要在官网主页上要进行授权审批。
具体这一部分的操作流程,可以查看这个链接: 群晖docker安装Zerotier实现内网穿透_嘉兴龙的博客-CSDN博客_群晖zerotier
2、在NAS上利用docker安装运行zerotier
具体这一部分的操作流程,还是查看这个链接: 群晖docker安装Zerotier实现内网穿透_嘉兴龙的博客-CSDN博客_群晖zerotier
这里需要说明的,我下载和安装的是zerotier/zerotier-synology,比较小一共27M(1.81版本zerotier),配置什么的都是一样的。
关于运行zerotier-cli join 233ccaa88751182c ,这一命令有以下几点补充内容:
a)后头这一串字符,要改成你在zerotier申请到虚拟组网id。
b)这个命令只需要运行一次。
c)执行该命令只是向zerotier服务端发出申请,需要登录到zerotier官网里去审批同意,审批同意之后才算正式加入。
d)pc端同样要运行zerotier的客户端,申请加入虚拟组网id,并且在服务端审批同意之后,才能正式加入到虚拟网中。
3、判断组网是否成功
组网成功之后,在pc端浏览器用**.quickconnect.to域名访问nas,会发现quickconnect会自动解析出虚拟组网分配的IP。
这时候无论是用synology driver client,还是ds file ,ds phtoto,ds video同步文件还是电影,速度都提高了一个层级。
对比我本人实测的数据,使用zerotier之前,synology 同步文件速度约30K/s,使用zerotier之后,synology速度稳定在2M/s左右。
三、有关持久化
非IT人员对持久化理解起来有点累,说说实际情况吧,不做持久化,只要NAS一不小心掉电重启,或者NAS里的docker异常重启,都会导致zerotier组网失败。
表现形式,就是quickconnect访问无法解析出ip,手工在docker中执行zerotier-cli join *** 的时候,反馈500错误。
解决办法:
参看这个材料。黑群晖(DSM7)挂载zerotier one(使用docker)部署分享_NAS存储_什么值得买 (smzdm.com)
1、NAS开启ssh
2、用putty之类telnet软件访问NAS
3、访问成功之后,用sudu -i 切换到root权限。
4、安装和配置tun.ko
特别说明的是,他这个有错误,稍微懂点脚本都知道,#是注释符号,第一句话那么写根本不会执行,没有任何意义。
所以n应该是\n ,估计博主也是转来转去,不同编辑器导致信息就失真了。
#错误写法 echo -e '#!/bin/sh -e ninsmod /lib/modules/tun.ko' > /usr/local/etc/rc.d/tun.sh #正确写法 echo -e '#!/bin/sh -e \n insmod /lib/modules/tun.ko' > /usr/local/etc/rc.d/tun.sh
5、关闭ssh
重启之后,一切正常。
临时解决办法:
在找到上述解决方案之前,我找到一个傻办法,就是删掉docker,重新配置zerotier ,发现竟然可以。
以上。。。。
【文章原创作者:香港服务器 http://www.558idc.com/hk.html提供,感谢支持】