其他分享
首页 > 其他分享> > 有关nas中使用zerotier实现内网穿透的配置说明

有关nas中使用zerotier实现内网穿透的配置说明

作者:互联网

一、背景介绍

由于工作变动,很久不写博客了。

新入坑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 ,发现竟然可以。

 

以上。。。。 

 

标签:NAS,ip,穿透,nas,虚拟,zerotier,docker,组网
来源: https://www.cnblogs.com/zhongtang/p/16462728.html