搭建个人私人网盘云盘NAS应该选哪个协议:FTP,FTPS,SFTP,TFTP,HTTP(WEBDAV),HTTPS(WEBDAV),SMB
在国内普及IPv6之后,我第一件事情不是搭建个人网站,而是个人云盘,因为云盘的使用优先级比博客(个人网站)高,其次国内几年前动不动某某某网盘关闭,用别人的网盘非常不靠谱,自己建的才是最靠谱的。
没有接触过私人网盘的人可能很意外,有这么多协议可以搭建网盘。那么我选择什么协议搭建网盘呢?请听我细细分析。
FTP:这个是最古老的互联网协议了,而且可以运行在IPv6网络上,因为是应用层协议。这个不是我的选择。原因很简单,所有信息包括你一开始登陆的账号密码全部是明文在互联网上面传输,随便一个抓包软件就能获取你的账号密码,更不要说你的所有资料了。不过速度倒是非常快的。笔者在局域网环境测试过就她速度最快,个人见解。不喜勿喷。
FTPS:这个协议和https一样都是借助SSL实现加密通信,所以我也想过用她搭建网盘,不过很遗憾,不能完美实现。原因有二:第一,你得花钱申请SSL证书,当然去阿里云腾讯云也有免费的,基本上头一年都可以免费使用,或者用OpenSSL搞个自签名证书,搞OpenSSL就让新手头大了,更不要说为了避免中间人攻击把自签名证书添加到自己手机,电脑等各种终端设备信任列表上了。申请完证书还有部署到自己的FTPS服务器上面,不过IIS上面搞这个算是所有服务器软件中最简单的了,哪天有时间单独写个文章出来。apache上面就稍微复杂一点,倒不是真复杂,是apache的配置是Linux式的需要编辑配置文件来修改,没有windows图形化界面操作来的方便。第二,FTPS倒在了防火墙上面,当你部署好FTPS服务器在服务器电脑上测试时一切正常访问,但是去外网甚至局域网其他设备就是访问不了,因为默认的windows防火墙阻止外部设备访问,你在进站规则添加990端口打开都没有用,因为数据通道的端口是随机的,必须先限定端口范围。但是你把windows防火墙关闭,互联网和局域网全部都可以访问ftps服务器了。我不能牺牲了防火墙搞这个玩意,所以只能放弃。
SFTP:没错,我选的就是这个协议做私人网盘,而且使用的是密钥登陆,不用输密码还最安全。也不用关闭防火墙。最完美的选择。原因很多,列举几个:第一,基于SSH协议,而SSH已经普及了,不仅Linux是标配,windows10最新版也自带OpenSSL了,说明业界认可她。第二,个人最赞成密钥登陆方式的方便安全。其他优点后面想起来慢慢补充
TFTP:简单理解就是简化版FTP,FTP明文传输,TFTP就更不用考虑了。
HTTP(WEBDAV):不是好东西,首先http协议和FTP一样是明文传输,非常非常不安全,其次开启webdav屁事也多,各种问题,比如限制文件大小,限制文件类型,网上各种问题爆料比如有的网友说只能复制上传50MB以内的文件,都什么年代了搞这么多限制。再其次个人家庭宽带封锁80端口,国内三大电信运营商几乎全部把个人宽带80端口封了,你要能访问,需要改为其他不常用端口,那么你的网盘地址就不是www.bigstaripv6.xyz了(默认80端口隐藏了),而是www.bigstaripv6.xyz:10678(10678是你随意指定的没有被电信封锁的端口,网址端口不是默认80端口就必须显式指定)
HTTP:不开启webdav的http只能下载文件,不能修改上传删除文件,那这个网盘功能有缺陷。而且还是明文传输,不安全。
HTTPS(WEBDAV):这个玩意有了SSL加密特性,安全了,但是一样的开启webdav屁事也多,各种问题,比如限制文件大小,限制文件类型,网上各种问题爆料比如有的网友说只能复制上传50MB以内的文件,都什么年代了搞这么多限制。再其次个人家庭宽带封锁443端口,国内三大电信运营商几乎全部把个人宽带80端口封了,你要能访问,需要改为其他不常用端口,那么你的网盘地址就不是https:www.bigstaripv6.xyz了(默认443端口隐藏了),而是www.bigstaripv6.xyz:10679(10679是你随意指定的没有被电信封锁的端口,网址端口不是默认443端口就必须显式指定)
HTTPS:不开启webdav的https只能下载文件,不能修改上传删除文件,那这个网盘功能有缺陷。
SMB:这个协议被漏洞攻击的多,最有名的就是永恒之蓝漏洞攻击,因为这个漏洞,国内三大运营商几乎把smb的端口号全部封了,包括445。所以你在局域网访问一点问题没有,到了外网就是没办法访问,很多人折腾半天搞不懂,把windows防火墙关闭还是不行。很多人只能怀疑smb是不是只支持局域网共享。而smb服务器和客户端默认都不支持修改端口号,非常不适合新手,而且smb的性能真的不咋地,不同设备复制文件速度差异大。
本文在我的个人网站同步发布: