Ubuntu Server(二)

Ubuntu Server作家庭NAS及服务器(二)

  在之前的博客中,提到收了一台蜗牛星际,安装Ubuntu 18.04 LTS作为家用NAS及服务器,这篇博客主要是对整体情况做一下概括,讲讲我主要在上面实现了哪些功能,以及目前看来的使用情况。


特别要强调的是,蜗牛星际曾是一台矿机,加上他采用的硬件多数为山寨货,无论成色如何,并不建议把他真的作为家用的NAS来存放重要数据(照片、文件、视频等),尤其是用它来带3个及以上的3.5寸硬盘。归根结底还是要做好文件备份工作,蜗牛只是作为试水的工具。

  首先,作为一个NAS,我觉得他需要有的功能应该具备以下几点:

  1. 离线下载
  2. 文件同步
  3. 海报墙
  4. 远程访问

实现的功能

  为了实现离线下载,我采用了在之前倒腾树莓派时候就用过的软件aria2,配合AriaNG可以实现所有平台的设备只要有浏览器就可以进行下载的管理。 aria2_win

AriaNG电脑端

aria2_phone

AriaNG手机端

同时,由于之前在国内彻底被扼杀的同步软件Resilio sync(原名BT sync) 在国内目前又可以部分连接,所以也安装了Resilio sync,配合神key的使用在追剧的时候不要太爽。 resilio_sync

Resilio Sync

  文件同步的话,有很多协议可以采用,最广泛的无疑还是Samba协议,当然,得益于Linux良好的系统特性,其他协议想要支持也是信手拈来。

  海报墙的话,因为蜗牛的性能也基本上限制了他的转码水平,海报墙更多的还是停留在看看的阶段。这里我用了Plex来刮削整理电影和剧集。同时,Plex自身就带有DLNA功能,开启后可以在其他设备上访问到Plex的播放列表。 Plex

Plex界面

  因为这是放在宿舍,没有专线宽带,毫无疑问需要DDNS,同时因为移动大内网,IPv4的公网访问直接就不想了,万幸南京移动已经部署了公网IPv6,而且三大运营商的4g网络也已经分配IPv6了,学校的wifi也在这学期上了IPv6,所以,整体的公网访问没有什么大碍,后面具体再谈谈实际体验。 home_ipv6

IPv6远程访问


实现方法

  下面简单介绍如何实现上述的几个功能。

离线下载

因为一开始折腾的时候,对docker还只是听说过,并没有真正使用过,所以对于aria2的使用还是直接安装在系统里。aria2官网提供了比较详细的下载、安装和使用教程。当然,对于像我这种小白,可以采用逗比大佬的一键脚本

wget -N --no-check-certificate https://raw.githubusercontent.com/ToyoDAdoubiBackup/doubi/master/aria2.sh && chmod +x aria2.sh && bash aria2.sh

根据提示一步一步即可完成安装。

这只是aria2后台的安装,要实现web界面管理还需要安装AriaNG来实现。 我采用的是Apache2作为web服务器,将AriaNG放到web服务器所对应的文件夹,就可以通过直接访问对应的ip来管理aria2。然后在AriaNG设置中,填入ip地址和端口,以及RPC密钥即可连接到aria2后台服务。 AriaNG_setting

AriaNG设置界面

Resilio Sync

安装

Resilio Sync配合神key的使用对与追剧来说简直就是大杀器,类似于人人网的RSS下载,在添加key后可以自动同步更新的剧集,在应用pro版证书后,还可以进行选择性同步。

首先就是去Resilio Sync的帮助中心下载对应系统版本的.deb文件。下载完成后进入对应文件目录安装软件。

sudo dpkg -i <resilio-sync.deb>

然后进入/etc/resilio-sync/编辑config.json文件

{
    "storage_path" : "/var/lib/resilio-sync/",
    "pid_file" : "/var/run/resilio-sync/sync.pid",

    "webui" :
    {
        "listen" : "127.0.0.1:8888"
    }
}

其中listen字段中的8888定义了对应的端口,如果想要实现外网访问,可以设置端口转发(类似于webmin)来将端口转发到其他的端口来实现外网访问。

运行以下以下命令来启动软件

sudo systemctl start resilio-sync

最后要实现选择性同步,需要在软件中应用prolicence [详细的内容可以参考这个页面]。

神key的使用

Sync主界面依次点击[添加文件夹] - [输入密钥或链接],然后填入下面的Key即可: BCWHZRSLANR64CGPTXRE54ENNSIUE5SMO


文件同步

文件同步我采用的是Samba协议,值得一提的是ios13中[文件]应用增加了对Samba协议的支持。具体配置在这里就不展开了,可以参考我webmin那篇博客。


海报墙和远程访问的实现我都部署在docker上了,dockerweb管理采用了portainer

海报墙

  我采用的是Plex,通过docker部署后,在docker中将放有电影视频的目录添加到对应的volumn中。 portainer

docker中添加目录

Plex默认的端口是32400

ip:32400

访问后创建用户,最后就是添加目录到Plex中。 plex_doc

Plex中添加目录


远程访问

  我将DDNS也部署在docker中,采用的是sanjuss/aliyun-ddns,这是我使用过好几个后发现的对IPv6支持比较好的dockerddns

DDNS日志

docker中安装后,需要设置Env。[我用的是阿里云的DDNS] ddns_set

DDNS设置

AccessKey IDAccessKey Secret推荐使用子用户AccessKey(访问控制台RAM) 分配的权限。使用子用户AccessKey,请分配AliyunDNSReadOnlyAccess(只读访问云解析(DNS)的权限) 和AliyunDNSFullAccess(管理云解析(DNS)的权限) 这两个权限! 如果图省事,也可以使用全局AccessKey。 但此时泄露或者发布全局AccessKey是很危险的!!!

使用体验上来说,目前使用一直是没有问题的。在我需要访问的时候都是可以正常访问到的。

总结

我目前用蜗牛星际所实现的功能基本上就如上所述。

具体使用场景可以这么理解:在需要BT下载的时候可以使用AriaNG,如果是电影或者电视剧的话一般就先去神key看看有没有。如果有的话,我觉得Resilio Sync的下载速度通常更快一些。

我有一个旧盘,作为下载的缓冲盘,下载完成后,将资源再转移到专门存储对应类型文件的文件夹。Plex会自动刷新识别,识别不了或出错的时候再手动修正匹配。

电脑上通过将Samba共享的文件夹添加为一个网络位置[貌似这样可以较少硬盘唤醒次数],Potplayer直接播放。手机上ios端可以采用nPlayerInfuse(Infuse可以连接Plex);文件管理的话用自带的[文件]应用。

总结而言,我只是将它当作一个玩具,并不敢将重要的资料存储在上面。

最后看看整个系统的开机时间,上次关机是因为不小心拔错了线。

16:11:36 up 14 days,  2:20,  2 users,  load average: 0.23, 0.40, 0.41

2019-10-28 16:14 +0800