Discuz! Board

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1218|回复: 2

NAS实现

[复制链接]

1214

主题

1975

帖子

7486

积分

认证用户组

Rank: 5Rank: 5

积分
7486
发表于 2022-3-19 10:57:56 | 显示全部楼层 |阅读模式
本帖最后由 Qter 于 2022-3-19 11:15 编辑

群晖的QuickConnect快速连接技术白皮书https://post.smzdm.com/p/422670/
快速连接提供了以下功能:
1.永久的和容易记忆的服务器ID ---- 一个QuickConnect的ID – 无论在lan还是在wan都能正常工作
2.服务器位置检测(LAN / WAN检测)
3. QuickConnect打孔
4. 通过UPnP自动端口转发
5. QuickConnect中继服务
6. QuickConnect网页访问



QuickConnect的工作原理
概述

快速连接,一般提供三种不同的服务:移动和PC客户端程序的访问,QuickConnect网页门户,和DSM文件共享。 所有这些服务需要QuickConnect的连通性测试,以保证高效连接。 在本章中,我们将解释QuickConnect的连通性测试如何工作以及这三个服务分别提供的功能。
QuickConnect的连通性测试
QuickConnect 的连通性测试是一系列的尝试定义如何使用快速连接ID在客户端连接到其目标NAS。 它首先通过QuickConnect服务器上注册的网络地址进行LAN和WAN的检测,以验证服务器的可访问性,然后根据群晖NAS所处的网络环境来测试 是否适合打洞,如之前所述方法都不可访问到NAS的话最后将会提供中继服务。
LAN / WAN检测
当客户端试图使用服务器的快速连接ID来访问群晖NAS,一个请求会被发送到
群 晖QuickConnect服务器来注册NAS的信息。这使得客户端可以获取网络信息,以确定服务器的可能的连接方式。 这些信息包括公网IP,局域网IP ,和NAT类型和其他一些信息。所有这些都是必要的环节并且不会损害到NAS的安全性。 用这些给定的信息,客户端可以识别在LAN或WAN中,是否可以建立IP地址或域名地址的直接连接。

QuickConnect的打洞
如果不能建立直接连接,客户端将试图建立NAS与客户机之间的虚拟隧道并通过QuickConnect建立临时直接链接来进行数据传输。 该技术使得服务器和客户端之间的网络同步性能与通过WAN IP或是DDNS直连有着十分相似的体验,而不需要物理上具有WAN IP或是DDNS这样的网络环境。
打洞的工作原理是借由QuickConnect的辅助服务器,客户机发起虚拟隧道到NAS
1. NAS发送一个请求到QuickConnect服务器,并保持开放端口 ---- NAS发送请求时会在NAT设备前打开个随机端口 – 保持开放以接受打洞请求。
2.类似地,客户机发出一个请求到QuickConnect服务器时会在客户端NAT设备前创建另一个端口
3. QuickConnect服务器将提供NAS的端口信息到客户端,反之亦然。
4. NAS会通过客户端这边打开的洞尝试建立到客户机的连接。
5.一旦客户端接收从NAS打洞请求,会发回一个打洞响应,经由在NAS侧的打开的洞返回给NAS。
6.如果打洞响应到达NAS,虚拟隧道创建成功。

图1:QuickConnect的打洞机制


对于打洞的有关技术,可以自行google:TCP 打洞

一旦虚拟隧道建立成功,远程客户端可以使用此连接直接与NAS通信而不需要网络中继。

QuickConnect中继服务
在 不能创建虚拟隧道的情况下,数据传输可以通过中继服务来进行。当流量转发时,它到达目的地之前要经过Synology的中继服务器。相比直接连接或 Quickconnect打洞来说,中继需要更多的时间,Quickconnect中继服务充当数据到NAS与客户端之间传输的最后一个选择。
如果打洞无法创建一个连接,客户端会做最后一次尝试连接,通过创建使用Quickconnect中继服务的虚拟网络隧道。该服务工作如下:
1.要启动中继服务,客户端会发送一个请求到Quickconnect服务器。
2.Quickconnect服务器将通知NAS创建NAS和中继服务器之间的虚拟通道。
3.中继服务器分配一个端口,所有通往这个端口的网络流量被重定向到之前建立的虚拟隧道,然后通往NAS。
4.一旦中继服务器准备就绪,Quickconnect服务器将回复中继信息给客户端。
5.客户端现在能够经由中继与NAS进行通信。

图2:Quickconnect中继服务



群晖 nas 有些什么基本和好玩的功能?
https://www.zhihu.com/question/31480960
没有公网IP的用户来说,利用QuickConnect实现内网穿透是最简单方便的方案。
当然QuickConnect也并非完美,由于使用的群晖集中的中转服务,连接的速率稍微会慢一些。所以如果你是拥有公网IP的用户,最好的远程体验还是通过DDNS+端口转发来实现。

(PS:风险提示,目前有不少地区对通过DDNS解析的个人网站加大了查处力度,所以有一定风险。比较安全的方式还是使用群辉的QuickConnect服务进行穿透访问,或者进行正规的网站备案,一定要合法使用)
目前家用宽带只有中国电信能够提供公网IP,所以你必须是中国电信的宽带。之后请拨打10000投诉吧,说有监控需求,必须使用公网IP。稍等1天就可以获取了。


▼获取公网IP后,接下来我们要买一个域名,比如在DnsPod购买一个.press域名第一年只要10元。务必实名制购买域名!要不开不了网站备案,DDNS解析也会有问题。务必实名制购买域名!务必实名制购买域名!务必实名制购买域名!


  • 查看公网 IP方法
  • 如果你是光猫/路由器拔号上网的,直接从步骤4看起。
    如果你是用电脑拔号上网的,则按下快捷键:win + r , 在运行窗口输入:cmd  ,回车。

    2

  • 在dos窗口中输入如下命令: ipconfig


  • 3

    ipv4地址后面的数字为你的ip地址

    4

  • 如果你是光猫/路由器拔号上网的,则登入光猫/路由器管理界面,找到wan口状态信息,查看IP地址。
  • 5

    然后打开百度,搜索:ip
    如果百度显示的IP与上面获得的IP地址相同,则你的宽带IP是公网IP。
    反之,则是内网IP。
    例:使用电脑拔号上网的,获得的IP是12.13.14.15,与百度显示的IP一致,所以这台电脑获得的是公网IP。
    使用光猫/路由器拔号上网的,获得的IP是10.201.12.61,与百度显示的IP不一致,则是内网IP。

2、私人云盘的搭建
NAS最主要的功能就是私人的云盘服务,我们可以通过多种方式来实现外网访问内网的云服务。如无需设置的Web访问;也可以通过群晖的适配软件实现自动同步;或是远程挂载WebDAV服务或FTP服务;VPN直连等方式来实现。


(2)WebDAV远程挂载
关于远程挂载磁盘,楼主推荐使用WebDAV的方式进行挂载。WebDAV的方式比FTP更具有优势,安全性也要稍微高一些。

▼首先我们需要在群晖应用中心安装WebDAV服务器。
▼如下图对WebDAV进行设置。端口号请自行修改。一定要在路由器端做好端口映射!!!一定要在路由器端做好端口映射!!!一定要在路由器端做好端口映射!!!
▼之后就是win10电脑端的设置了,首先开启WebDAV服务,通过搜索打开“服务”应用
▼定位到WebDAV服务位置,并开启服务。开启后先不要关闭界面,之后我们需要在这里重启下WebDAV服务
▼打开注册表,我们需要修改个数值:定位到

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebClient\Parameters

把BasicAuthLevel 值改成2,使win10支持http的连接方式。
▼我们还需要回到刚才的界面,点击停止后,再点击启动,重启下WebDAV服务
▼在我的电脑中开始远程映射网盘
▼这个位置填写我们之前域名+端口,请按下图格式填写。
▼之后的步骤,全部下一步,没什么难点
▼可以看到,在公司顺利远程挂载了家中群晖的磁盘
PS:关于WebDAV远程挂载我们还可以使用一个神奇的软件【RaiDrive】来实现,在win10端使用这个软件挂载更加的方便,而且体验还有进一步的提升。


回复

使用道具 举报

1214

主题

1975

帖子

7486

积分

认证用户组

Rank: 5Rank: 5

积分
7486
 楼主| 发表于 2022-3-19 11:13:42 | 显示全部楼层
WebClient 服务允许 Win32 应用程序访问Internet中的文档。 该服务扩展了 Windows的网络功能; 它允许标准 Win 32 应用程序通过使用 WebDAV(一种通过 XML 描述的文件访问协议) 来创建、读取和写入 Internet 文件服务器上的文件,并使用 HTTP 进行通信。因为它使用标准的 HTTP,WebDAV 可在现有 Internet 基础结构上运行,如防火墙和路由器。
回复 支持 反对

使用道具 举报

1214

主题

1975

帖子

7486

积分

认证用户组

Rank: 5Rank: 5

积分
7486
 楼主| 发表于 2022-3-21 11:17:02 | 显示全部楼层
https://www.shangmayuan.com/a/5b78f7a51b594b89bc4e8b0f.html
在 2016 年我拥有了第一台 NAS —— 群晖的 DS215J,其实在以后的很长一段时间其实并无派上多大用场,由于个人数据并很少,大都存储在云端,更多的是体验一下 NAS 的功能和工做流。ios
直到最近我才开始真正地将 NAS 利用上,因而准备升级一下,但考虑到群晖的性价比实在过低,再加上去年配置 Linux 软路由让我对基于「原生 Linux」的开源解决方案信心和兴趣大增,因而准备本身 DIY 一台 NAS,计划解决将来十年的存储需求。git
我依然选择了我最熟悉的 Ubuntu 做为操做系统、Ansible 做为配置管理工具,所以这个 NAS 的大部分配置均可以在个人 GitHub 上找到。github
注意这个仓库中的 Ansible 配置仅供参考,不建议直接运行,由于我在编写这些配置时并未充分考虑兼容性和可移植性。docker
文件系统
对于一台 NAS 来讲最重要的固然是文件系统,不须要太多调研就能够找到 ZFS —— 多是目前在数据可靠性上下功夫最多的单机文件系统了,因而个人整个选型就围绕 ZFS 展开了。shell
ZFS 既是文件系统,同时又是阵列(RAID)管理器,这为它带来了一些其余文件系统难以提供的能力:数据库
  • ZFS 为每一个块都存储了校验和,同时会按期扫描整个硬盘,从 RAID 中的其余硬盘修复意外损坏的数据(如宇宙射线致使的比特翻转)。
  • 在 RAID 的基础上能够 指定某些目录以更多的份数冗余存储,对于重要的数据即便损坏的硬盘超过了 RAID 方案的限制,依然有可能找回。
ZFS 还支持数据加密、压缩和去重,这三项功能以一种巧妙的顺序工做,并不会互相冲突,同时这些全部选项均可以设置在目录(dataset)级别、能够随时更改(只对新数据生效)。浏览器
ZFS 固然也支持快照,快照能够被导出为二进制流,被存储到任何地方。这个功能可让你在不丢失任何元信息的状况下对 ZFS 的文件系统进行备份、传输和恢复。缓存

回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|Archiver|手机版|小黑屋|firemail ( 粤ICP备15085507号-1 )

GMT+8, 2024-3-29 21:03 , Processed in 0.060168 second(s), 19 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表