在U-NAS下配置Zerotier进行内网穿透

万由U-NAS  / 教程分享  / 只看大图  / 倒序浏览   © 著作权归作者本人所有

#楼主# 2019-3-2 17:20

跳转到指定楼层
一、背景介绍
  之前一直计划在家里放个NAS用来储存各种数据资料、同步手机数据之类的,过完年回来网上偶然得知在年前某播酷云就“矿难”了,于是赶紧入了一台。播酷云是万由代工的一款NAS,本来是计划上黑裙的系统,但是想到实际上并不需要那么多功能,只想尽量少折腾,干脆就装上了万由自家的U-NAS OS。

UNAS系统界面

UNAS系统界面

  我这边的使用场景是把NAS放在家里的内网,然后除了家里还会在其他地方对它进行操作,所以接下来要考虑的就是内网穿透的问题。

二、内网穿透方案
  目前网络上常见的内网穿透方案基本上是这两种:
1. 采用公网设备作为中转代理,实现内外网设备连接,数据流量走中转通道。例如:FRP、ngrok、QC等等(我感觉万由家官方的U-Anywhere也是这种模式)
2. 采用公网设备作为握手代理,内外网设备连接代理服务器完成握手后,实现设备之间直连,数据流量直接走点对点通道,不经过代理服务器。例如:ZeroTier、N2N。
  由于我自己的廉价VPS速度和流量也堪忧,所以搭建第一种方案是不可靠的,所以后续还是选定了使用ZeroTier作为内网穿透的方案。

ZeroTier的连接模式
  我理解中ZeroTier实现数据连接的模式大概是这样的:
1. A 想要将数据包发送到 B,但由于它没有直接路径,因此将其向上发送到 C
2. 如果 C 有直接链接到 B,它会转发数据包给 B,否则它会继续向上游发送数据包,直到达到根节点 Z
3. 根节点 Z 知道所有节点,所以如果 B 在线,最终数据包将到达 B
4. C 还向 A 发送一个握手的消息,包含有关它如何到达 B 的提示。同时,将握手消息发给 B,通知 B 它如何到达 A
5. A 和 B 获取握手消息并尝试相互发送测试消息,可能会对 NAT 或防火墙进行穿透,如果这样可以建立直接链路,则不再需要中继,如果无法建立直接路径,则通信可以继续中继(速度慢)。
  这里面的根节点 Z 是由ZeroTier官方提供的,用户也可以自己搭建类根节点 Moon,来依托 Z 节点提高数据交换速度。

三、安装流程
1、注册ZeroTier账号
  如上文所说,ZeroTier 的根节点是由官方提供的,即便是自己搭建 Moon 节点也要依托官方的根节点来被发现,所以要使用 ZeroTier 还是得先注册ZeroTier的账号。免费账号可以建立一个虚拟局域网,允许同时最多100个设备连接到这个虚拟局域网中。
  注册过程比较简单,就不细说了。注册登陆后,建立完一个虚拟局域网,会得到一个网络ID(不可修改)和一个局域网段(可以自定义)。

ZeroTier建立虚拟局域网

ZeroTier建立虚拟局域网

  最重要的其中的网络ID,那是作为后续其他设备接入的唯一凭证。

2、在U-NAS上安装ZeroTier
  U-NAS OS 本质上是基于 Debian 的一个 NAS 系统,所以安装流程就跟在 Debian 下面差不多。

  1.开启 SSH服务
  由于 U-NAS OS 默认没有安装 openssh,所以先在“APP管理器”中找到“SSH服务”安装上,并在相关设置中配置好端口。

开启SSH服务

开启SSH服务

  2.用SSH登录U-NAS
  一般可以采用Putty、MobaXterm等工具连接NAS的SSH端口即可,我这里懒得安装,直接在命令行下登录了。

  1. <p>ssh U-NAS地址 -l admin -p SSH端口</p>
复制代码


  登录之后需要用`su root`来切换到 root 用户,默认密码为`yutech` ,如果之前那步勾上了“允许Root登录”的话可以省略admin用户登录再切换的流程。

SSH登录U-NAS

SSH登录U-NAS

  3.安装ZeroTier
  由于 U-NAS 本质上是 Debian 系统,所以安装过程只需要一条命令就足够了。(由于此前已经切换到 root 用户,所以此处运行 bash 不需要加 sudo 了)。
  1. curl -s https://install.zerotier.com/ | bash
复制代码

  正常情况下出现 Successful 就说明安装好了。

3、使用ZeroTier
  安装完成后 ZeroTier 自动加入启动服务中,不需要手动启动。此时只要使用 join 命令加入之前创建的那个网络的 ID 即可将 U-NAS 加入到虚拟局域网中。
  1. zerotier-cli join (NetWork ID)
复制代码

  如果出现`200 join OK`字样就说明成功连上虚拟局域网了。但此时它还并不能被访问,需要登录 ZeroTier 的控制中心。

发现U-NAS设备

发现U-NAS设备

  看到已经发现了 U-NAS,这时候点击左边的勾勾来通过验证,就正式将 U-NAS 连接到 ZeroTier 的虚拟局域网中了。后面的 Managed IP 就是它在虚拟局域网中的IP地址。

认证U-NAS设备

认证U-NAS设备

  这样连上了之后就能被其他加入这个虚拟局域网的设备发现,并与其进行点对点的数据传输了。
  此时在 U-NAS 上输入`zerotier-cli listpeers`还能看到整个网络中的其他节点。
07.jpg

四、使用效果
  整体弄好之后试试效果,我这里的环境是这样:U-NAS 放在家里,在家庭内网中,办公室的电脑在公司的内网环境下。

Ping

Ping

  在办公室的终端上分别 Ping 一下它在 U-Anywhere 的地址和虚拟局域网中的内网地址,可以发现是成功打通了直连通道的。
09.jpg
  复制文件的速度也已经很不错了,基本上能够跑满公司内网限制的网速了,也说明与之之间是实现了 P2P 直连而非走中转通道。

五、后续
  后来还尝试了在 VPS 上面搭建 ZeroTier 的 Moon 节点服务器,也成功了,不过我的廉价 VPS 访问速度并不比 ZeroTier 自己的根节点快多少,所以也不知道具体效果如何。如果以后在国内的 VPS 上部署 Moon 节点的话,应该对国内的 ZeroTier 终端访问会有加快握手速度的作用。

http://www.candura.us
分享淘帖
回复

使用道具

0

精华

48

帖子

320

积分

入门用户

Rank: 1

云币
0
贡献
0
活跃
296
精华
0
entadywand 发表于 2019-3-4 12:34
感谢分享
回复

使用道具 举报

0

精华

31

帖子

166

积分

入门用户

Rank: 1

云币
0
贡献
0
活跃
150
精华
0
policemo 发表于 2019-3-10 08:02
本帖最后由 policemo 于 2019-3-10 08:17 编辑

支持分享!!
回复

使用道具 举报

0

精华

193

帖子

1092

积分

发烧玩家

Rank: 2

云币
0
贡献
80
活跃
595
精华
0
天秤座 发表于 2019-3-19 01:42
支持分享!!
回复

使用道具 举报

0

精华

17

帖子

69

积分

入门用户

Rank: 1

云币
0
贡献
0
活跃
60
精华
0
电子高专 发表于 2019-7-9 21:35
其实根本部稳定!对不对?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关于作者

candura

入门用户

  • 主题

    1

  • 帖子

    3

  • 关注者

    3

楼主新帖

那是云自营淘宝
快速回复 返回列表 搜索 官方QQ群
懒人地图 百度地图 谷歌地图手机版|小黑屋| 智能生活 , 上那是云 |闽ICP备12025514号-3