前言
很早之前就听说过 NAS 设备,但是苦于一直在租房的状态(其实是穷),一直没有入手。今年终于搬到新家了,加上近期老婆抱怨手机存储空间不够,已经塞满了吉宝的照片和视频了,因此,终于狠心剁手了一台群晖 920+ 的 NAS 设备。
本文主要就是围绕 NAS 到手后,我进行了哪些设置以及安装哪些好玩的套件。
NAS 网络
近期发现访问 nas 里的 docker 套件,无法打开“注册表”,提示“注册表失败“。经过一番搜索发现,目前挂梯子无法正常访问 Docker hub https://registry.hub.docker.com。因此,我尝试将 NAS 的网关设置为软路由地址,则正常访问了。
在正常下载镜像以后,需要及时改回来。因为我改为软路由以后,发现外网是无法通过公网IP+端口号或者域名+端口号的方式来访问家里 NAS 里的服务的。这是因为网关指向软路由以后,好像会被软路由的防火墙规则拦截。具体没深入研究,多亏了v2ex的帖子里的回复想起来了这个改动。
DS video
群晖安装套件:Video Station
电视盒子、手机安装:DS Video
通过在 NAS 上安装好套件、添加好资源之后,可以在其他设备上安装 DS Video 来进行观看。会有视频的海报墙,比直接看文件夹或者视频文件更美观和直观。
经过测试发现,对于 DTS、EAC3 格式的视频,群晖的这个 DS Video 播放就没有声音了。只能在电视盒子安装一个 VLC 播放器,这样,DS Video 不支持的视频资源可以选择用第三方播放器打开。
网上有各种解决方案,比如 群晖 Video Station 支持 DTS 和 eac3 解决方案,但是在我群晖 920+ 上都没好使。
经过周末的折腾,利用 Jellyfin 搭建了家庭媒体服务中心,然后其他平台也都有 Jellyfin 的客户端,使用下来,效果也还可以,非常值得推荐!
参考:
- 群晖 Video Station 支持 DTS 和 eac3 解决方案
Transmission 安装与汉化
Transmission 是一个开源的下载软件,可以用来下载 PT 站的资源。记得在大学时期使用六维空间时,经常为了做种需要将笔记本一直打开着。现在只需要在 NAS 中安装好这个 APP, 则可以使用 NAS 24 小时挂在后台进行资源的下载和上传。
安装 TR
在套件中心添加套件源 http://packages.synocommunity.com
:
常规中设置信任:
在社群中搜索 Transmission,按照提示安装,安装好之后的访问地址:
汉化
汉化的安装,可以阅读 ronggang/transmission-web-control。以下简要介绍:
在群晖控制中心,开启 NAS SSH 登录的功能:
然后在终端命令行窗口即可登录 NAS:
1 | # 登录账号名和 IP 得换成你自己的 |
注意:
- 如果想要在下载时指定目录,需要对应目录需要添加群组:
sc-transmission
、sc-download
添加常用下载目录:
参考
- 君子不器/群晖安装Transmission
- 喵斯基俱乐部/群晖NAS安装及美化Transmission(PT)教程
- 新浪众测/最强下载工具,玩转NAS影音竟然如此简单! 介绍了 Tr/万物下载、Plex/Kodi Jellfin
aria2
一个 BT 下载器
aria2 pro
- 拥有NAS的生活 篇十五:群晖安装aria2 pro增强下载器
- 群晖NAS下载神器Aria2&AriaNG/保姆级安装上手一次成功/让你拥有一个满速下载的助手(群晖/NAS/Docker/Aria2/AriaNG)
- p3terx/群晖 NAS Docker 进阶教程 - 部署全能下载工具 Aria2 Pro
- p3terx/Aria2 前端面板 ( GUI、WebUI ) AriaNg 使用教程
- p3terx/Aria2 无法下载磁力链接、BT种子和速度慢的解决方案
Jellyfin 媒体中心
介绍
- Jellyfin 支持硬件转码,在使用硬件转码推流的时候可以大幅降低 CPU 占用率,支持实时转码。硬件转码功能在 emby 和 plex 都是付费功能。
- Jellyfin 是在它的服务器上搭建影音资料库,这样,在任何客户端来访问资料库时,就不用再建立资料库。Kodi 在不同设备上需要重新建立存储在该设备上的资料库。观看的记录会保存在 Jellyfin 服务端,这样,在各个平台切换观看时,使用同一账户就可以方便继续观看了。
Kodi 播放方式类似电脑上的播放器播放。直接从共享文件夹读取文件流,而非播放视频流。Kodi 的这种方式,占用的网络资源则由具体的文件的码率决定。由于解码由播放设备进行,所以实际效果取决于设备的解码能力。如果播放设备解码能力弱,直接播放视频文件,有时候就会造成卡顿或无法播放。而 Jellyfin 的这种方式,可以理解为你自己在 NAS 上搭建了一个多媒体服务器,它可以进行视频的解码,客户端播放能够流畅很多。
安装
通过打开 Docker 套件,在其中的注册表中搜索 jellyfin
镜像(映像)进行下载。
进入 jellyfin 服务器地址(NAS IP:8096),即可访问。
需要进行一些设置。可以参考 SMZDM阿文菌/使用群晖Docker 安装Jellyfin 家庭影院HTPC 比emby plex好用多了:
- 国家选项里没有 China,而是要选择 Peoples’s Republic of China
- 选择备用字体文件路径:控制台》播放》选择备用字体文件路径,提前在
config
下创建好font
文件夹(可以自定义文件夹名),在其中放好下载的字体 noto.zip。这个主要为了解决ASS/SSA
中文字幕会显示方块乱码。
安装的步骤,Jellyfin 官网可以看做是如下命令的等同:1
2
3
4
5
6
7
8docker run --name=jellyfin2 \
--device=/dev/dri:/dev/dri \
--device=/dev/dri/card0:/dev/dri/card0 \
-p 8096:8096 \
-v /volume1/docker/jellyfin/config:/config \
-v /volume1/docker/jellyfin/cache:/cache \
-v /volume1/video:/media \
jellyfin/jellyfin:latest
之所以映射设备,是为了开启硬件加速
添加媒体库
添加媒体库的步骤很简单,注意勾选:
- 将媒体图像保存到媒体所在文件夹:方便将下载的资源归档到视频文件夹中
插键
字幕插键 Open Subtitles
安装 Open Subtitles
插件,这样的话,可以使用字幕下载的功能。使用该插件
安装好插键之后,需要重启容器。
需要去 opensubtitles 注册账号,有了账号,需要去点击该插键进行配置。
参考:
- 92Nas/Jellyfin中电影外挂ass格式字幕无法显示的解决方法
- All the Chinese plug-in subtitles in ASS format 中的解决方案进行配置
播放
查看播放数据:
- 播放信息:会显示播放方式,可以看出是转码播放还是直接播放的
- 媒体源信息:表示播放的视频源的信息,可以看到码率、音频编码
- 比特率:码率,视频文件 原本的码率,如果原本码率比较高,我们通过播放时设置低码率,那么,就会被自动转码
- 转码信息:看到这个表示正在进行硬件转码,方便播放设备播放。可以看到,源文件的音频是
EAC3
,播放时被自动转码成AAC
了。
硬件加速
通过如下的设置开启硬件加速:
- 开启转码:控制台》播放,选择硬件加速
Video Acceleration API(VAAPI)
注意,上面能够成功开启的前提是,勾选了「使用高权限执行容器」
通过 SSH 登录后台,htop
命令查看 CPU 占用率高的进程(jellyfin),查看是否开启验证加速:
此外,在 NAS 查看资源监控,播放视频时,CPU 如果没有飙升,一般也是开启硬件加速的效果。
参考:
- 分享一种简单得不能再简单的群晖DS918+下Jellyfin调用核显硬解的办法
客户端
Jellyfin 的 APP 死机概率非常高,没有网页版本好用。可以使用手机浏览器直接访问网页。利用 Chrome 访问 Jellyfin 的地址,然后在浏览器页面的右上角的菜单项中,点击「添加到主屏幕」,这样即可在手机桌面创建快捷方式。
我的手机进行了权限管理,需要放开 Chrome 创建快捷方式的权限。
TV 端设置
Jellyfin/Clients 官网有提供客户端的下载,其中,有安卓 TV 的客户端。
此外,也可以利用 kodi 来访问 Jellyfin 媒体中心。具体的使用方式,可以阅读 kodi ,简要步骤如下:
- 添加 jellyfin 源:进入插键菜单,插键浏览器,选择从 zip 文件安装,浏览服务器中已经下载好的压缩包
- 从库安装 jellyfin 插键
- 为了避免之前 kodi 中添加的媒体资源重复,可以使用使用 jellyfin 插键中的重置本地数据库的功能
利用 kodi + jellyfin 插键的方式播放资源,不会对视频进行转码,这可能就会导致播放高质量视频时会有卡顿。
具体的设置,可以阅读:
- B站司波图/Jellyfin的外网访问姿势,如何通过安卓,IOS,电视访问Jellyfin服务器
- SMZDM/安卓TV端Kodi部署Jellyfin,使用Jellyfin打造最强媒体中心(篇二)
其他资源
- 字幕网站:
- opensubtitles
- a4k
- subhd
参考
- 喵斯基部落/群晖Docker安装Jellyfin媒体服务器 利用 Docker 部署 jellyfin 服务
- SMZDM/使用群晖Docker 安装Jellyfin 家庭影院HTPC 比emby plex好用多了
- B站司波图/免费开源影音服务器Jellyfin部署全攻略,含群晖,OMV系统下Docker安装并启动硬件转码
电影刮削器 TinyMediaManager
参考
- 92NAS/群晖Docker里安装电影剧集刮削器TinyMediaManager
- KODI中文网/抛弃Kodi难用的刮削器 tinyMediaManager(TMM)刮削电影信息更方便
emby
免费版,服务器硬件解码是不支持的,通过 web 浏览器观看影片时,则会容易造成 NAS CPU 负载很高。但是,比如你使用 Mac 上的 infuse 客户端连接 emby 观看时,它是支持自己解码的,效果不错。
我尝试使用 docker 的方式安装 emby。
安装 emby 步骤
查询核显:1
2
3
4
5
6root@michael-nas:~# ll /dev/dri
total 0
drwxr-xr-x 2 root root 80 Nov 21 17:35 .
drwxr-xr-x 13 root root 13840 Nov 21 17:37 ..
crw------- 1 root root 226, 0 Nov 21 17:35 card0
crw-rw---- 1 root videodriver 226, 128 Nov 21 17:35 renderD128
看到有结果,则表示具有核显,支持硬件解码。
使用 docker 镜像来安装 emby server。
- 先在docker 套件中,下载好 emby server 的镜像,镜像地址:
https://hub.docker.com/r/emby/embyserver
- 为了能够加载核显,支持硬件解码,需要通过 ssh 进入 nas 中进行相关操作:
1 | chmod a+x /dev/dri |
coker create
命令类似docker run
命令,是创建一个容器,区别在于,后者会启动这个容器,前者不会启动这个容器。参考Docker create命令
- 在套件中心docker 套件中,设置容器配置
第一列「文件/文件夹」是选择 nas 中的路径,「装载路径」是指容器中的路径,二者是一个映射关系,要确保 nas 中的路径给与对应用户权限。这些路径,可以看镜像文档作为参考。
da265c1209c81d4e9e286cdef08f9191
设置 nas 实际端口和容器中的端口映射关系,如图,安装好之后,实际访问地址就是 <nas ip 地址>:8090
。
通过 ssh 方式登录到 nas 后台,运行 id <用户名>
可以看到这些数据。gidlist
通过英文逗号配置 gid
的列表即可。
这个非常关键,填写错误,emby 中媒体库将无法正确选择 NAS 中的文件
媒体库设置
- 首选图像下载语言:English,这样图片会相对更丰富、准确
- 元数据读取器:
Nfo
- 电影的元数据下载器:选择
TheMovieDb
,并调整到第一位 - 元储存方式:勾选
Nfo
- 将媒体图像保存到媒体所在文件夹:勾选
- Series 元数据下载器:选择
TheMovieDb
,并调整到第一位 - 字幕下载:勾选 Chinese 相关的三个,不仅仅勾选了简体
- 字幕下载器:勾选 Open Subtitles
参考
- 群晖dsm7.0系统docker安装emby教程及解码测试
- [群晖NAS]Docker安装&使用EMBY全流程图文教程-长文
- 群晖dsm7.0系统docker安装emby教程及解码测试
- Emby在群晖下开启核显硬解转码4K,黑裙6.2.3如何启用核显
PT
下载客户端
- Transmission Linux/MacOS
- uTorrent
- Azureus
m-team
馒头,通过捐赠即可获得账号+1 个月的 VIP:
- 账号保留规则
- m-team 馒头捐赠页面
- 登录地址
- M-Team 外站
heimdall 导航
linuxserver/heimdall上有该镜像的使用说明,安装也很简单。
- 注册中心中先双击下载镜像(无法打开注册中心的,需要先去网络将网关改为软路由IP)
参考:
- Heimdall打造个人导航页
mysql
mysql 数据库
创建好相关持久化目录:
注意,这个config目录下的
conf.d
目录要创建好,因为后面启动时设置配置目录的挂载,如果里面缺少这目录,会启动失败。尽管只需要一个空目录,那也是必不可少的。
高级设置中设置环境变量 MYSQL_ROOT_PASSWORD
,定义root用户的密码和时区:
环境变量:1
2TZ=Asia/Shanghai
MYSQL_ROOT_PASSWORD=123456
磁盘映射:
登录命令:1
docker exec -it mysql bash
这里的 mysql 是我的容器名。
一开始报如下错误 ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
:
但是等待了几分钟以后,该文件 /var/run/mysqld/mysqld.sock
便生成了,可以成功登录了。
查看用户主机关系:
1 | select Host,User,plugin from mysql.user; |
可以看到root的Host列为 % ,代表root账户任何地方都可连接,localhost的代表只有本机ip可连接
具体使用方式可以查看:使用容器 Docker 创建开发环境
Mac Time Machine 备份到 NAS
参考群晖官网的设置,可以指定 NAS 的共享文件夹作为 Mac Time Machine 的备份文件存储磁盘,群晖官网的指导已经更新为 DSM 7.0,资料真是更新及时:
- 如何使用Time Machine将文件从Mac备份到Synology NAS?
Alist
更新 alist 容器实例版本
这里介绍介绍群辉 nas 如何更新容器实例的版本。
- 去”注册表”搜索”alist”拉取下载
xhofe/alist
最新的镜像版本,群辉里称为“映像”,但我还是习惯称为“镜像” 。 - “停止”旧的容器实例。
- 右键进入容器详情,在“设置”中修改容器名称,比如加个
-backup
后缀的标识。此外,如果查看容器“网络”是不是bridge
,如果是,则需要同时清除一下端口的映射关系,因为,两个容器使用相同的本地端口是不被允许的,尽管一个容器是停止状态也不行。注意,截图保存备忘。 - 返回容器列表,右键旧容器,选择“复制设置”,等新容器创建OK 以后,把旧容器的端口映射信息填入新容器的网络设置中。
- 启动新容器即可。如果验证没问题,就可以删除旧容器实例了。
参考:
- 群晖Synology Container Manager更新Docker容器
xiaoya alist
- 去”注册表”搜索”alist”拉取下载
xiaoyaliu/alist
最新的镜像版本 。 - 去
File Station
创建一个目录给xiaoya
:/docker/alist-xiaoya
- 去“映像“界面运行,会进入配置引导:
- 端口设置:本地端口设置 5678,映射端口 80
- 存储空间设置:选择刚刚创建的
/docker/alist-xiaoya
映射/data
- 准备三个文件,将下面三个文件夹存入nas 创建的目录
/docker/alist-xiaoya
:- mytoken.txt:alist 官方文档 介绍了,阿里云盘 APP 扫描后,获取到 token;
- myopentoken.txt:阿里云盘 Open,点击
https://alist.nn.ci/tool/aliyundrive/request
选择扫描二维码,获取token; - temp_transfer_folder_id.txt:去网页版阿里云盘,在“资源盘”下新建一个文件件
xiaoya-cache
,进入该文件夹,地址栏resouce
后面的字符,就是文件件 id
- 启动容器即可
注意!注意!注意!首次访问时,由于小雅需要进行索引,启动时间会比较慢,根据网络情况,需要1-5分钟不等
因为实现原理还是会将播放的资源转存到个人网盘中,那么,需要设置一个定时任务去清理,通过 SSH 登录 NAS 后台:1
2# 模式 3 创建一个名为 xiaoyakeeper 的docker定时运行小雅转存清理并升级小雅镜像
bash -c "$(curl -s https://xiaoyahelper.ddsrem.com/aliyun_clear.sh | tail -n +2)" -s 3 -tg
定时的时间,我通过写入 myruntime.txt 文件(该文件也放在了上面小雅容器的路径下 /docker/alist-xiaoya
)来实现:1
06:00,12:00,18:00
参考:
- xiaoya notion 使用说明
- TG - xiaoya文档 群组
开启 SMB 服务
控制面板》文件共享》文件服务SMB。
注意点:高级设置,勾选“启动 Local Master Browser`,这样局域网中设备就可以看到共享文件件了。
参考
- 花王群晖教程