DIY NAS系列03—附加功能

DIY NAS 搭建过程

此篇讲几个我给NAS添加的功能,用于实现NAS性能监控,远程操作和多媒体等功能

本文其他地址:自建NAS系列03——附加功能

功能

  • 开机启动服务
  • cockpit 性能监控服务
  • 迅雷远程下载
  • aria2 & AriaNg 下载服务
  • Plex / Emby 多媒体
  • 移动客户端

开机启动

因为有些功能不会开机启动,所以需要添加开机启动脚本,打开命令行输入

sudo nano /etc/rc.local

若该文档为空则添加

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
  
exit 0

所有开机执行的脚本语句都写在exit 0之前,如果需要注释就在前面加#号,当需要使用某个目录下的脚本时需要使用绝对目录即由/开头的目录。
第一行指明脚本的解释器,有时会出现不兼容的状况,若发现对应服务没有开机执行则把#!/bin/sh -e替换为#!/bin/bash
后面介绍的几个功能基本都需要在此脚本中添加启动语句。

cockpit

因为后续添加的功能越来越多,想比较快捷方便地监控机子性能,所以选择cockpit进行监测,接入简单,功能也全面,能够监测CPU、内存、磁盘、网络、设备日志、服务等实时状态以及设备硬件信息和连接终端。
进入官网、点击install、选择对应平台(如Ubuntu仅一条安装指令)

sudo apt-get install cockpit

安装完成后想进入cockpit监控台可访问9090端口,若在本机,则在浏览器输入https://localhost:9090即可,局域网内其他终端可访问设备局域网内ip,如前几篇设定https://192.168.1.100:9090,跳转到设备登录界面输入管理员账户和密码即可。

迅雷远程下载

在NAS上运行插件Xware可以使用迅雷远程下载,根据平台选择版本拷贝链接,如Ubantu使用的就是Xware1.0.31_x86_32_glibc.tar.gz
终端执行下列语句下载插件包

wget https://github.com/yysolid/Xware/blob/master/Xware1.0.31_x86_32_glibc.tar.gz 

下载完成后执行

sudo mkdir Xware #创建Xware文件夹
chmod 777 Xware #设置Xware权限 
tar -zxvf Xware1.0.31_x86_32_glibc.tar.gz ./Xware #将压缩包解压到Xware目录下

解压出的文件中名为portal的文件即为执行文件
运行迅雷本地服务

./Xware/portal

此时本地服务开始打印信息,运行结束后在打印的信息中找到激活码

THE ACTIVE CODE IS: ******

复制激活码进入http://yuancheng.xunlei.com/,登录,添加设备输入激活码,点击绑定
然后在该页面即可添加远程下载任务和设置下载路径
关闭服务在启动语句后追加参数s即可

./Xware/portal -s

为保证每次设备重启迅雷服务能自动开启,需要在rc.local中添加绝对路径启动,如

/root/Xware/portal

aria2 & AriaNg

因为迅雷下载非会员会限速,甚至禁止下载部分资源,所以此时就需要aria2下载服务进行补充,而AriaNg是对aira2拓展的Web前端操作界面。

安装aria2

sudo apt-get install aria2

安装完成后

sudo mkdir /etc/aria2    #新建文件夹  
sudo touch /etc/aria2/aria2.session    #新建session文件
sudo chmod 777 /etc/aria2/aria2.session    #设置aria2.session可写 
sudo nano /etc/aria2/aria2.conf    #创建配置文件

创建aria2配置文件后添加如下内容,根据自己需求修改响应参数,注:dir下载地址、rpc-secret前端访问密码

#自定义下载目录
dir=/root/Download
# 启用磁盘缓存, 0为禁用缓存, 需1.16以上版本, 默认:16M
#disk-cache=32M
# 文件预分配方式, 能有效降低磁盘碎片, 默认:prealloc
# 预分配所需时间: none < falloc ? trunc < prealloc
# falloc和trunc则需要文件系统和内核支持
# NTFS建议使用falloc, EXT3/4建议trunc, MAC 下需要注释此项
#file-allocation=trunc
continue=true

## 下载连接相关 ##

# 最大同时下载任务数, 运行时可修改, 默认:5
max-concurrent-downloads=5
# 同一服务器连接数, 添加时可指定, 默认:1
max-connection-per-server=16
# 最小文件分片大小, 添加时可指定, 取值范围1M -1024M, 默认:20M
# 假定size=10M, 文件为20MiB 则使用两个来源下载; 文件为15MiB 则使用一个来源下载
min-split-size=10M
# 单个任务最大线程数, 添加时可指定, 默认:5
split=5
# 整体下载速度限制, 运行时可修改, 默认:0
#max-overall-download-limit=0
# 单个任务下载速度限制, 默认:0
#max-download-limit=0
# 整体上传速度限制, 运行时可修改, 默认:0
max-overall-upload-limit=10K
# 单个任务上传速度限制, 默认:0
max-upload-limit=20
# 禁用IPv6, 默认:false
disable-ipv6=true

## 进度保存相关 ##

# 从会话文件中读取下载任务
input-file=/etc/aria2//aria2.session
# 在Aria2退出时保存`错误/未完成`的下载任务到会话文件
save-session=/etc/aria2/aria2.session
# 定时保存会话, 0为退出时才保存, 需1.16.1以上版本, 默认:0
#save-session-interval=60

## RPC相关设置 ##

# 启用RPC, 默认:false
enable-rpc=true
# 允许所有来源, 默认:false
rpc-allow-origin-all=true
# 允许非外部访问, 默认:false
rpc-listen-all=true
# 事件轮询方式, 取值:[epoll, kqueue, port, poll, select], 不同系统默认值不同
#event-poll=select
# RPC监听端口, 端口被占用时可以修改, 默认:6800
#rpc-listen-port=6800
# 设置的RPC授权令牌, v1.18.4新增功能, 取代 --rpc-user 和 --rpc-passwd 选项
rpc-secret=password

## BT/PT下载相关 ##

# 当下载的是一个种子(以.torrent结尾)时, 自动开始BT任务, 默认:true
#follow-torrent=true
# BT监听端口, 当端口被屏蔽时使用, 默认:6881-6999
listen-port=51413
# 单个种子最大连接数, 默认:55
#bt-max-peers=55
# 打开DHT功能, PT需要禁用, 默认:true
#enable-dht=false
# 打开IPv6 DHT功能, PT需要禁用
enable-dht6=false
# DHT网络监听端口, 默认:6881-6999
#dht-listen-port=6881-6999
# 本地节点查找, PT需要禁用, 默认:false
#bt-enable-lpd=false
# 种子交换, PT需要禁用, 默认:true
enable-peer-exchange=false
# 每个种子限速, 对少种的PT很有用, 默认:50K
#bt-request-peer-speed-limit=50K
# 客户端伪装, PT需要
#peer-id-prefix=-TR2770-
#user-agent=Transmission/2.77
# 当种子的分享率达到这个数时, 自动停止做种, 0为一直做种, 默认:1.0
#seed-ratio=0
# 强制保存会话, 话即使任务已经完成, 默认:false
# 较新的版本开启后会在任务完成后依然保留.aria2文件
#force-save=false
# BT校验相关, 默认:true
#bt-hash-check-seed=true
# 继续之前的BT任务时, 无需再次校验, 默认:false
bt-seed-unverified=true
# 保存磁力链接元数据为种子文件(.torrent文件), 默认:false
bt-save-metadata=true

启动aria2服务

sudo aria2c --conf-path=/etc/aria2/aria2.conf

或者
后台启动aria2服务

sudo aria2c --conf-path=/etc/aria2/aria2.conf -D

同样将aria2添加开机启动,只需将上面语句加入rc.local

安装AriaNg

AriaNg官方下载页面下载程序包,若想客户端使用下载AllInOne版本,下载即可点开使用,在客户端配置连接服务器即可。
若在服务器配置就下载普通版本,这里演示在服务端配置WebUI。
首先还是使用命令行下载

#下载
wget https://github.com/mayswind/AriaNg/releases/download/1.0.0/AriaNg-1.0.0.zip
#创建目录
sudo mkdir AriaNg
#解压
unzip https://github.com/mayswind/AriaNg/releases/download/1.0.0/AriaNg-1.0.0.zip ./AriaNg

因需要将AriaNg部署到Web服务器,所以还需要安装Nginx Web服务

sudo apt-get install nginx
#配置nginx
sudo nano /etc/nginx/nginx.conf

在http选项内添加

server {
             listen 8090;  #监听端口 端口自定义作为访问端口,注意不要被其他服务占用
             server_name 127.0.0.1 192.168.1.100;    #主机ip 用于本地和局域网访问

             location / {
                root /root/AriaNg; #站点目录 根据上面的解压绝对路径
                index index.html index.htm;
             }
        }

保存后退出,重启Nginx

sudo pkill -9 nginx
sudo nginx

此时在浏览器输入ip,http://192.168.1.100,可看到Nginx的默认Web页面,在ip后追加配置的端口号http://192.168.1.100:8090,即可进入AriaNg Web页面
若进入后左侧状态呈现未连接,则需要进入设置查看端口号是否与上面aria2.conf 中配置一致,RPC密钥也需要与rpc-secret字段配置一致,重新输入后刷新页面即可。若还不能连接,则需要查看aria2是否启动。

多媒体

在机能过剩且有需求的情况下可以增加家庭影音的功能,普遍的解决方案就是PlexEmby,还有一个kodi但那是终端使用的,我没怎么试。
关于Plex 和 Emby 的对比可查看https://www.jianshu.com/p/1e85714696c7http://jimliu.net/2018/06/21/nas-log-software-summary-and-media-center/ 两篇文章,总体来说没有太大差别,我想要的也只是其核心功能——服务器解码串流。当然还有多媒体同步功能,可以同步照片资源等,这部分功能还是值得使用的,花700买个终身服务性价比也还可以。 两个平台的移动客户端功能都是收费的,需要30元买断,但如果是会员就可以免费使用客户端功能了。

在尝试了Plex和Emby之后我最终选择了Emby,原因只有一点,Emby可以用内网穿透到客户端,Plex也可以使用外网访问,但使用的是默认ip不可修改,对国内这种大局域网环境,会出现Double NAT的错误,哪怕向运营商投诉要到了公网ip,保不准哪天又偷偷给你改成大局域网。 关于内网穿透的内容下一篇再集中讨论。

Emby

进入官网Download,选择平台,选择系统,根据官方教程

wget https://github.com/MediaBrowser/Emby.Releases/releases/download/3.5.3.0/emby-server-deb_3.5.3.0_amd64.deb
dpkg -i emby-server-deb_3.5.3.0_amd64.deb

这时候Emby就部署到8096端口了,访问http://localhost:8096或者http://192.168.1.100:8096,登录按流程配置即可。配置完成Emby就会开始扫描你配置的媒体库,并为其添加封面等信息,但中文资源可能会出现较大的偏差。

Plex

同样在官网下载解压即可

wget https://downloads.plex.tv/plex-media-server/1.13.9.5456-ecd600442/plexmediaserver_1.13.9.5456-ecd600442_amd64.deb
dpkg -i emby-server-deb_3.5.3.0_amd64.deb

Plex的服务可从32400端口访问,配置流程和emby一致,按步骤选择即可。

移动客户端

iOS端我个人用两个神器,FE File Explorer PronPlayer,一个什么都能管负责文件管理,另一个什么都能看负责多媒体播放,两款App都有免费版FE File Explorer: File ManagernPlayer Lite,付费版都是30元。FE免费版限制了一些功能,但也差不多够用;nPlayer功能和付费版一样,但是有不少广告,不过两个都建议买付费版,性价比极高。
两款App都可直接扫描本地网络添加NAS,也可手动添加远程网盘,在后续将本地NAS穿透到外网后也方便管理。因Emby在8096端口实现了DLNA,所以nPlayer也可以通过8096端口访问Emby,实现串流,从而避开了Emby官方App的付费播放功能限制。