最便宜的个人网盘搭建:利用NAT存储型VPS搭建NextCloud网盘

发布于 2020-02-08  230 次阅读


个人数据的存储对于大多数人来说一直是一个痛点——在这个信息化的时代,我们每时每刻都在产生大量的数据,其中的某些数据对我们极为重要,例如照片,视频等等。然而百度网盘近几年来对于某些内容的大面积清洗以及频繁出现的百度云泄露事件让人不敢再把过于私密的东西放在公有云上;即使是如同iCloud这样的理论安全较好的云存储,也面临着只支持特定平台的问题,无法便捷地在家人中或者桌面设备与移动设备中同步;而在家里搭建NAS虽然安全,但也面临着价格昂贵、外网访问困难,无法实现时刻链接的问题。就在最近,博主找到了一个搭建个人网盘的极佳选择——在NAT存储型VPS上搭建NextCloud并使用Cloudflare CDN实现直接访问。

一、需求

在开始之前,让我们来整理一下我们的需求:

  1. 容量足够。需要个人网盘服务的大多数人都有一个共同的特点,他们需要存储的数据足够多,手机、电脑等设备不能完全存放。这就要求我们选择的服务器有一个大硬盘。
  2. 足够便宜。大部分普通人都是对价格比较敏感的,自建个人网盘的费用应当与公有云存储的费用接近,甚至更加便宜。
  3. 足够安全。数据无价,很多人保存的数据里总有那么一些私货——你肯定不想让别人看见,但也不想轻易就被删掉。这就需要我们选择的软件足够安全,而且数据不会被被动删除。
  4. 支持多平台与多人共享。一个个人网盘要是只有你一个人用,那就太浪费服务器了。要能支撑你的家庭几个人一起使用,而且既能在电脑上用也能在手机上用,还能共享文件,那才是个人网盘的精髓。
  5. 良好的可访问性。个人网盘还有一个功能就是可以实现文件同步。类似于Onedrive,你可以在任意台设备上保证文件的一致性,这对于经常切换办公设备的人来说简直是必不可少的。而这个功能的前提就是可访问性,不仅仅只能在家里使用或者一个国家内部用,得全球都能用。

对这些问题,我打算用以下方法来解决:

  1. 选择大容量NAT VPS,500G硬盘仅需20元每月(使用优惠码后 ),1T只要33.6元每月,绝对超值。(以iCloud举例,200G版本每月21元,2T版本每月62元,而且限制多多。)
  2. 使用开源的NextCloud作为网盘软件,安全性高,对于多平台和多用户支持好;且因为搭建在私有服务器上,数据安全有保障。
  3. 利用Cloudflare作为CDN,全球访问有保障。就国内体验来说,上传速度可达2M/s,下载速度可达1M/s。(联通网络)

二、服务器准备

如果想要在互联网上搭建可公开访问的应用,一台服务器是必需品。因为我们要搭建私人网盘,在这里推荐使用硬盘较大的服务器。

要在这里说明的是,尽管本文的题目特别指出了NAT VPS,但搭建并不必须要这种服务器。普通的VPS、云服务器、独立服务器、大容量虚拟主机等等都可以用来搭建。特别是容量需求大的用户,可以考虑使用大容量的独立服务器,有时候4T的存储只要五六十元一月。(具体厂家请谷歌。)搭建的过程或许会因为环境的区别而有些不同,但主要方法都是一致的。本文以我选择的NAT VPS作为例子来讲解。

什么是NAT VPS?

简单地说,就是很多台服务器共用一个公网ipv4地址,利用端口转发来访问,从而节省成本来降低价格。因为现在国际上ipv4地址已经耗尽,单个ip价格较高,所以导致一些服务商想出了这种办法。这种服务器的缺点就是,没有办法通过常用的80、443端口来访问,对于做站就不是很方便。(当然,现在很多都会配上独立的ipv6地址,也可以使用CDN反代来做站,本文就会采用这种办法。

首先需要注册服务器提供商的账号,通过这个链接来进行注册:https://www.cloudraft.cn/aff.php?aff=111。随后,前往服务器购买页面:https://www.cloudraft.cn/cart.php?gid=20。在此页面里,选择你所想要的服务器规格,容量根据自己的需求选择,其他的规格,如果你不是重度使用者的话, 个人觉得1核1G就可以了。

然后点击立即订购,在下一页中的操作系统一栏中选择Ubuntu系统,这有助于下一步软件包的安装。

点击“继续”,在付款页面右方的优惠码一栏中输入 59UQLYE9M0 ,并点击“✔“。然后勾选服务条款,点击”完成订购“并进行支付。

之后便可以在产品中心看见你所购买的服务器了。(我因为是较早购买的,所以买的是小容量版本,不过现在已经没有了。) 同时也有一封邮件寄给你,里面包含了几个极为重要的信息,分别是:主IP、Root密码、IP地址分配。请一定不要删除这封邮件!Root密码是用来登录你的服务器的!IP地址分配是分配给你的服务器的ipv6地址,而主IP是用来计算你的端口转发的(注意不是真正的IP地址,只是用来设置转发的!具体的计算规则会在后面讲到)。

因为NAT VPS的特殊性,我们需要做接下来的额外工作:

使用前请先阅读:https://www.cloudraft.cn/index.php?rp=/knowledgebase/5/KvmNat%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97.html

首先,我们需要找到关键的映射端口

打开:https://tools.cloudraft.cn/nat-port.php ,在里面输入刚才收到的邮件里的“主IP”,然后便可以看到端口映射的结果了。

在上图中我们可以看到五个端口映射结果,包括SSH端口22、网站访问端口80和443,以及两个自定义端口。

接下来就是使用SSH连上服务器。(使用root账户,密码就在刚才的邮件里。)如果你有公网ipv6地址,可以直接用邮件里给的公网ipv6连接;否则就使用上图中的外网链接地址,并将SSH端口修改为映射后的端口进行连接。(不会使用SSH的朋友可以看这边https://www.cnblogs.com/yuwentao/archive/2013/01/06/2846953.html )

三、软件安装

服务器准备好之后,下一步便是安装NextCloud了。这里我打算使用snap进行安装。

Snappy是一个软件部署软件包管理系统,最早由Canonical公司为了Ubuntu移动电话操作系统而设计和构建。其包称为“snap”,工具名为“snapd”,可在多种Linux发行版上运行,完成发行上游主导的软件部署。该系统的设计面向手机、云、物联网台式机

——Wikipedia

为什么我们会使用snap?因为snap有一个让人无法拒绝的优点:方便。我之前在安装NextCloud的时候尝试了各种安装方法,包括下载源文件安装和使用PHP脚本安装,但最终都出现了各种各样的问题。而且即使不出现问题,需要对PHP做的调整也不少,包括对于上传文件大小的限制等等。而使用snap则可以完全避免这些,所需的环境全都被打包起来,参数也调到了通用情况下最优的数值,仅需3行代码便可安装完成。几个很少的缺点大概就是安装出的NextCloud版本可能较旧,以及因为在沙箱中运行所以无法挂载外置硬盘。所以,使用snap安装是对懒得折腾的用户的最优解。(如果想自己折腾的可以去尝试一下其他安装方法~)

使用以下代码便可进行安装:

安装snap

apt update
apt install snapd

安装NextCloud:

snap install nextcloud

安装完成之后,理论上就可以访问了。可以通过刚才查看端口转发时域名和80端口对应的映射端口进行访问。如果可以成功打开,便是搭建成功了。你可以在初始页面中设置管理员账号。甚至要求不高的用户以及可以通过域名+端口的设置直接使用了。

比如,如果我的服务器的80端口映射为11111端口,可以通过 nat-eu-3.cloudraft.cn:11111 进行访问。

四、域名与Cloudflare配置

我们虽然已经搭建好了NextCloud,并且也可以正常访问了,但还有几个问题没解决。一是现在只能用域名+端口号的形式访问,并不方便;二是国内直连欧洲的速度极不理想。为了解决这两个痛点,我们可以注册一个域名,然后将它解析到Cloudflare上,通过它家的CDN访问。

域名

如果你现在手里就有无关紧要且可以使用的域名,那就可以直接使用,如果你从未注册过域名,那我估计你也不愿意为了域名而付出太多。这里有两个选择,一是注册新顶级域,二是注册免费域名。前者大概每年只需要几元到十几元不等,去百度上随便搜域名注册就能找到他们。后者虽然免费,但毕竟不是自己拥有的,稳定性存疑,不过我曾经用过一年,没有出现问题。

这里提供一个免费域名注册商的网址,不想付费的朋友可以在这里注册:https://www.freenom.com/zh/freeandpaiddomains.html

Cloudflare

域名准备好之后,接下来便是解析到Cloudflare了。为什么选择Cloudflare?因为它家的服务免费又方便。

前往:https://www.cloudflare.com/zh-cn/ 进行注册,然后便有教程教你怎么一步步绑定域名。绑定好了之后设置一个AAAA记录到刚才邮件里给的ipv6上,并开启CDN。(千万不要设置A记录!NAT VPS 没有专用的ipv4。)然后打开你的域名,如果显示出你的网站页面,那便设置成功了。

如果还是不太明白的话,可以参考这篇文章:https://wzfou.com/ipv6-vps/#ftoc-heading-5

五、个人网盘的几个用途

到这一步,网盘的搭建就已经完成了。接下来是我认为的个人网盘的各种用途:

  • 备份手机、电脑文件。这估计是最常见的一种个人网盘使用方式了。现在大家的手机里都有数不清的照片和视频,多备份一次多安心一点。
  • 多地文件同步。如果经常在多个工作地点办公的人通常都会烦恼于各种工作文件的转移,特别是有不同的设备的时候更是如此。利用网盘客户端,你可以在单位和家里的电脑间对同步文件夹保持完全同步,这对于特定人群来说简直是福音。
  • 分享文件。有时候总有有了文件想要分享给别人的想法,对于互相认识且有社交软件的人还好,可以直接发送。但对于想要分享给陌生用户的文件,现有的方式就不太友好了。要么使用各种国内网盘——用户被限速加广告;要么直接放博客空间里——虚拟主机流量费不起。有了一个网盘之后,就可以直接把文件放上去分享,被CDN缓存以后,大文件下载的速度还是比国内网盘免费用户的体验好多了。
  • 作为NAS备份地。这在我觉得其实是一个比较小众的用法了。因为我对于数据的安全性比较在意,特别是对照片等极其重要的数据,更是要多地备份。我现在家里有一台群晖NAS,就想着把里面的照片等文件放上网盘备份。本来尝试的是微软家的OneDrive,但是很不幸的是,使用了新版群晖Drive套件之后就不能备份在OneDrive上了。于是便打算自建一个支持WebDav的网盘来备份,这也是我搭建这个网盘的初衷。

短短几个用途肯定没法体现于网盘的全部属性,如果各位朋友们有更多的用法,不妨在下面留言一起讨论~


这就是本文的全部内容了,希望对你自建网盘的过程能有一些微不足道的帮助~


忙碌的高三学子一枚~