前言
近期我组建了一个小团队,但是是异地组建团队,线上办公第一个要解决的就是文件共享问题,尤其是碰到一些大文件传输的场景的时候,分布在每一个成员手机电脑里的文件要进行交互的话,成本实在是太高了,尤其是传输GB级别的文件的时候,QQ和微信都限制颇多。
最开始我也想过一些通用的方案,比如用百度网盘之类的服务,但是这个解决方案最大的问题是它的限制太多,并且文件安全性没有保障,我可不想我的文件被第三方随随便便扫描,并且上传下载其实不算太方便。如果我要想自己的文件共享不受限制,那么自建NAS才是第一选择。
所以我就入了威联通TS-464C2,4个3.5寸的盘位,2个Nvme固态的盘位,再加上免费的zerotier服务绕开公网的限制,基本上能满足团队大部分的文件交互需求。
共享思路
威联通的TS-464C2,四核四线程的 N5095,支持自己换内存,四SATA 3.5寸盘位,双M.2盘位,最大支持18T的硬盘,也就是说我插满的话,能做到18TX4=72T的机械盘容量,再加上两条2T的M.2的盘的容量,一共是72+4=76T的容量。
硬盘上我最终选择了2块16TB东芝N300系列的NAS硬盘,主要原因是在各个品牌的NAS盘里面,它的性价比最高,而且质量极其扎实。东芝品牌的东西质量一直都不错。
我手中的这两块硬盘是氦气盘,转速是7200rpm的,所以它的读写速度很不错,拥有与企业盘一致的连续读写性能。它的年写入量高达180TB,提供最高512MB的数据缓冲区,平均无故障时间为 120 万小时。
另外值得一提的是,N300硬盘搭载了RV传感器与东芝先进的 Stable Platter Technology(稳定盘片技术),它们可以检测多盘位NAS系统中的旋转振动效应并且将其最小化,让硬盘内部的盘片更加稳定,从而增强扇区追踪能力,提高读写性能。
我准备拿东芝N300来存储一些冷数据,至于M.2盘位支持PCIe3.0的协议,能完美发挥固态硬盘高速读写的优势,再加上四核四线程的 N5095,跑docker与虚拟机服务是再适合不过了,并且固态硬盘通电不读写就不消耗寿命的特性,其实更适合把它当下载盘用。
固态当下载盘那个固态我也是有考虑的,我自己的网络下载速度都突破2000M了,再加上我内网都是全2.5G网络接口,所以机械硬盘根本没办法长时间支撑我这个下载速率。
刚好,反正PCIe3.0协议支持下的M.2接口的固态硬盘3500MB/s的读写速率应对这个172MB/s的下载速率完全是洒洒水。这个下载速率完全可以把我两个2.5G有线网接口全部利用起来。
TS-464C2也没有白浪费这个M.2部分的大空间,它跟着机器送了俩固态散热,像我如果把它当下载盘的话,有这样强大的散热片加持之下,硬盘的稳定性与寿命表现会更好。
接口还是熟悉的双2.5G有线网接口,一个USB-A3.2接口,一个USB-A接口,一个HDMI接口,以及一个通用的DC电源接口。
TS-464C2整体造型部分还是挺好看的,因为带一个HDMI接口,所以也可以放在电视机面前当视频输出源使用。
原生内存部分是给的8G DDR4 内存,考虑到现在内存条价格这么便宜,我完全可以买两条32G的内存条加上去把它升级成64G内存的NAS。不过464C2的官网上说最大支持32G的内存。64G的内存加上NAS本身就很稳定,足够我稳稳当当跑一年的服务都不关机了。
TS-464C2这次给了专用的硬盘锁,防止手贱的人突然把我的硬盘拆掉。这也是威联通第一次在普通消费级NAS上给到这个配置。对于我这样的想把NAS扔在异地半年一年都不管的人来说是最棒的,因为这样能极大地降低硬盘突然被抽出的风险。
16.2cmx17cmx2cm的三维尺寸,可以让464C2放在各个位置都能完美适配。并且这个外观配色无论是放家里还是放公司,都不会显得太突兀。
文件交互性能测试
在组建完NAS和虚拟内网之后,我们就可以愉快地在虚拟内网环境下对各个设备进行互访管理了。
最基础的:输入我NAS的内网地址,我就能在外网环境下管理我的NAS服务了,以及把我的NAS硬盘映射成Windows的本地硬盘。
比如我在办公室的电脑上映射的我放在家里的那台TS-464C2的硬盘,实现本地化管理异地硬盘。
有了虚拟局域网之后,就能完成异地远程办公室主机和家里的主机互访了,只需要点开Windows自带的远程桌面,然后输入虚拟内网地址,再点一下连接,然后就可以啦。
我的外部网络接入是一条1000Mbps的网,一条500Mbps对等的网,搞了个双WAN聚合,所以入户下载速率是1500Mbps,算余量的话有2000Mbps,上传速率是539Mbps。双线路聚合可以让它更快更稳定。
现在的我,内网全2.5G协议速率,外网有500Mbps的上传,这个上传基本可以满足我全速备份文件和下载文件的需求了,但是也意味着我的内网设备要升级到顶配以便于适配高速网络。
目前我的外网的下载速度可以突破172MB/s,外网的下载和上传速度都拉满。
整体来说内网和外网基本上属于同一个速度档次。
请注意,这个网速不仅仅是有线网可以达到,在华硕RT-BE88UWiFi7路由器的支持下,无线设备也能达到这个速率。
首先是我的威联通TS-464C2的两个2.5G接口终于都接入了2.5G有线网接口,并且还是全双工的工作模式。
我用我台式机自带的2.5G有线接口接入到华硕RT-BE88U的2.5G口之后,可以稳稳当当把我威联通TS-464C2上的文件以254MByte/s的速率转到我的电脑上。
而上我10G电口之后,从威联通TS-464C2上扒拉大文件到本地的时候,能稳定跑到700MByte/s的速度,也就是5Gbps的速度。
其实这就是双2.5G有线网接口的好处了,我一个10G速率的单电口去跑两个2.5G网口,完全可以胜任。
俩2.5G接口开动态链路聚合,就可以直接汇聚成5Gbps的速率,进一步提升设备的吞吐量。
用Linux虚拟主机的命令行直通这张网卡测试了一下速度,内网的NAS当服务端,本机当客户端。
用pkg install iperf3来安装iperf3软件包,协议还是走TCP协议,
测试出来的结果还不错!网速能到9.28Gbit/sec,但是还没有达到10G的速度。这是什么原因?
我排查出来是网卡设定中,MTU是1500,也就是一个IP包大小是1500,对于10G网络来说,包太小,意味着相同数据量,包的数量多,每个包的头部数据将消耗大量的网络带宽。
要达到完美的10G速率的话,可以把MTU设置成9000。
TCP的收发窗口过了之后,就稳定在9.90Gbits/sec了。
相对于我之前内网上的千兆网的110Mbyte/s来说,10G网卡的理论速度是1GByte/s,相同文件传输情况下,能直接把传输时间压缩到原来的十分之一。
当然,我实际测试了一下把整个虚拟机打包传到内网的NAS上,平均速度能做到525Mbyte/s,这已经是相当棒的一个成绩了,毕竟我NAS上机械硬盘的实际写入速度也就只有125Mbyte/s,能有525Mbyte/s的速度,全靠我NAS上的nvme固态当中转盘。
免费zerotier虚拟内网方案
1.zerotier远程管理配置
Zerotier账号是用于组件虚拟局域网的,腾讯云轻主机是用于用于自建Zerotier的moon服务器,也能白搞一个公网IP,其余的设备都要保证正常联网使用。
2.zerotier账号注册与配置踩坑
Zerotier设置与问题解决部分:
ZeroTier 这一类 P2P VPN 是在互联网的基础上将自己的所有设备组成一个私有的网络,可以理解为互联网连接的局域网。最常见的场景就是在公司可以用手机直接访问家里的 NAS,而且是点对点直连,数据传输并不经由第三方服务器中转。所以安全性非常有保障。
Zerotier 在多设备之间建立了一个 Peer to Peer VPN(P2PVPN) 连接,如:在笔记本电脑、台式机、嵌入式设备、云资源和应用。这些设备只需要通过 ZeroTier One ( ZeroTier 的客户端) 在不同设备之间建立直接连接,即使它们位于 NAT 之后。连接到虚拟 LAN 的任何计算机和设备通常通过 NAT 或路由器设备与 Internet 连接,ZeroTier One 使用 STUN 和隧道来建立 NAT 后设备之间的 VPN 直连。简单一点说,Zerotier 就是通过 P2P 等方式实现形如交换机或路由器上 LAN 设备的内网互联。
第一步是注册Zerotier的账号。
这个是邮箱注册,注册完之后免费使用设备数量是50个,对于99%的人来说是够了。毕竟我这样的手里常年一大堆电子设备的人,能同时使用的路由器加电脑加起来也不超过十台。
第二步:登录和创建网络
注册完之后就直接登录网站,按照下面的指示创建网络就行。我是把我的网络名能用中文就用中文,这样看起来方便一点。
创建网络:创建一个新的网络之后,我们得到一个 Network ID,这个在后面的设备连接时需要用到,点击刚刚创建的网络我们可以设置更多选项。默认的设置就可以用了,右边 IPv4 的设置就是分配设备内网 IP 网段,其他的设置可以在 Setting help 里看到说明,不了解的不建议乱设置,如果不小心把自己的网络暴露在外部,会相当危险。
第三步:把手里的设备加入这个网络。
我现在手里的设备都是Windows10设备,所以在他们主页上下载相应的平台安装包就行,安装包后缀是msi结尾。
下载之后双击安装,一直按next直到它安装成功。
装成功之后,你的任务栏部分会出现一个Zerotier的图标,右键点一下鼠标,选择join Network。
有了这个窗口之后,我们再打开我们前面已经登录了的zerotier页面,然后在Network标签下可以看到我们创建的网络的基本信息,我给我的网络取的名字是“家庭内网”,我们要把我用椭圆部分圈出来的一串代码,也就是NETWORK ID下面的一串代码,复制,然后粘贴到上一步Join a Network弹出来的窗口中,我建议把所有的都勾选上,以免遗漏。
然后你的几台电脑都加入我创建的“家庭内网”之后,我们还需要进这个网络后台把这些设备的权限都打开。就点这个NODES,然后它会自动跳转到“家庭内网”的后台管理页面。
然后往下拉页面,就会看到自己的设备,我现在的设备都是Auth下面打勾了,代表这些设备被授权了,如果没打勾,就代表这个设备加入了你的网络,但是不能访问你的网络。
要着重关注的是Managed IPs下面的IP地址,这个地址就代表了你现在设备在Zerotier的“家庭网络”里面的虚拟IP地址,旁边的Last Seen下面代表你这个设备现在的在线状态,比如我现在手里的两台设备都在线,显示的就是ONLINE。
到这一步之后,就可以进行下一步了。
我上面的设备中,SurfaceBook1-7是发起端,地址是192.168.192.190,也就是我平时拿着在外面跑的笔记本,MacAir是接收端,地址是192.168.192.97,也就是我平时扔在家里当服务器的笔记本。
一直到这一步都是很顺畅的,但是之后可能会有人出现新的问题,那就是我从SurfaceBook1-7上访问MacAir的时候会显示连接失败。死活找不到解决方案。
因此,建议在拿到两个设备的“家庭内网”IP地址之后,先在CMD命令行窗口Ping一下地址,看能不能Ping通,如果能Ping通的话就走下一步RDP连接部分,如果不能Ping通的话,建议看看后面我是怎么解决的:
现在我查到的解决方案是一个大佬写的:问题的关键在新建的Zerotier网络虽提供了一组 Flow Rules 流控规则,初次启动时却不会自动应用。
就是在Flow Rules最后一行加一个空格,然后保存就行。这就让Rules启用了。
问题的原因是:
所以我也是采用了这个解决方案之后,就顺利解决了我zerotier网络下各个设备不互通的问题。
3.NAS与Windows设备加入Moon服务器踩坑
按道理来说,在Windows和NAS设备上装了Zerotier之后,再去加入Moon服务,也就是说执行了zerotier-cli orbit 0000000xxxxxxxx 0000000xxxxxxxx这个命令行之后,它就会自动加入Moon服务器,你就有自己的中转服务器了。
如果你一直获取不了moon服务器的地址,比如这样:
中间MOON结尾的图并没有完美获取公网IP地址,
如果加成功的话,应该是这样的。
出现获取不了地址的原因,我排查出来有几个解决方案:
1.就是9993端口的问题,首先确认自己的9993端口是否开放。
2.是自己zerotier客户端设置问题:
打开zerotier客户端,点击“show networks…”,如下:
再把下图红框中的几个对勾打上,重启服务"ZeroTier One"和客户端。就会发现现在可以连接上moon了。
zerotier打洞使用p2p传输
其实zerotier是支持p2p打洞流量传输的,并不是自建了moon所有流量就经过moon服务器中转的,如图这是我从我电信宽带的设备远程连接到移动宽带内网的设备,在移动宽带内网的设备的带宽统计截图:
稍微有点惊喜的是,我腾讯云公网服务器带宽是5M,经过zerotier打洞之后使用p2p协议,两台设备之间的带宽可以达到10M,不知道是不是能达到其中一方的带宽上传上线。
付费的向日葵虚拟内网方案
相对于免费的Zerotier来说,买这个蒲公英X5Pro路由器可能价格上确实要耗费一点(一顿饭钱),但是问题在于,蒲公英X5Pro路由器体验比Zerotier好很多。因为我之前折腾Zerotier的时候,还找了很多教程,还改了Zerotier的脚本之后才成功运行起来,但是蒲公英X5Pro路由器就只需要我下载注册安装,就能快速开始了。
哦对了,蒲公英X5Pro路由器还有一个最大的优势,那就是它对设备数好像是没有限制的。蒲公英X5Pro路由器设备端是被限制到3个以内,但是下面的使用端没有限制,而使用端之间的互访也没有限制。所以相对于Zerotier限制一百个设备的情况,花个一顿饭钱买个蒲公英X5Pro路由器当虚拟网络核心节点,还能享受国产软件的贴心服务,这可比我辛辛苦苦折腾网络好多了。
访问走转发的前提下,免费版本的带宽是受限的,速率上肯定比不过我升级之后动不动就千兆上下行对等的宽带。不过免费版的服务能流畅用我就已经很满意了!
相对于Zerotier对网络还有要求,蒲公英X5Pro路由器这个不看网络就能自建虚拟网络的机子是真的炫酷,完美适配多种使用环境。
而且,这样的虚拟网络还有一个好处就是,我们能尽最大可能保证安全性。因为如果我自己申请一个公网IP做路由器的远程登陆端口的话,我肯定是要在防入侵方面花心思。而现在用蒲公英X5Pro路由器的虚拟网络之后,我只需要简简单单的登录设置一下就能进行远程登陆,如果没有登录,即使是别人知道我的IP地址也没用,因为加入这个虚拟网络需要我授权。
蒲公英X5Pro路由器虽然主打的是异地组网,但是它实际的硬件性能也还是很强悍,给了一个2.5Gbps的接口,支持双WAN功能,支持WiFi6,无线网规格是AX3000。
双WAN口目前来说是越来越重要了,牵两条宽带做汇聚接在同一个路由器上,能实现主副线路实时备用切换,以防某一条线路挂掉的时候整个网络就挂掉的情况发生。
2.5G接口是单独用蓝颜色标注出来的接口,接上之后协商2.5G速率的时候会在系统里面也显示2.5G的协商速率。
我这个2.5G是接在交换机上扩展接口用的。
前两天我在北京大兴机场,飞机延误了,所以我得当场处理一些事情和文件,但是我手里的Thinkpad X1 Carbon没有与事情相关的文件,还好我在出来之前换了蒲公英X5Pro,我直接手机开热点,用Windows自带的Remote Desktop远程登陆了我放在蒲公英X5Pro下面的台式机处理完了这些事情。
不得不说大兴机场的网络信号还是相当棒的,iPhone加联通的天菜组合,居然就能把5G搞到500Mbps的速率,上传也能做到100Mbps。
有一说一,团队内部还是老老实实用ThinkPad系列带LTE或者5G NR的笔记本,全时互联的概念就比较适合商务场合。
这次要不是因为我笔记本自带的LTE速率太慢,我是完全不会想着手机开热点的。
而且我看有老哥更直接,买了好几台蒲公英的路由器做异地组网,让合肥和杭州的设备融合成一个虚拟局域网,杭州的人连上杭州的蒲公英X5Pro路由器之后,不仅可以无障碍访问挂在杭州蒲公英X5Pro路由器下的设备,也能无障碍访问挂在合肥蒲公英X5Pro路由器的设备。
这样的话,小团队内部的一些异地办公室设备就可以无障碍相互调用访问了,比如在杭州的人直接调用合肥的打印机打印文件,在合肥的人直接调用杭州的NAS上面的文件。
结语
其实现在有了威联通的TS-464C2之后,一方面我可以简化机柜里的设备数量,尽量用一套插头来解决两个问题,另一方面我也可以尝试不同的虚拟系统,比如建立一个网心云来帮我回收电费,做个win7的虚拟机让它7x24h跑一些脚本服务,做一个高恪或者LEDE的虚拟机联动路由器系统实现软路由功能。
要知道,一个软路由价格都一两千了,还没有自主增加内存的可能性,NAS里面跑一个openwrt反倒是能自己加内存条,也能自己加硬盘,也能充分发挥NAS设备的稳定性优势。
人啊,随着年岁的增长,对花钱节约时间这件事是越看越重。以前如果我的虚拟网络挂了,我可能还会自己折腾设置一个转发服务器,尽量用时间节约钱。诚然,这样带来的乐趣是无穷的,也让我学到了很多东西。
不过现在单位时间赚的钱越来越多,手里的事情越来越多,我就很难再去折腾那些细枝末节的技术性问题了,把专业的事情交给专业的人来处理,然后我去帮别人解决他们解决不了的问题,这岂不是美滋滋?
目前来说,我对威联通NAS的使用体验还是很满意的,在我不需要对软硬件做任何修改的前提下,我只需要把我每一台机器上都装一个虚拟局域网,整个团队内部就可以无障碍实现不受限的文件共享服务,这实在是太香了。