NAS服务器的搭建--软件篇

顺利装好机器,是时候试试它的威力了,开始折腾软件.


更新了下载方案。使用uBittorrent进行下载。


最近试了一种方案,即用 windows作为主机,用 docker 跑以下的诸多应用,在完美使用 Linux 上的各种工具的同时,还可以使用 windows 下丰富的应用,方便切换.


所有功能都建议使用 docker,方便在系统崩溃后重装

NAS软件功能

  • 外网访问。这么牛逼的东东,光在家用怎么行,必须要能在公网访问啊
  • 文件共享。如samba或者ftp
  • 下载。要支持远程下载,http下载有aria2,bt/pt下载有transmission
  • DLNA服务。可以在线看视频啦~
  • iTunes媒体共享
  • time machine等备份服务
  • 和百度云盘等公有云同步
  • 类似于Onedrive(强烈建议不要用百度云,很容易丢文件)等云盘的私有云服务

外网访问配置

根据是否有公网ip,可以采用不同的方案。
我用的是电信光纤,是有公网ip的,这个具体和运营商有关,可以打客服电话,说要装监控,需要外网访问,看他怎么说。

有公网Ip

这种方案需要做端口映射。
首先找电信改成桥接模式,或者让电信给一个能做端口映射的光猫。
然后在路由器上设置端口映射或DMZ。
现在已经可以在公网上访问本机了,但是每次拨号ip都会变,最好能有一个域名,能通过这个域名知道现在的ip–这个就是DDNS服务了,大部分人用的都是花生壳的。具体方式请自行google

没有公网ip

可以使用内网穿透。网上评价很差,不建议使用。具体使用方式请自行google

NAS软件方案

NAS服务器的软件,有几种方案:

  • 方案一:NAS裸机安装Windows,可在虚拟机中安装Linux,群晖,软路由。推荐。Windows对硬件兼容性好,驱动普遍支持,能无需配置充分发挥显卡性能,平时可做上网机,观影机,HTPC高清电视。
  • 方案二:NAS裸机安装Linux,可在虚拟机中安装Windows,群晖,软路由。技术宅推荐。Windows还是有些缺陷的,系统及某些流氓软件会莫名其妙唤醒全部硬盘。只要能驱动,Linux多媒体不是问题。没有迅雷下载有点问题,移植的也麻烦,可以在Win虚拟机里面迅雷。
  • 方案三:NAS裸机安装群晖,可在虚拟机中安装Windows,Linux,软路由。不推荐。NAS的显卡都浪费了。NAS中集成的功能当然做得很用户友好,非常方便。但是没有的功能很多需要自己编译源码,没有Linux发行版的软件仓库方便,很鸡肋。

注1:以上群晖都可以换成其他NAS操作系统。
注2:不推荐裸机安装NAS操作系统。

以上内容来自:搭建家庭 NAS 服务器有什么好方案?

NAS裸机安装Linux方案

选择NAS裸机安准Linux是因为我要跑脚本,用Linux会方便很多。同时,网上说的驱动问题我没有碰到,用最新版本的系统应该可以解决这个问题,毕竟Linux对Intel的支持还是很好的。我用的是Ubuntu 17.04.

对现有主流的NAS操作系统做了一个调研,发现NAS操作系统太重了,除openmeidavault外,都需要组Raid,对我而言没有必要。

其中,freenas和nas4free,都使用了ZFS文件系统,而ZFS文件系统依赖ECC内存,同时要求8G以上内存。
考虑以上原因,决定不上NAS操作系统。

类似于百度云等云盘的私有云服务

现在80/443端口都被封,出于安全考虑,不建议使用私有云。文件同步可能使用微软的 onedrive,速度快,更安全。

主流的方案有 owncloud和seafile。评测:
https://www.zhihu.com/question/46318905

试用之后发现 seafile挺好用的,有以下优点:

  • 文件以其实际格式存储,很安全,如果系统崩溃了也不怕
  • 基础功能稳定,速度挺快的
  • 有各种实用的工具,如果文件服务器上已经有大量文件了,可以直接导入到系统中,不需要重新上传
  • 扩展插件多,可以发挥想象力来做出各种功能

文件共享

  • ftp/sftp文件协议。使用不方便,pass
  • SMB协议。操作方便,速度很快,推荐使用。但是由于电信封了 SMB 协议的端口,所以可能内网访问。
  • 各种私有云方案如 Seafile 和 NextCloud。比较下来,两种系统比较相似,但最终还是选择了 NextCloud,因为 NextCloud 是把你上传的文件原样保存的,这样一是方便容灾,如果系统崩溃了,至少文件还在;二是可以导入本地文件,不用存多个备份。像我原来就有很多文件的情况下,就非常方便了,尤其是同时使用多种文件服务的时候。

下载

场景

主要用于电影、美剧等大资源下载。小文件直接在mac上就下好了。

方案

电影、电视一般用bt下载。主要考虑bt下载器。以前uTorrent比较多,但是近期看到一些它的负面新闻(如挖矿),同时不太稳定,于是换到qbittorrent。

实践

使用镜像 linuxserver/qbittorrent: https://hub.docker.com/r/linuxserver/qbittorrent

使用很简单,大部分直接参考教程即可。以下是我的docker-compose设置:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
version: '2'
services:
nas-qbittorrent:
restart: always
image: linuxserver/qbittorrent
container_name: nas-qbittorrent
ports:
- "7981:6881"
- "7981:6881/udp"
- "7980:7980"
volumes:
- ./config:/config
- /mount_device/data/donwloads:/downloads
environment:
- PGID=1000
- PUID=1000
# -e UMASK_SET=<022>
- WEBUI_PORT=7980
- TZ="Asia/Shanghai"

默认的WEBUI_PORT是8080,如果要改成其他的,需要把所有的8080全都改掉。否则不能工作

qbittorrent可以很简单做到外网访问,但是考虑到安全,我没有把它暴露到外网。反正下载得不多,直接外网操作就行了。如果要远程控制下载,可以使用rss订阅搞定。

DLNA服务

留坑待填~~

iTunes媒体共享

查下来,基本都是用 Vine 来模拟 windows,考虑到稳定性,没有意思。

time machine等备份服务

mac

  • Netatalk。它是AFP协议的开源实现
  • Avahi。它是Apple’s Zeroconf 协议的开源实现
    安装使用方式请自行百度。
     注意文件的权限,建议可以先设成777,等没问题后再恢复 

和Onedrive等公有云同步

电信封了 SMB、http、https 的端口,导致要在公网直接访问家里的文件,只能走修改端口后的 http 协议,比较不安全。而且受限于网速,访问速度十分不理想。

一种解决方案是把文件同步到公有文件服务上,如 Onedrive(强烈建议不要用百度云盘,一是容易被封号,导致文件丢失,而且限速很严重),我的30M 宽带下载能打满,一般家用是够了。

有人开发了 Linux 下Onedrive的客户端,使用十分方案,具体请访问 skilion/onedrive