Alliot's blog

换电源上群晖当主力——蜗牛星际后续

  继不到300块捡一台4盘位NAS——蜗牛星际上车记 后,一直没怎么去折腾它,吃灰大半年,这次新冠肺炎事件,闲着在家,花时间折腾了一下,改了电源,上了群晖。

注:本文很多内容来自互联网,仅供学习交流,如侵删。感谢 Jun 大佬的引导与其他诸多大佬的热心分享,Alliot 只是记录整理自己的动手过程,以便自己重装时翻阅,同时给需要的朋友作参考。

换电源

  为什么一直强调要更换电源,原因在于蜗牛星际普遍使用贴牌电源,这类电源通常虚标严重、波纹超标,这对于矫情的机械硬盘来说,无疑是致命的。(机械硬盘启动电流大,虚标电源功率不够的情况下很容易损坏;纹波太大容易损坏硬盘的电子器件),所以,为了硬盘的安全,这电源是强烈建议更换的。
  至于硬盘笼背板,Alliot 的看法是可换可不换,因为不做热插拔的情况下,背板只要供电跟上了,问题还是不大的,毕竟我们 SATA 线直连主板也一样用。淘宝目前有配套替换的定制背板,但是价格在 100 来块(奸商赚的太狠了,量产不到十块钱的成本),性价比极低不说,单纯的加了一些钽电容之类的,怕是也不能保证热插拔时的硬盘安全,况且,热插拔本身就是一个存在风险的操作,家用 NAS 不像企业级承载不可停机业务,所以就算是白群晖也最好不要热插拔。

电源选择

  蜗牛星际使用小 1U 尺寸电源(FLEX),尺寸为 1584 cm,对应蜗牛的主板需要一根 20+4 PIN 供电,再加两根大 4D 供电给硬盘背板。
  我选择的是 海韵 SS-200SU 拆机电 源,深水鱼上 90 元到手。这个电源是我在 “台达、全汉拆机电源” 与 “海韵 SSP-300”、”益衡 7025 “ 之间的折中选择,前者动手的点比较多,噪音大,需要改线,价格也要跑到 100 来块了,后者是很棒,但是价格已经被炒到近 300元。
  海韵电源拆解.png
  用料还是很扎实的,这里 Alliot 拆开后将其风扇轴承上了一些润滑油,清灰后原样装上了。

改供电

  这款电源,接口为 1 根 20+4 PIN、1 根 CPU 4 PIN 供电、2 个 SATA 供电,并没有 大4D 口给硬盘笼供电,这里卖家送了两个 “刺破 D 口接头”。
  刺破头使用很简单,只需要将线用一字螺丝刀顶入卡扣内即可,不需要剥开绝缘皮。
  海韵电源用刺破D.jpg
  线序一定要正确,否则将烧坏硬盘,如下图,按照 “红、黑、黑、黄” 线序来安装,并用万用表测试一下是否有断路短路:
海韵电源改供电.jpg
  我这里其实是比较不推荐的方案,图方便直接将两个 大 4D 口接在了 SATA 供电线上。根据其铭牌,这个电源是有两个 12V 供电的,Alliot 并不确定这根 SATA 供电线是 6A 还是 12A,
  2020年3月15日更新: 找了很久找到了这电源的文档,发现 12V 是联合供电的,12V1 为 SATA 供电,12V2 为 CPU 方 4PIN 供电,所以,我这里直接将 SATA 供电转两个 大 D 口给 4 个盘供电是很危险的,单个 3.5 寸机械硬盘,启动电流甚至可以到接近 3A,这里不推荐这款电源,如果非要上,还是建议将 CPU 方 4 PIN 改成大 D 口。(原本是准备并联达到电流叠加的,但是看到说稳压电源不推荐并联,就此作罢)
  
  海韵电源铭牌.png

上群晖

群晖安装

  群晖的安装过程其实很简单,蜗牛自带的 mSATA 盘性能低,Alliot 这里没有采用大多数人选择的二合一引导方法,而是单独将引导丢这个自带的 SSD 里,理由很简单:白群晖,实际上也是这样的,白群晖的主板上有块闪存单独存放引导文件,而 DSM 系统则在每块硬盘上都有。很多人选择二合一是因为觉得方便,不用在数据盘上丢系统分区,通常来说,如果是性能好、质量好的固态,这样做未尝不可,但是蜗牛的三无产品,丢个引导就够了,物尽其用,况且,当这个 SSD 坏了,我们需要做的也仅仅是换个垃圾 SSD 重刷一遍引导即可,对系统没影响,开机即用。
  废话讲完了,进入正题,准备工具已上传:

1
2
3
4
5
6
7
8
9
10
11
链接:https://pan.baidu.com/s/1YJx_TYOd-7Uuomkh9TbB-A
提取码:eb3r
---
WEPE: PE 盘制作工具,如果自己有,请忽略,制作过程省略
Xshell: ssh 连接工具
DSM.xxxx.pat: 群晖系统
ch_cpuinfo.tar CPU 显示信息修改工具
# 如下两个文件请丢入 PE 盘里
DiskImg: 将 IMG 引导写入 SSD 所用工具,请解压后再放到 PE 里
synoboot.img: ds918+ 引导

BIOS 设置

  插上 PE 盘、鼠标键盘显示器后,给蜗牛上电,DEL 进入 BIOS,在 Advanced 页进入 ACPI Settings,将 Resume By Onboard LAN 设置为 enable ,为之后的 WOL(局域网唤醒)做准备,同时在 Boot 页将 PE 的 U 盘设为第一启动项保存后自动重启,进入 PE。

刻录引导

  在 PE 中打开先前放入的 DiskImg,选择驱动器为蜗牛的 SSD 盘,映像档选择 synoboot.img,将镜像写入到 SSD 后关机,拔出 PE 盘。

安装DSM

  现在显示器、键鼠都可以不要了,装上你的硬盘,将蜗牛网口连至路由器,开机。进入路由器,并将路由器 WAN 口网络断开,以便后面屏蔽更新。找到蜗牛对应的 IP 地址,使用浏览器打开,按照提示选择从本地安装 DSM,选择先前下载的 .pat 文件安装一路即可(记得将反馈与自动更新关闭,以免自动更新后引导破坏,无法进入系统)。安装完成后初始化进入桌面。

半洗白与WOL

  黑裙晖有 3 种状态:
未洗白: DS photo 无缩略图,DS video 无法转码,无法登录注册群晖账号,无法使用群晖的内网穿透(QC)
半洗白: 除去 QC,其他功能正常
全洗白: QC 也能正常使用了
  其实顶多搞个半洗白就够了,全白需要渠道购买个正版的 SN 与 MAC 地址,咱们白嫖人家的系统就别再嫖人家的带宽了。
  进入群晖的控制面板,搜索 ssh,将其打开。打开 Xshell 新建会话,主机为蜗牛的 IP 地址,选择连接,填入安装时设置的用户名与密码,登录成功后:

1
2
3
4
5
6
7
8
9
10
11
12
13
# 切换到 root 身份
sudo -i # 提示输入密码,与之前设置的密码一致
# 创建挂载点,这里不推荐其他文章的将挂载点丢到 /tmp 下,可能导致以后 boot 无法挂载上
cd / && mkdir /tmpboot
# 挂载 boot 分区到 /tmpboot 目录
mount -t vfat /dev/synoboot1 /tmpboot
cd /tmpboot/grub
# 修改 grub 文件
vi grub.cfg

找到如下内容:

1
2
set sn=1780PDN123456
set mac1=001132123456

按 i 进入编辑模式,将 SN 后面 6 位替换为随机,MAC 地址替换为蜗牛的实际网卡 MAC(如果想全洗白就在这里替换为你得到的 SN 与 MAC 就好啦),按 ESC 后,输入 :wq,回车保存即可。
完成后记得取消挂载,防止和我一样出现超级块错误:

1
umount /tmpboot

重启系统,进入控制面板,搜索 WOL,勾选 启用局域网唤醒,至此,半洗白与局域网唤醒设置完成。关于局域网唤醒,可以将群晖关机,使用群晖助手中的唤醒或路由器后台中的唤醒来测试。

屏蔽系统更新

  黑群晖不能更新,更新后会挂,所以,ssh 登录后切换到 root 身份:

1
vim /et/hosts

在最后添加:

1
123.123.123.123 update.synology.com

即可。

CPU信息修改

  群晖下 CPU 信息貌似是写死的,在控制面板的信息中心看到蜗牛的 CPU 居然是 J3455,我还以为丢着吃灰它自己还进化了。这里将前面下载的 ch_cpuinfo.tar,上传到群晖的共享文件夹内, ssh 连接后,切换到 root 身份,解压执行:

1
2
3
# 共享文件夹绝对路径在 /var/services/homes/用户名/文件夹名,这里假设用户名 Alliot,home 文件夹
cd /var/services/homes/Alliot/home
tar -xvf ch_cpuinfo.tar && ./ch_cpuinfo.tar

按照提示选择 “1”,运行完毕后,重新登录 DSM 即可看到 CPU 正确显示为 J1900。

常用套件

  添加社群源: 套件中心添加套件来源:
名称 SynoCommunity 位置http://packages.synocommunity.com/`
  目前安装的套件有:

1
2
3
4
5
6
7
8
9
10
11
12
video station(电影管理)
audio station(音乐管理)
moment(照片同步备份)
Drive(同步盘类似onedrive)
download station(群晖自家的下载工具)
ffmpeg(community源、ds video 解码用)
Docker
surveillance station(监控用,无授权仅可用两路监控,目前无解)
cloud sync(各网盘同步)
Hyper Backup(文件夹与应用备份)
active backup for business(类似 Timemachine,可实现整机备份)
Transmission(community源、下载用)

  各套件的详细介绍就不赘述。记录一下需要做的改动:

video station 添加时光搜刮器

  自带的搜刮器部分资源搜不到,这里通过 ssh 来添加时光网的源:

1
2
sudo wget -N --no-check-certificate https://sh.9hut.cn/dsvpmt.sh && sudo bash dsvpmt.sh install
# 卸载则为 uninstall、 升级为 upgrade

安装后,在 video station 的目录里选择 “简体中文” ,则默认使用时光网的源。

video station 音频编码解锁

来自张大妈
最新版的 video station(2.4.7),由于版权问题,锁了 eac3、dts、truehd 等音频编码,套件中心社区源安装最新版的 ffmpeg 后,ssh 登录群晖执行如下命令即可:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 备份 libsynovte.so
cp /var/packages/VideoStation/target/lib/libsynovte.so /var/packages/VideoStation/target/lib/libsynovte.so.old
# 从 LibSynoVTE::ArgumentHelper::AbleToDecodeAudioByCodec() 函数中移除 eac3 黑名单
sed -i 's/eac3/XXXX/' /var/packages/VideoStation/target/lib/libsynovte.so
# 从 LibSynoVTE::ArgumentHelper::AbleToDecodeAudioByCodec() 函数中移除 dts 黑名单
sed -i 's/dts./XXX./' /var/packages/VideoStation/target/lib/libsynovte.so
# 从 LibSynoVTE::ArgumentHelper::AbleToDecodeAudioByCodec() 函数中移除 truehd 黑名单
sed -i 's/truehd/XXXXXX/' /var/packages/VideoStation/target/lib/libsynovte.so
# 备份 ffmpeg
mv /var/packages/VideoStation/target/bin/ffmpeg /var/packages/VideoStation/target/bin/ffmpeg.old
# 从社区源中替换 ffmpeg
cp -r /usr/local/ffmpeg/bin/ffmpeg /var/packages/VideoStation/target/bin/ffmpeg
# 权限更改
chmod 755 /var/packages/VideoStation/target/bin/ffmpeg

active backup for business解锁

浏览器访问

1
https://ip:5001/webapi/auth.cgi?api=SYNO.API.Auth&method=Login&version=1&account=用户名&passwd=密码`

登录后,再打开

1
https://ip:5001/webapi/entry.cgi?api=SYNO.ActiveBackup.Activation&method=set&version=1&activated=true&serial_number="序列号"

即可。(路由器映射 5510 端口 TCP 才能公网备份)

Transmission 汉化

  安装后,默认端口 9091。如需汉化,ssh 连接群晖,切换到 root 身份,执行如下脚本即可。
install-tr-control-cn.sh

docker

Aria2NG

  首先,从套件中心安装好 docker 后,在 注册表 中搜索 auskadocker-aria2 下载对应的镜像后,在 映像 中选择启动,勾选 使用高权限运行,端口设置里,容器端口不变,本地端口中,6800 为 Aria2 RPC 服务端口(不推荐修改),8080 为 Aria2NG WEB 服务,按需修改。卷设置中,添加文件夹。创建一个保存配置用的文件夹,Alliot 这里为 docker/aria2 此处可按需自定义,装载路径则必须为 /config,同样的创建一个保存下载文件用的文件夹,Alliot 这里为 homes 按需自定义,装载路径必须为 /mnt,之后再去到群晖的 File Station ,找到这些文件夹,右键属性,设置 Everyone 可读可写。回到 docker 环境设置中,SECRET 变量为 Aria2 RPC 密钥,默认为odcn.top admin,可按需修改,Alliot 这里选择默认,配置完成后应用,到容器里启动即可。Aria2NG-docker1.png
  打开浏览器,访问 群晖的 IP:Aria2NGWEB的端口 即可进入 Aria2NG,这里说一下一个坑,此镜像不会自动配置 Aria2 服务器的 RPC 密钥,即使是默认的 admin 也不行,所以打开 WEB 后会提示 错误 认证失败,需要手动填写先前设置的 SECRETAria2NG-docker2.png

自动更新tracker

  设置从 tracklist 自动更新 Aria2NG 的 tracker(来自oD^blog 这老哥的博客貌似国内线路打开很慢?这里转载部分过来,他原文更详细):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#!/bin/bash
# 脚本
#CONFFILE 更改成你的 conf 文件真实地址
CONFFILE="/volume1/docker/aria2/aria2.conf"
#DOCKERID 更改成你的 Docker 容器 ID 在 SSH 使用 docker ps 命令查看 ID
DOCKERID="65b21a7f1a1f"
list=`wget -qO- https://raw.githubusercontent.com/ngosang/trackerslist/master/trackers_best.txt|awk NF|sed ":a;N;s/\n/,/g;ta"`
if [ -z "`grep "bt-tracker" $CONFFILE`" ]; then
sed -i '$a bt-tracker='${list} $CONFFILE
echo add……
else
sed -i "s@bt-tracker.*@bt-tracker=$list@g" $CONFFILE
echo update……
fi
docker restart -t=30 $DOCKERID

按照前文的 ssh 连接到群晖后,使用 docker ps 查看容器 ID,修改并保存脚本到 Aria2NG 的 docker 目录下,运行该脚本后可以看到 aria2.conf 添加了 bt-tracker 字段即可。
登录 DSM 打开控制面板添加计划任务如下:

1
2
3
4
# 任务名随意,使用 root 用户执行
# 计划里每天执行
# 任务设置里添加:
sh /volume1/docker/aria2/auto_tracker.sh

在 Aria2 的配置文件 aira2.conf 中,添加如下字段:

1
2
save-session-interval=30 # 30 S 保存会话
force-save=true # 强制保存

脚本运行后会提示容器意外关闭,这是因为更改 aria2 的配置文件后,脚本重启了容器以生效。

Jellyfin

  Jellyfin 说简单点就是另一个 Emby,两者的客户端能通用。docker 搜索 jellyfin 镜像安装,如 Aria2NG 中操作类似,端口设置自定义,卷设置中,自己的影片存放文件夹对应装载路径 /media,配置文件对应装载路径 /config,应用即可。
  关于硬件解码: 蜗牛星际的 J1900 使用 918+ 是可以硬解的:
查看目录中是否有驱动,如下输出则为有驱动 :

1
2
ls /dev/dri/
card0 renderD128

使用命令行创建容器:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
root@Alliot-blog:~# docker run -d --name jellyfin-docker \
-v /volume1/docker/jellyfin/config:/config \
-v /volume1/docker/jellyfin/cache:/cache \
-v /volume1/video:/video \
-p 8080:8096 \
-p 8081:8920 \
-device=/dev/dri:/dev/dri \
jellyfin/jellyfin:latest

之后在 jellyfin 控制台中的硬件加速处选择 “VAAPI” 硬件加速,转码线程推荐 “4”,其他默认。
  另外一个问题就是,推荐在 Docker 套件中,将内存做限制,我目前给的 2G 限制,前几天使用 jellyfin 外网看电影的时候,出现群晖宕机,无法 ping 通的情况,强制下电重启才恢复,估计是内存被吃满的原因,限制内存后暂时没出现这个问题(jellyfin 挺吃内存,给多少吃多少)。

  一个提供简单阅后即焚的服务的容器。

rrshareweb

  人人影视 web 版

外网访问方案

  外网访问无法就内网穿透(QC 也属于此类),DDNS。内网穿透如果有 VPS 的话,推荐 frp(可参考 Alliot 之前写的 通过frp内网穿透实现外网访问校内资源),这里简单讲一下 DDNS。
  所谓 DDNS,即动态域名解析,在宽带拥有动态公网的情况下(电信、联通均可以人工服务要到,直接给他说家里装监控需要动态的外网 IP 就好),将域名通过脚本请求 API,自动完成解析。
  Alliot 是刷好 padaven 的路由器上使用 AliDDNS(可以使用AlliotTech/AliDDNS)。
  可使用端口映射或搭建安全隧道代理来实现访问内网群晖(如 $$-server)。

其他问题

内外网共用域名访问

  白群晖一个好处就是,不管内外网,均使用 quick connect 地址进行登录与连接,并会自动识别内外网环境,当内外时会自动解析内网 IP,使流量走局域网。 很多同学玩黑群晖使用 DDNS 后,发现内网使用域名访问会出现流量从内网走到外网再从外网回到局域网的情况,这就相当于脱了裤子放屁。有什么解决办法使得我们用域名访问也能自动识别内外网呢?答案是在路由器设置”端口回流“。不同固件的打开方法不同,直接去搜索引擎搜索对应的固件开启端口回流的方法即可。
  当然,部分路由器没有端口回流功能也可通过修改路由器的 hosts 文件或群晖内建 DNS server 并将路由 DNS 服务器地址指向群晖即可。

群晖无法显示硬盘 smart 信息

  蜗牛星际在使用 mSATA 盘引导安装群晖后,会发现在 “存储空间管理员” 里,无法取得硬盘 smart 信息,同时也无法实现硬盘休眠。爬了很多帖子,有两种说法:

  • b 站某 up 说这是由于蜗牛星际的主板硬盘柜连接的那几个 SATA 口非原生 SATA 而导致无法取得 smart 信息。
  • 张大妈(什么值得买)上一位大佬说是由于没把 mSATA 引导盘隐藏导致的(因为在“存储空间管理员”里确实可以看到一块未初始化的 SSD)

  这里一开始我也不能确定哪种说法正确,但是我觉得第一种说法说什么非原生 SATA 接口无法获取 smart 信息是错误的,不然为啥移动硬盘使用 USB 也能获取呢。所以先测试一下能不能通过第二种说法给出的解决方案来解决。
  这种方法是利用修改 grub.cfg 中硬盘的起始序号来实现的,我这里尝试了很多次也没能成功。 Alliot 想,既然是这块 SSD 没能隐藏导致的,那我不用这块 SSD 就好啦。于是,Alliot 用 U 盘重新做了一个引导(重做引导不会影响系统,开机并连接 DSM 时会提示转移,按照提示转移即可),果然能够正常取得 smart 信息了。
  白群晖本身也是用单独的闪存芯片来进行引导的,所以我还是抛弃了那块鸡肋的 mSATA,使用 U 盘引导了。   

群晖 drive 无法公网访问

  本以为 drive 与 DSM 共用一个端口,然而发现 drive 需要单独做 6690 的端口映射,路由器添加相应的端口映射即可。

群晖外网访问安全加固

  家用 NAS 对比公有云最大的优势就是能够更加安全,但是,我们又要方便自己能够在外网访问,所以相比搭建隧道代理访问,更多人会优先使用端口映射到公网的方案。
  使用端口映射的方案要注意几个点:

  1. 仅映射必要的端口,坚持最小化原则,在路由器防火墙中仅放通必要的端口,对外使用非常用端口(如 21、22、80 等常用服务端口)。
  2. 关闭路由器公网 ping 响应、路由器应用也应遵循最小化原则,能不安装不打开的服务尽量不打开,尤其是 telnetsshnfs 等服务,修改默认用户名,关闭外网访问后台的权限,减少被批量扫或爆破的风险。
  3. 群晖 DSM 登录开启二次验证,在控制面板的 “安全性” 中,开启自动封锁,以防止恶意爆破,启用邮件告警功能。
  4. 群晖 DSM 配置 SSL 证书访问,控制面板开启强制跳转 https 。

安卓 DS VIDEO 无法播放视频

  可在 ds video 客户端中勾选 http 访问资源尝试一下,还是无法播放推荐安装 MX Player 播放器。

断网后自动关机

  用于不带通讯线的 UPS,可使用以下脚本:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#!/bin/env bash
RouteIP=192.168.111.1
DelayTime=120s
if `ping $RouteIP -W 2 -w 2 -c 2 >/dev/null`;then
echo `date +'%Y-%m-%d %H:%M:%S'`
echo "Power on."
else
synologset1 sys warn 0x11600036
echo `date +'%Y-%m-%d %H:%M:%S'`
echo "ping failure,delay..."
sleep $DelayTime
if `ping $RouteIP -W 2 -w 2 -c 2 >/dev/null`;then
synologset1 sys warn 0x11600035
else
synologset1 sys warn 0x11600037
poweroff
fi
fi
exit 0

常用APP

  已包含于上文网盘链接中。

1
2
3
4
5
6
7
8
9
10
DS VIDEO # video station 客户端
DS FILE # 文件管理
DS GET # download station 客户端
DS AUDIO # audio station 客户端
drive
moments
群晖管家
EMBY # jellyfin 可使用旧版的 emby 客户端
Transdroid # 可整合 Aria2、Transmission 等远程下载
MX Player # 本地播放器,可硬解码

后记

  很惊喜,蜗牛星际这台矿车基本不需要太多折腾,换上靠谱的电源后,配合路由器 AliDDNS,与白群晖体验基本无异。
  群晖系统整体来说很容易上手,套件中心 + docker 基本能够满足家庭级的 NAS 需求,从年底用到现在,总体满意,接下来是如何加满 4 块盘.什么时候又有车呢。。。。That’s all!

------ 本文结束 ------

本文标题:换电源上群晖当主力——蜗牛星际后续

文章作者:Alliot

发布时间:2020年02月16日 - 16:02

最后更新:2020年04月01日 - 00:04

原始链接:https://www.iots.vip/post/woniuxingji-synology.html

许可协议: 署名-非商业性使用-相同方式共享 4.0 国际 转载请保留原文链接及作者。

如果此文为您解决燃眉之急或是带来些许明朗,不妨打赏Alliot一杯香茗或是一杯咖啡