【教程】Win10下的NAS系统实现记录

前言

黑群晖系统用了快半年了,也比较稳定,但是比较遗憾一直没有办法实现服务器端独立显卡的视频解码编码功能而且使用虚拟机性能损失也相当大。之前一直对Unraid系统比较感兴趣,于是趁着最近有机会就换掉了黑群晖系统用上了Unraid,但是研究了一个星期左右发现Unraid系统还是有局限性的,比如老大难问题无法直通显卡给win10虚拟机(错误代码43)、并且由于NAS机的cpu性能不足以支持虚拟机下的直播推流功能,各种硬件上的兼容问题等等,最终还是放弃了Unraid。当然群辉和Unraid系统都是非常棒的NAS系统,折腾起来也相当有意思,只是当下无法满足我想要实现的功能。带着这些遗憾我最终回归到了windows系统。

Windows系统作为NAS系统的优势

  • 硬件兼容和驱动基本上不会遇到问题。
  • 软件上支持还不错,比如可以在windows上可以使用docker;emby服务端也完美支持windows。
  • windows是主流的操作系统,学习成本很低,社区资源也很完善,遇到的问题基本上能搜得到解决方法。
  • 作为游戏串流服务器和直播推流服务器无需再通过虚拟机实现了,节省了很多性能。

Windows系统作为NAS系统的劣势

  • Windows默认启动的服务占用资源(主要还是因为图形操作界面)比较多,就算是比较精简的ltsc版本相比linux也还是多很多。
  • 对NAS机的性能有较高要求:更多的待机性能占用导致了本身性能就比较孱弱的cpu不适合本方案。
  • 待机功耗可能会更高(未实测过)。
  • 长期开机可能会不稳定(未证实,后期会设置自行定期重启)。

什么样的机器适合使用Windows系统作为NAS

  • 机器本身性能相对过剩,但也不需要很强,主流中低端游戏机配置完全足够。
  • AMD平台、含有显示核心的CPU,比如200ge等,这类CPU无论是在Unraid还是黑群辉等NAS系统下EMBY调用核显解码编码暂时都处于一个无解的状态,Windows算是一个比较好的解决方案。
  • CPU无显示核心,但是有AMD/NVIDIA独立显卡而又想要实现EMBY解码的机器。

需要实现的功能

  • 文件夹共享(这是作为一个NAS系统最为基础的功能)
  • VNC远程桌面
  • EMBY/Jellyfin/Plex媒体服务器(使用独立显卡解码编码)
  • 外部网络同步网盘nextcloud(docker实现)
  • Halo个人博客系统(docker实现)
  • Minecraft服务器(内存可能不够用了,暂时先没搞)
  • 轻量游戏串流服务器(moonlight和steam流式传输)
  • 直播推流服务器(moonlight串流并使用obs推流)
  • 其他功能后续可增加

正式开始

前期准备


关于为什么不使用Windows Server

由于Winserver2019不支持主流的消费级硬件的驱动安装,就不必折腾了。老坛酸菜(LTSC)版本本身也十分精简了,不自带Windows商店等,也不会经常更新,也很适合拿来做NAS系统。


  • U盘PE系统盘,推荐优启通。
  • 固态硬盘,用于安装Windows系统。
  • 显示器,仅安装系统时会暂时使用一下。
  • NAS机连接到互联网。
  • 重要文件的备份。如果是其他linuxNAS系统转过来的话可能需要先倒一下文件,因为Windows文件系统一般是NTFS格式,Windows系统下也没有比较方便的直接读取linux文件系统的办法,所以建议在原有NAS系统下先将数据导出到NTFS格式的磁盘里再安装Windows。
  • Chrome等浏览器的安装程序(ltsc仅内置ie浏览器,也可以通过ie浏览器下载)

系统安装

系统安装这里就跳过了,PE盘的制作,Windows的安装其实没什么好值得介绍的,其他地方的资料非常齐全了。
系统安装好后请自行根据相应的硬件安装好驱动,比如AMD的独显核显驱动,NVIDIA的GeForceEXP(用于游戏串流)等等。


Win10服务器的配置


VNC远程桌面和开机自动登录以及NAS屏幕不休眠的配置

  • 在NAS机初始化好win10系统后,在浏览器搜索RealVNc Server进行服务端的下载和安装。
  • VNC打印机组件可以选择不安装
    Snipaste_2020-03-27_14-03-12
  • VNC安装过程中需要注册和登陆,按照步骤来即可。
  • 安装好VNC Server后就可以在操作端安装RealVNC Viewer了,支持主流操作系统。同样需要注册或登陆,成功连接到NAS桌面后就可以拔掉NAS的显示器了。
  • Win10默认开机需要登录密码,可以通过在终端运行命令
netplwiz
  • 调出设置窗口,并取消勾选选项即可
    Snipaste_2020-03-27_14-17-10
  • Win10免密登录默认会进入锁屏界面,无法正常启动VNC服务,同样需要运行命令
gpedit.msc
  • 调出本地组策略编辑器窗口,依次展开计算机配置–>管理模板–>控制面板–>个性化,在右侧窗口找到并双击“不显示锁屏”;在不显示锁屏设置界面,点击选中“已启用”后“确定”即可。
    Snipaste_2020-03-27_14-26-35
  • 在设置首页选择系统,并进入电源和睡眠选项栏将屏幕设置为从不休眠即可。
    Snipaste_2020-03-27_14-30-17

NAS文件夹共享的配置(SMB共享)

  • 在想要共享的文件夹或者是磁盘上右键属性,选择共享选项卡点击高级共享,勾选共享此文件夹选项并设置完全控制权限即可。也可以自行设置含有密码的共享。
    Snipaste_2020-03-27_14-34-31
  • 设置好后回到选项卡就可以复制网络路径并映射为局域网驱动器了。
    Snipaste_2020-03-27_14-43-27

EMBY/Jellyfin/Plex媒体服务器的配置(以EMBY为例)

  • EMBY服务端在Windows下的实现非常简单,硬件兼容上也很不错。
  • 下载EMBY服务端并进行安装。
  • EMBY安装完成后会自行映射本地端口8096,输入[NAS机局域网ip:8096]进入EMBY web后台。按照步骤进行配置即可。
  • 在控制台设置转码,启用高级硬件转码设置并勾选相应转码选项即可。(EMBY和PLEX需要付费使用,Jellyfin不需要。)
    Snipaste_2020-03-27_15-04-20
  • 播放一个测试视频,推荐H265格式,如果后台显示调用了硬件解码器就证明已成功启用该功能。
    Snipaste_2020-03-27_15-06-57

个人博客系统Halo和外部网络同步网盘nextcloud的安装与配置

配置docker环境

  • 这两个功能都依赖于docker才能实现,好在win10系统下现在已经支持docker。
  • 安装docker环境前需要启用系统的Hyper-V和容器功能。在开始菜单搜索 windows 功能进入设置。
    Snipaste_2020-03-27_15-41-50
  • 勾选container容器和Hyper-V(注意这两个功能需要win专业版或企业版)
  • Snipaste_2020-03-27_15-40-14
  • 配置好环境后安装Docker for Windows,按照步骤配置安装好就可以了。
  • 安装好后在NAS机的终端里(用Windows powershell就可以)输入命令
docker -v
  • 有相应的docker版本提示就证明已安装好docker环境。

个人博客Halo的安装与配置

  • 拉取Halo镜像,在Windows powershell终端中输入命令
docker pull ruibaby/halo
  • 等待镜像拉取完成后输入命令部署容器
docker run  -it -d --name halo -p 8090:8090  -v ~/.halo:/root/.halo ruibaby/halo
  • 解释一下配置命令含义
  1. --name halo 指容器名字为halo
  2. -p 指占用端口,格式为[本地端口]:[容器端口]
  3. -v 映射外部磁盘目录 ,格式为[外部路径]:[容器内部路径],这里挂载的路径在系统盘的用户目录下,当然也可以自行设置。
  • 配置好后在右下角的任务栏图标里右键docker的图标选择dashboard就能进入容器管理界面了。
    Snipaste_2020-03-27_16-15-48
  • 等待Halo部署完成,选择在浏览器中打开就能在本地网络下进入到Halo的初始化后台了。
    Snipaste_2020-03-27_16-18-52
  • 成功进入后台后按照步骤初始化即可
    Snipaste_2020-03-27_16-23-00

外部网络同步网盘nextcloud的安装与配置

  • nextcloud的配置会稍微麻烦一些,但同样需要先拉取镜像
docker pull nextcloud
  • 拉取完成后部署容器
docker run --name nextcloud -p 8080:80 -v e:/nextcloud:/var/www/html nextcloud
  • 同样解释下部署命令
    1.-p [本地端口]:[容器端口],本地端口可以自行设置,容器端口请根据容器的配置文档说明设置。
    2.-v [外部磁盘路径]:[容器内部路径],/var/www/html指nextcloud内部所有文件的路径,这里设置映射在了E盘下的nextcloud文件夹里。
  • 容器安装完成后先不用登入后台,先找到nextcloud的安装路径下的config文件夹中的config.php配置文件。记事本打开即可。
  • 添加如下配置到文件最后);之前即可
 'check_data_directory_permissions' => false,
  • 这个步骤的目的在于取消nextcloud对磁盘权限的检查,如果不取消此功能,nextcloud会提示权限设置为0770而无法正常使用。
  • 完成后还需要添加设置,如果已有这个配置直接覆盖掉即可
'trusted_domains' => array(
       0 => '127.0.0.1:8080',
       1 => preg_match('/cli/i',php_sapi_name())?'127.0.0.1:8080':$_SERVER['SERVER_NAME'],
),
  • 此步骤的目的在开放nextcloud的外部域名信任,否则外网无法登入nextcloud,除非手动添加信任ip,但动态ip的情况下也没有办法一条一条ip添加进来。
    Snipaste_2020-03-27_16-49-17
  • 设置好后在docker dashboard中重启容器即可。
  • 登陆nextcloud后台,进行部署和安装。
  • 安装完成后如果不满意pc端只能使用网页上传文件的话推荐试试Raidrive
  • 设置方法如下,注意将标识处改为webdav
    Snipaste_2020-03-27_16-58-24

总结

至此win10NAS的主要功能已经完成了,关于串流和推流服务器的配置其实十分简单了,有机会另外再介绍,摸了。可以看到win10下配置NAS服务还是相对比较容易的,关于其长期运行稳定还要待测试。如果你有一台闲置的机器,性能上还过得去,又想要组一台自己的nas,那么win10系统也许是不错的方案。

# 教程 

评论

美食&料理 教程
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×