文章摘要
写在前面: 本文旨在记录并分享一套自用的基于 Windows 系统搭建的家庭服务器的解决方案。 如果您也有类似的需求,可斟酌参考。 如果您有更优的解决方案,欢迎在评论区分享。 此外,由于部分服务无法在 Windows 平台完美部署,遂在文末增加「番外篇」,以便更优地利用硬件性能 。 本文中的解决方案除去 Windows 系统(正文部分)与 Unraid 系统(番外部分)尽量使用免费或开源软件,截至目前此解决方案除去硬件和 Windows 与 Unraid 系统您无需为软件作出花销。 如果您对某些软件有更高要求,您可选择订阅其付费服务。 Now Let's Get Started [doge呵斥] 正本清源:NAS,即 Network Attached Storage,直译“附着于网络的存储”。 本质上仍然是存储,与用有线连接的硬盘盒或硬盘盒类似物本质无异,目的都是为了存储数据资料。唯一不同的是传输介质由「数据线」变成了「网线」或「无线网络」。 一、硬件准备 硬件搭建平台介绍 -CPU:英特尔® 酷睿™ i3-8100 处理器 查看链接 -内存:DDR4 2666Mhz 8GiB*1 -系统硬盘:SK hynix PC801 1TB 查看链接 -主板:GIGABYTE Z370 AORUS ULTRA GAMING 2.0 查看链接 电源:Segotep 全模850(电源纹波不稳炸四方,大家不要学[受虐滑稽]。用这个单纯是因为暂时负载不高,先用这个顶一下,如果之后增加盘体负载增加的话是一定会换电源的[受虐滑稽]) 二、系统安装 2.1 系统选取 在此选用 Windows 10 企业版 LTSC 2019 查看链接 作为家庭服务器的底层系统。 Windows 10 Enterprise LTSC 选取原因: 1. 整体硬件较为老旧,选用旧版系统保证流畅运行。 2. LTSC 不会有频繁的扰人的系统更新,保证作为服务器稳定运行。 3. LTSC 去除大多无用系统组件,保证系统清静。 4. 企业版具有较为完整的管理工具,例如使用 RDP 进行远程管理。 『如果有能力自行精简系统或能保证系统的兼容性以及稳定性,可以选择任一自己喜爱的版本作为底层 Windows 系统。 当然,以下所有方案均基于微软官网原版系统,可能与修改版系统存在不可预测的兼容性问题。』 2.2 安装步骤 *暂略 三、服务部署 3.1 系统“优化” ⚠️注意:在该部分会对部分 Windows 系统功能进行不同程度地禁用,对于这些操作的必要性在此不作任何讨论。 如果您没有相关需求,可以跳过此部分。如果您意向了解部分操作,可以接着向下阅读此部分。 3.1.1 禁止系统更新 『个人观点:不建议任何通过删除 Windows 组件以禁止 Windows 系统更新的行为。』 经过反复尝试不同方法,得出个人认为目前最优解:选用 Windows Update Blocker 查看链接 进行管理。 使用方法: 1. 根据您的系统架构执行相应的可执行文件 执行后的界面如图所示 2. 选择“Disable Updates”并勾选“Protect Services Settings”,点击“Apply Now”。 3. 当界面如下图所示时,恭喜您,您的系统已成功被禁止进行系统更新。 系统已成功被禁止进行系统更新 『注意!使用该软件禁用系统更新后可能导致部分系统组件加载或下载失败。 如果遇到此类问题,可尝试在该软件中允许系统更新后再次对系统进行更改或加载您需要的加载项。』 3.1.2 关闭 Windows Defender 尽管关闭 Windows Defender 的系统原生方法相较于禁用系统更新更便于操作,但仍有部分功能无法完全关闭,因此选用和上述软件类似的 Defender Control 查看链接 进行管理。 使用方法: 1. 在解压程序前,建议先关闭 Windows Defender 的实时保护,因为该可执行文件大概率会被 Windows Defender 识别为病毒文件并加入管控区。为避免麻烦建议可先执行此步骤。 2. 根据是否执行了第一步,以下为两种情况 a. 执行了第一步,执行可执行文件后界面 b. 未执行第一步(且手速够快🤓☝️),执行可执行文件后界面 无论是否执行了第一步骤,点击“Disable Windows Defender”。 3. 当界面如下图所示时,恭喜您,您已成功关闭 Windows Defender 功能。 成功关闭Windows Defender功能 ︵ Bonus: 经对比,关闭此功能后整机静息功耗降低了7W[惊讶]niceeeeee[微微一笑] ︶ 3.1.3 关闭系统保护 Windows系统保护 查看链接 系统保护-e9126e6e-fa64-4f5f-874d-9db90e57645a 的初始目的是为了在系统环境出现出现严重错误时方便系统恢复到系统环境没有出错的某个时点。 优势是便于系统调试,可能的缺点是占用大量硬盘存储空间。 关闭方法 1. 打开控制面板 2. 系统与安全 -> 系统 -> 系统保护 3. 选中需要修改的驱动器,配置 -> 禁用系统保护 -> 删除此驱动器的所有还原点 -> 应用 -> 确定 4. 如果有多个驱动器需要关闭系统还原点,则重复执行 3 操作 禁用系统保护 『拓展阅读:如何删除除最新还原点以外的所有系统还原点 查看链接 如何删除除最新还原点以外的所有系统还原点-d43d697b-09ac-bef6-8a02-1000a18a9b82』 3.2 远程管理 3.2.1 软件 1. ToDesk 查看链接 作为一款具有免费选项的商业软件,ToDesk 提供连接的稳定性具有绝对保障。如果对远程桌面连接的分辨率及系统动画无过高要求,但对可连通性以及稳定性有需求,这是一个不错的选项。 在此选用 ToDesk仅作为冗余连接,以防其他所有方式均无法接通。仅将 ToDesk 设为开机自启并设置能记住的固定的连接密钥即可,这是远程连接此服务器桌面的最后防线。 ⚠️⚠️⚠️请注意!由于当前 ToDesk 的软件策略,当新版本出现时,旧版本 ToDesk 无法被远程控制。强烈建议定期检查 ToDesk 软件版本是否为最新状态。若您相信“自动更新并安装”可以无误地将您的 ToDesk 软件保持最新状态,建议开启此项功能。⚠️⚠️⚠️ 血泪的教训 2. Parsec 查看链接 为了更好的控制体验以及配置的便携性,在此选用 Parsec 作为串流工具。 在被控服务器和控制客户端同时安装 Parsec 并登录同一账户后,在 Parsec 面板上一键即可连接。 选择需要连接的设备,点击Connect即可 『建议将家庭服务器所连接的路由器开启 UPnP 功能,以便提升连接成功率。 以华硕路由器为例,UPnP设置开启 如果您可以保证防火墙的设置,为家庭服务器开启 DMZ 也是不错的选择。 (不过需要注意 DMZ 只能选定一台局域网设备,多 NAS 用户并不建议开启 DMZ )』 如果您认为免费版本的 Parsec 无法满足您的全部需求,例如多屏显示 ,您可自行搭建 Sunshine + Moonlight 的解决方案,在此不做过多讨论。 Parsec订阅服务对比 免费版基本能够提供相对比较够用的功能及体验 3.2.2 直连 上述远程管理的方案仅在远程新增服务器功能或部署的服务运行发生问题需远程解决时发挥作用,日常使用已部署的服务为「<IP>:<端口号>」模式进行直接连接。 1. DDNS 动态域名解析服务可以免除需要记忆公网IP一串数字的烦恼 ,妥善配置后可以轻松地通过自己注册的便于记忆的域名直接访问家庭服务器。 在此处选用 No-IP 查看链接 作为 DDNS 服务提供方,只需要将申请的域名生成的一次性账户与密钥填入路由器的 DDNS 设置界面中的相应位置即可。 以华硕路由器设置界面为例,下拉列表可选择服务提供商 注意!此处填入的账户与密钥为域名生成的一次性账密,并非在注册管理账户时使用的账户与密码。(输入管理账户的登录账密会导致验证不通过) 此外,No-IP 提供的免费服务方案需要每 30 天通过邮件确认一次“您不是机器人”。不过这个邮件会在需要确认时自动发到邮箱中 ,所以大可不必担心忘记确认导致域名失效的问题。 确认邮件,点击Confirm Hostname即可进行下一步验证 点击下图红框中按钮即可验证: 跳转到网页验证 验证成功后会如下图显示: 验证成功 2. DMZ与端口映射 这两项功能的本质都是使局域网内设备的端口可以在公网被访问。 区别在于端口映射允许将路由器公网IP上的特定端口映射到局域网内指定设备的特定端口,可以为多台设备设置不同的映射规则,且可以只暴露必需的服务端口,安全性较高。 而 DMZ 是强制将某一台局域网设备的全部端口完完全全地暴露在公网上,所有外部访问请求都会都会转发到指定的局域网设备上,且局域网内仅允许一台设备被设为 DMZ 设备。 以华硕路由器为例,设置端口转发规则 (内外端口不一定要相同,我只是为了省事好记) 如果能妥善配置防火墙,将家庭服务器设置为 DMZ 设备是个比较省心的选择(不过貌似配置防火墙也并没有很省心[受虐滑稽]),当然如果有两台及以上的服务器还是老老实实设置端口转发规则吧。 P.S. 部分路由器貌似无法同时开启 UPnP 和端口转发/DMZ功能 。例如之前用过的 Redmi AX6 在 1.0.18 和 1.1.4 两个版本的官方固件下都无法实现同时开启,这三项功能开启只能三选一。 『经过 3.2.2 的配置仅能实现在公网上使用HTTP协议进行对家中服务器的访问,如果需要更安全的HTTPS连接需进一步进行「域名证书」与「反向代理」等相关配置。』 3.3 下载 在最基本的「稳定运行」和「远程访问」目标达成后,接下来可以研究研究「访问什么」了。 当然,存放照片和视频这类备份性质的内容暂且不讨论,从互联网上是不是也可以获取一些「奇珍异宝」呢。[qqdoge] 3.3.1 qbEE 查看链接 全称 qBittorrent Enhanced Edition。 顾名思义,qBittorrent 加强版本,相比于 qBittorrent 最主要增加了阻止连接只下载不上传的违背网络分享精神的“客户端”。 打开软件后点击设置选项 -> 进阶,勾选下图中两个选项,即可自动阻止连接大部分「吸血」“客户端”。 勾选以Ban掉吸血雷及其类似物 点击应用 -> OK。 在主界面, 点击 ➕ 可以选择含有需要下载内容的 .torrent 文件; 点击 🔗 即可自动粘贴最近复制的 magnet 链接并下载。 用magnet链接下载 选择合适的保存位置,就可以等待下载完成并尽情享受了 Pro Tip:可以手动调整下图红框中的选项值,否则可能导致内存被拉爆[cos滑稽]。 「硬盘缓存释放间隔」需自行调整至合适值, 「6s」仅为我反复尝试针对我所用硬件的较优值。 3.3.2 Peer Ban Helper 查看链接 这是一个可选项,用于更全面地阻断连接只下载不上传的客户端。 选择对应平台的程序下载安装并运行后,按照命令行中的log警告信息进行相应的配置。 配置成功后,会看见运行状态正常的绿色标识。 Status: ✅Normal 3.4 影音服务 说到影音服务,其实一开始并没有部署类似服务的打算,都是直接用 SMB 共享打开需要看的媒体文件。 直到今年年初时在局域网外想观看局域网内的视频,上行带宽传输视频流直接卡成 PPT [表面开心],遂顺手部署了个影音服务通过转码来保证视频流流畅传输[doge呵斥] 。 3.4.1 Jellyfin 查看链接 作为 Emby 开源精神的继承者,Jellyfin 基本可以满足我日常对于媒体库功能的要求。 最基本的便于辨认的海报墙: 剧集海报墙 同一剧集下不同季度分为不同卡片: 剧集分季,及演职员表 同一系列的电影归在一个卡片下: 同系列电影自动归类 多用户分别保存各自观看记录: 我懒🫠,头像可以单独自定义 硬件加速转码与色彩映射: 硬件加速解码选项 缺失字幕检索下载: 直接在电影详情页搜索缺失的字幕并下载 以及一些其他我还暂未开发的功能。 服务在 Windows 平台的部署方法和日常软件安装无异,执行 .exe 按照提示不断进行「下一步」即可。 其他平台的部署 Jelllyfin 的官网文档 查看链接 讲的非常详尽 ,接下来仅分享一些小 tips 及个人心得。 1. 字幕 对于下载好的资源往往会遇到没有字幕的情况,这时如果自行通过互联网检索确实可以得到对应的想要的字幕,但集成在 Jellyfin 服务中查找效率会非常高效且优雅。 由于 Jellyfin 并没有内置好用的字幕检索工具,此处需要通过自行安装插件解决。 在插件的仓库中增加下图红框中的来源。 另两个如果有需要也可以加一下,有很好用的插件 刷新后回到插件主页,会看到下方红框中的三个插件,逐个下载。 Open Subtitles、射手字幕、迅雷字幕 需要注意若要使用 Open Subtitles 需先到 Open Subtitles 官网 查看链接 注册账户并在 Jellyfin 的 Open Subtitles 插件设置中填入相应信息。 2. 色彩映射 色彩映射主要用于在转码 HDR 或 Dolby Vision 时针对不同色域的转换。但 Intel VPP 色彩映射仅适用于 Linux 系统,所以在 Windows 平台仅开启色彩映射即可,勿勾选 VPP 色彩映射。 VPP与普通色彩映射 这里我当时踩了大坑,直接设置了 VPP 但实际色彩映射并未工作,找了好多教程与论坛都没有相关的解决方案,最后一气之下自己读开发文档去了。 VPP & DV 说明 哈,果然答案就在这里,还是开发文档最香😋 P.S. 可以看到上图中写明对于 Dolby Vision 仅支持 P5 和 P8,若媒体格式为 7.6 等其他杜比视界文件则在转码后无法正确显示色彩。 3. Kodi & Infuse 同步 如果想利用第三方客户端例如 Kodi 和 Infuse 访问 Jellyfin 媒体库则需要额外的插件辅助数据更新同步。 下图两个插件分别用于辅助 Infuse 和 Kodi 进行媒体库同步。 Infuse 与 Kodi 配套插件 Jellyfin 端配置好后 Kodi 端仍需安装 JellyCon 插件 查看链接 才能实现通过 Kodi 展现 Jellyfin 中的海报墙及元数据 ,同时实现每次开启 Kodi 都会自动获取媒体库更新或改变的文件或信息。 Infuse 稍有不同,在模式选择时有 Library Mode 和 Direct Mode 可选。 若选择 Library Mode 则是和 Kodi 类似的「库模式」,需要 InfuseSync 插件辅助; 若选择 Direct Mode 则是和网页端类似的「直连模式」,在此模式下 Infuse 会直接显示媒体库的内容,无需每次开启后更新媒体库,也即无需安装 InfuseSync 插件。 取消勾选图中 Library Mode☑️ 即可 3.4.2 tinyMediaManager 查看链接 若想达到上述海报墙的效果,仅下载媒体资源是不够的,Jellyfin 并不知道视频文件的内容是什么,这时离不开的一步便是“刮削”。 其实 Jellyfin 自带的刮削效果已经很不错了,但经常性地会出现卡死的情况,即媒体库扫描一直卡在99%。虽然点击重新扫描有概率解决这个问题,但经常性的不稳定是促使我更换单独的媒体元数据管理器的最大原因。 tinyMediaManager 是相对来说比较好用的一款影视刮削器,并且支持全平台使用。但需要注意 tinyMediaManager 的运行需要 Java 环境。 在安装并初始化完成后,选择媒体文件所在的文件夹为媒体库目录,待读取完成后选择需要刮削的媒体文件(可以多选),右键下图所示选项即可自动进行刮削。 自动刮削 若部分电影未自动识别成功,则在所有可刮削的选定内容刮削完成后会自动跳出对话框,此时可以对自动刮削失败的媒体进行手动输入搜索并刮削。 对于刮削结果不满意的媒体可右键选择上图中的第一个选项进行再次手动搜索。 3.5 文件分享 存储服务器的老本行——存储文件并分享,自然不能落下。 3.5.1 SMB SMB 全称 Server Message Block ,是网络通信协议的一种,可通过网络进行文件分享。 Windows 下创建 SMB 共享文件的方法在微软官方文档中 查看链接 有详细的步骤指导,但通过“此电脑右键 -> 管理”的方法同时进行共享文件的创建与权限管理会是更优的配置方式,以免与资源管理器中的设置产生冲突。 在这点 Windows 相较于 TrueNAS 等专精于 NAS 的系统有不小的弱势。 在“管理”中进行管理 网络驱动器挂载方式在微软官方 查看链接 在-windows-中通过网络共享文件-b58704b2-f53a-4b82-7bc1-80f9994725bf#id0ebd=windows_11 与苹果官方 查看链接 均有详细的介绍及操作教程 ,在此不过多赘述。同理 Android 和 iOS 也可以用类似的方法进行连接。 Windows 网络驱动器映射成功 (忽略左侧被我拔出的两块空盘🫣 macOS网络位置映射成功 需要注意的是,Linux 系统需要安装额外的套件才能完成对 SMB 共享档案的读取与写入。 3.5.2 WebDAV WebDAV 是 HTTP 协议的扩展,可用于传输文件。通过这个方法可以直接将文件通过链接的方式分享给他人并下载。 Windows 开启 WebDAV 需要开启一系列服务,在微软的官方文档 查看链接 中有非常详尽的介绍及 WebDAV 服务的开启方法。 WebDAV 分享 若点击文件后出现文件下载报错的提示,在 MIME Types 中增加一项文件拓展名与文件类型为“下载”即可。 新增 .apk 为下载类型 至此,这台 WinNAS 已成功具备文件存储、文件分享、资源下载、影音服务四大主要功能。 这是一个伪装成图片的分割线 -------番外------- 起初基于 Windows 的部署就到此为止了,但可以发现并没有相册服务。考虑到多设备的互通性及家中使用 iPhone 的成员并不想被 iCloud 绑定导致频繁使用爱思进行视频和图片的导出,相册服务的部署变得十分必要。 在此选用 Immich 查看链接 作为相册服务的解决方案。 Immich “Buy Immich”可忽略,为捐助性质,Immich本身为开源项目 Features 如下 支持 Live Photos / Motion Photos 好消息: Immich 在 2025 年 10 月迎来了第一版 Stable Release, 而不再是“under very active development” v2.0.0 - Stable Release 由于此解决方案依赖 Docker ,若在 Windows 平台部署只能选择虚拟机、WSL 或 Docker Desktop 的方案,但这又会带来非常高的性能折损及可能的硬件直通的兼容性问题,遂直接使用另一套平台进行单独部署。 ︵ Pro Tip: 使用 Resilio Sync 可以实现双机(多机)数据冗余备份, 与网盘或其他设备协作可完美实现备份 3-2-1 原则 ︶ 硬件平台介绍 -CPU:英特尔® 奔腾® 处理器 G4600 查看链接 -内存:DDR4 2666Mhz 16GiB*1(这里其实8GiB足矣,但另一根8GiB的内存与主板不兼容,即使参数相同,玄学问题[受虐滑稽],被迫上的16GiB) -引导U盘:SAMSUNG FIT Plus USB3.1 闪存盘 128GB 查看链接 -主板:MSI H110I PRO 查看链接 -电源:Thermaltake 钢影 SFX 650W 查看链接 为了更方便的 Docker 管理及更灵活的硬盘配置方案,在此选用 Unraid 查看链接 作为相册服务的部署平台。 Unraid Pricing Unraid 与 Windows 系统不同,无需「系统安装盘」,仅需插入写有「引导」的U盘即可启动。 启动并插入硬盘后,建立并启动序列 ( Array ) 。 Array Started 关于 Immich 的部署方式,选用官方推荐的 Docker Compose,减少环境变量单独设定的冗杂过程,且方便后续升级。 官方文档 查看链接 官方文档中 Unriaid 部署部分 部署成功后在 DOCKER 栏便能看到已部署的容器列表 Docker 容器列表 浏览器地址栏输入 <IP>:<端口号> , 一切配置正确便会看到如下欢迎界面。 Welcome to Immich Immich 服务器版本升级仅需点击“UPDATE STACK”,待显示“Connection Closed”即升级完毕。 升级完毕 注意: DOCKER 界面显示有关 Immich 升级的信息可忽略,其他注意事项在官方文档 查看链接 中同样有详细的表述。 在 Unraid 中对Immich 进行升级 由于有关 Immich 的功能展示涉及隐私打码内容过多,影响图文观感,在此仅附官方文档介绍目录。 用户功能 服务器管理员具有的功能 管理员功能 目前 Immich 已满足我日常手机影像数据无损备份、外部库导入、创建文件夹、照片地图、同伴共享、外链分享、人脸识别、智能搜索、硬件加速转码、硬件加速机器学习等功能。 P.S. 为家人创建多用户后可实现家庭照片无损共享,实现跨平台且无损的“iCloud 相册”。 叠甲:iCloud及其周边云服务还是很好用的 以上服务已稳定运行一年整,基本告别本地存储顾虑, 实现备份数据的自主掌控,无惧文件“丢失”。 所有服务均实现跨平台兼容、全设备共享、多平台同步, 真正实现「让你的文件到处都是」。 Peace~ #NAS# #数码日常# #如何做好数据备份#