私有服务器WINDOWS+HYPER-V+利用开源NAS+EMBY+ARIA2打造家庭影院及内网server

前言

已经时隔很久没有写文章了,正好今天4T硬盘也到了,NAS组建也算完成一部分了,趁这个时间来完善一下搭建之路,当然,服务器还是老面孔了E5V3+32G

可以看我之前写的文章写给想要捡垃圾组装服务器的新(zi)手(ji) 闲置服务器当然是要利用起来啦,就像做人呢,最重要的是开心啦(好像并没有什么关系)

整体网络布局

整体都是比较简单的,(家用设备没那么多) 小米ax6000的路由器个人感觉已经很能打了。 小米的物联网设备配合app真的挺好用,开空调不用遥控器(缺点是没网的时候又找不到遥控器你就等着被蒸吧) 楼上还布置了一套电竞设备风 楼下客厅则是正常的电视+游戏机+游戏pc3

为什么要选择NAS?

这个问题一直在问自己,在目前网盘、在线资源盛行的时代 还需要自己去折腾一套NAS吗?我觉得可以列出下面的几个场景

  1. 我需要不同的设备直接分享同步文件 比如pc下好小说 同步到手机,手机的视频资源同步到电脑

当然这个场景可以用微信传输助手、网盘进行解决,不过要考虑一下网速的问题(上传速度500kb)尤其是拍好的视频资源想快速剪辑的情况下,这个绝对会折磨死你,并且外网的上次速度会影响其他的设备正常上网冲浪

  1. 拍好的视频、照片、文件持续化保存、并且能快速分享来到家里的朋友

持续化保存这个场景好解决,自己的电脑硬盘够大就好了,不过要做到快速分享不是一件容易的事情,我们考虑一下,没有NAS的情况,我应该先打开电脑,找到文件,然后上传百度云/微信助手,等做完后,朋友已经在happy了,而你还在打开电脑(doge保命)。那有NAS的情况,只需要让朋友的手机连接网络即可,真正做到随时非随地预览

  1. 持续化下载+厌倦了删减

《你永远也不知道为什么会少一段》,《为什么弹幕都在说评论区见?》 有挺多资源看到的并不是完整版本,并且有些新番还看不到,正常去搜罗这些资源会花费大量的时间,并且打开网站后会有一堆的广告+小圈圈转个不停(web host网速慢),于是乎,同样的时间 我为什么不搭建一套持续化下载工具存到我的NAS里呢?

  1. 利用好闲置设备

买了树莓派->发个朋友圈->ssh安装个linux->吃灰。 买了个服务器->变成游戏pc->AMD大法好->性能跟不上,升级要等新的一波洋垃圾。 如果你也有这样的闲置设备 不妨整一套NAS来玩玩。

  1. 游戏下载一次就好

我有3台pc,无NAS情况每台pc都需要下载一次游戏安装包,通过NAS我只需要在NAS下载好即可,每台电脑走内网复制即可(1000M 内网速率比外网快多了)

我该如何选择NAS载体设备

讲真,群晖等NAS厂商已经做到部署一套家庭NAS非常简单了,如果你不想折腾,其实入手现有厂商的是最好的选择。 如果你,喜欢折腾、喜欢捡垃圾(开局一人一主板,设备全靠捡)、花一点小钱折腾多一点用户,你不妨可以考虑自己整一套server+NAS+软路由等。 当然还需要你有点电脑基础知识,比如linux是什么、ssh是什么、虚拟机是什么、编译是什么。 废话不多说,下面开始整(本文是组建完后写的,可能有一些记录缺失,我尽量会放上我当时找到的教程原文,大家也可以去选择看原文解决问题)

服务器的组建

这步见我之前捡垃圾的文章即可写给想要捡垃圾组装服务器的新(zi)手(ji) 不过过了三年 我还想说几句

  1. 性能够吗?

性能党退散!用他打游戏肯定不够,不过过了这么久 我发现我的cpu就没100%持续很久过。平常都是10%-30%左右 2. 服务器能扩展吗? 这套主板的内存插槽我只插过两条16GB,pci插槽还可以装个显卡用来做转码,SATA9个口我只用了3个,网口4个我只用了1个,对我来说,扩展性和性能都还没达到这套服务器应有的价值 3. 扩展便宜吗? 当然便宜!我们图吧捡垃圾党可不是浪得虚名,内存坏了不心疼 ddr4+2133mhz+16g只需要200大洋、4T硬盘400大洋。cpu 200一个,主板用好一点即可 目前我还没遇到坏的设备,可能内存有一条有点问题 后期换掉就行。硬盘一定要组raid1,仓库盘可以basic(不组)

服务器系统选择

看了很多资料 大多推荐的是KVM,而我推荐的是window server,为什么?

  1. 远程桌面随时链接
  2. GUI界面好维护

至于其他的在我看来差不多,用windows server主要还是方便,hyper-v也支持显卡直通/虚拟化

安装

msdn.itellyou.cn/ 下载好镜像文件(windows server 2019 或者 2019+) 再准备一个u盘(16g即可) 最详细简单U盘装系统--小白必看 刻录好pe,接着再直接复制下载好的文件进u盘 开机F12选择U盘启动 进入PE系统后先格式化硬盘+分区(硬盘模式用GPT模式支持>2T硬盘) 选择镜像安装,选择好下载好的镜像文件。 等待安装后会自动重启电脑,这个时候可以拔出U盘就行。 按照windows指引安装好,不用登录微软账号,密码设置复杂一点,字母+数字+符号>16位

分区tips

我用的是raid1,后面加了basic 4t,所以是有两块磁盘的 raid1 建议分区为C盘(200G)做系统盘,剩下的分配到D盘做资料盘, basic 全部分配到E盘做仓库盘

设置远程桌面

这一步时间有点久远了,如果没把握就随时准备好一台显示器吧. 如果没有两个人同时访问的话 我建议直接选择第一个开启远程桌面访问即可,>2用户设置起来太折腾了

接着改好你的远程端口访问号 更改计算机上的远程桌面的侦听端口

看完这堆资料后 如果还有不懂 可以求助谷歌/百度及朋友 还有各大网友

开启hyper-v

在 Windows 10 上安装 Hyper-V 直接看官方的windows 10开启即可,windows server2019后操作跟win10差不多,哦对,你的主板要开启虚拟化 要不然是没办法启用hyper-v的

NAS系统选择

【NAS】开源 NAS 操作系统不完全汇总 我安装过freeNAS,安装也成功了,但是那一套复杂的ACL权限控制系统让我头晕 以及看了官网的一堆文档后 还是没办法指定用户访问 于是我选择了更加轻量小巧一点的OpenMediaVault,安装简单、管理简单、维护简单,强烈建议

下载

www.openmediavault.org/ 来到download页面,我用的是5.6版本,6没试过,这里我也先建议搭建用5.x版本 稳定一点 选择下载 Old Stable,下载好后是个iso文件,复制到服务器的某个硬盘里 因为我们用的是hyper-v 所以不需要看网上那么多的安装教程

hyper-v安装OMV

Hyper-V使用经历(虚拟机安装Linux) openmediavault安装 OMV是基于Debian系统的,所以我们只需要参考HYPER-V安装Debian的教程即可 建议安装的时候分配最大cpu+8G内存 这样一开始安装会快一点。 安装的时候磁盘分配不用太大,200G即可(vm磁盘选择D盘即可,后面我们还要挂载basic的),我安装选择的是1代虚拟机(兼容性好一些) 安装比较简单,OMV做了系统指引。安装完毕后先关闭虚拟机,判断安装完毕直接看有没有linux命令行界面出现即可

安装后设置hyper-v网络

正常hyper-v是通过服务器NAT访问的,这里就会有问题,比如NAT后 NAS服务器得到的ip是172.16.1.x 而我们路由器分配的网段是192.168.31.x这样是没办法从外部访问到我们的NAS系统的,所以要设置好对应的网络,设置也很简单 如果没有网络的话 则新建外部网络即可,外部网络选择你的网口网卡就行

安装后挂载basic磁盘

IDE控制器被我用满了,用scsi控制器就行,新建硬盘 选择E盘,硬盘大小我一般都是设置为full size即4T全部给了,当然硬盘到手实际上就3.6T我建议大家分配3.5T左右就差不多。

启动系统

这个时候就可以启动系统了,如果不出意外的话 你应该可以访问到NAS了,但是,你不知道NAS的ip地址是多少,这个时候你可以选择

  1. 路由器列表看看新加入的设备ip
  2. NAS执行命令行

先说执行命令行ifconfig 通过hyper-v连接进去后 输入账号密码(在安装步骤会让你设置root密码),找到那一串192.168.31.x后就是你的NAS访问ip。 先别急访问,接着去路由器列表 设置DHCP静态IP分配,这一步会让你的NAS IP永远保持固定 小米路由器的在 往下滑动,选择添加,接着选择一键绑定即可

连接OMV服务器tips

  1. 可以选择用ssh工具 比如FinalShell 或者electream 进行连接

访问OMV WEB控制台

直接在浏览器输入刚刚的ip(如果在外部访问不了,请确认你的windows server的网络是专用网络,并且当前访问的设备网络也是专用网络,如果确认后还是不能访问请关闭windows server对应的防火墙等) 默认的账号密码是admin/openmediavault 可以进入控制台后自行变更。

OMV设置磁盘挂载

先去磁盘界面看到我们有几块磁盘。 其他的设置可以先不看,来到文件系统,点击新建 选择我们挂载的basic磁盘,选择EXT4文件格式的即可,等待格式化,格式化完毕后点击挂载按钮即可

OMV设置用户权限

如果没有用户就新建用户,用户组勾选上users, adm, sambashare 如果你就自己用NAS可以勾选上root权限组 tips 如果发现可以正常访问NAS文件但是无法删除,可以加root权限 或者去对应的文件夹cd /srv/挂载的磁盘名称执行chmod -R 777 * 开最大文件夹权限

OMV设置共享文件夹、NFS、SMB共享

我一般会开最大权限,内网访问也不怕,除非你把你们家WIFI密码共享出去了,建议有条件的开朋友网络,设置不是一个ip段和ip隔离,名称记得用英文 路径会自动带入 不建议跟我一样用/做路径 至少也是/movie

选择我们刚刚的文件夹,权限给读写

选择允许访客(这样不用每次输入密码)

外部访问NAS

打开另一台windows电脑,网络记得调整到专用网络, 打开文件夹,选择我们的NAS设备 出现这个问题不要慌,能看到就行,这个问题基本上你在当前界面多刷新几次就行 最终就能看到我们的NAS挂载的文件夹

NAS基建搞定

到这一步你的NAS基建已经搞定了,至少可以满足文件快速分享和存储了对吧...但是这才是第一步,折腾很累对吧,不妨考虑把剩下的行为拆成好几个步骤,毕竟完善剩下的行为后 你的观影体验会得到直线提升

EMBY 家庭媒体管理

为什么需要他? 当你下了很多电影后,你会选择怎么观看呢?从NAS复制到本地?还是直接双击NAS挂载文件夹内的电影文件?PC可以这样做,但是我的ipad、surface平板呢?并且那么多的电影 那么多的文件夹 我都得找个半天,有没有一种方便快捷的管理软件呢?这就是EMBY

安装

emby.media/linux-serve… 选择Debian系统进行下载

Download emby-server-deb_4.7.2.0_amd64.deb
dpkg -i emby-server-deb_4.7.2.0_amd64.deb
Open a web browser to http://localhost:8096

复制到NAS系统中后 执行dpkg -i emby-server-deb_4.7.2.0_amd64.deb 一键安装即可,免费使用,有付费版,付费版可以后期酌情开通

访问

默认端口是8096http://NASIP:8096/ 按照指引安装完毕后即可体验使用了, 去后台控制面板选择媒体库 选择对应的文件夹添加即可 原创 篇三:家庭多媒体中心软件 Emby 介绍 后面记住上面的链接 即可手机、pc、ipad访问了,如果家里有多人用 可以选择去后台添加额外的用户避免某些看电影的进度会被干扰

aria2 远程下载器

当你做完上面两步后实际上可以达到一个比较良好的观影体验了,但是还没解决一个问题就是 我该怎么下载电影/资源?难不成我用电脑每次下载后 手动复制进NAS文件夹内?这个时候可以考虑在NAS服务器内部署aria2远程下载器,种子下载器也是一样的道理

安装

github.com/aria2/aria2… 下载选择aria2-1.36.0.tar.gz格式

复制到NAS系统文件夹内 解压

tar xf aria2-1.36.0.tar.gz 
cd aria2-1.36.0/

接着就开始build吧,不过因为OMV默认安装的是一个最小化的Debian系统,很多的编译环境都没有 (当时安装了很多,可能这步会有漏缺,欢迎查漏补缺)

apt-get install libxml2-dev libcppunit-dev autoconf automake autotools-dev autopoint libtool g++ make
apt-get install openssl
apt-get install gnutls
apt-get install libgnutls-dev
apt-get install libssl-dev
./configure
make && make install

正常来说到这一步就已经安装好了,但是!aira2是cli 也就是命令行工具 要记住那些参数 指令太麻烦了,于是就有web端的可视化管理工具

airaNG安装

安装screen

众所周知 我们断开ssh后 tty就会消失,也就是进程不会继续执行,于是我们需要screen来帮我们断开后还能继续执行,当然管理工具很多,node的pm2也可以,linux本身写个服务也可以,在这里我只是为了图个方便

apt-get install screen

下载ariaNG

github.com/mayswind/Ar… 下载 AriaNg-1.2.4-AllInOne.zip 这个包,所有的都打包进一个index.html方便后面操作

这一步可以选择在本地解压了 然后直接丢到NAS去 也可以上传zip包到NAS解压 只不过需要装apt-get install zip unzip

启动ariaNG

其实在启动的时候 你有两种选择

  1. 在NAS启动
  2. 在本地启动

在NAS内启动可以做到持久化

node&http-server安装

那么一个index.html文件该如何预览呢?我选择的是node的http-server,当然 如果你熟悉nginx等 估计也不用看这步 用nvm.sh安装可以免去很多环境变量和版本切换的配置 nvm.sh/

apt-get install wget
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash

访问github网络不好的童鞋...我也没啥办法这步就得自行解决啦比如通过v*ray+proxy 配置linux全局下载,或者放弃nvm安装 选择直接安装node 懒得折腾的可以直接安装nodeLinux 如何安装 nodejs

安装好node后执行node -v应该能看到你的版本,建议node版本>=14.x即可,接着安装http-server

npm install http-server -g

真正启动aria

screen -S ariang
cd aria2-web # 这一步是你上传index.html在的文件夹 我是上传至aria2-web
http-server

这个时候屏幕应该会显示如下信息 这个时候你可以访问http://ip:8080来看到aria2界面

aria2配置

这个时候你会发现你还链接不上,那是因为你虽然启动了ariang但是还没启动aria2命令行,在启动aria2命令行之前你需要做一些配置,或者直接把下面的配置进行修改保存,记得更改dir这个路径为你的NAS磁盘路径和rpc-secret这个密钥

## '#'开头为注释内容, 选项都有相应的注释说明, 根据需要修改 ##
## 被注释的选项填写的是默认值, 建议在需要修改时再取消注释  ##

## 文件保存相关 ##

# 文件的保存路径(可使用绝对路径或相对路径), 默认: 当前启动位置
dir=/srv/dev-disk-by-uuid-309e5bed-9ad9-498c-ae41-964c91efdf14/download
# 启用磁盘缓存, 0为禁用缓存, 需1.16以上版本, 默认:16M
#disk-cache=32M
# 文件预分配方式, 能有效降低磁盘碎片, 默认:prealloc
# 预分配所需时间: none < falloc ? trunc < prealloc
# falloc和trunc则需要文件系统和内核支持
# NTFS建议使用falloc, EXT3/4建议trunc, MAC 下需要注释此项
#file-allocation=none
# 断点续传
continue=true

## 下载连接相关 ##

# 最大同时下载任务数, 运行时可修改, 默认:5
max-concurrent-downloads=100
# 同一服务器连接数, 添加时可指定, 默认:1
max-connection-per-server=5
# 最小文件分片大小, 添加时可指定, 取值范围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=0
# 单个任务上传速度限制, 默认:0
#max-upload-limit=0
# 禁用IPv6, 默认:false
#disable-ipv6=true
# 连接超时时间, 默认:60
#timeout=60
# 最大重试次数, 设置为0表示不限制重试次数, 默认:5
#max-tries=5
# 设置重试等待的秒数, 默认:0
#retry-wait=0
# disabled https auth
check-certificate=false

## 进度保存相关 ##

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

## 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=123456
# 设置的RPC访问用户名, 此选项新版已废弃, 建议改用 --rpc-secret 选项
#rpc-user=<USER>
# 设置的RPC访问密码, 此选项新版已废弃, 建议改用 --rpc-secret 选项
#rpc-passwd=<PASSWD>
# 是否启用 RPC 服务的 SSL/TLS 加密,
# 启用加密后 RPC 服务需要使用 https 或者 wss 协议连接
#rpc-secure=true
# 在 RPC 服务中启用 SSL/TLS 加密时的证书文件,
# 使用 PEM 格式时,您必须通过 --rpc-private-key 指定私钥
#rpc-certificate=/path/to/certificate.pem
# 在 RPC 服务中启用 SSL/TLS 加密时的私钥文件
#rpc-private-key=/path/to/certificate.key

## 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
peer-agent=Transmission/2.77
bt-max-peers=30
bt-tracker-interval=60
bt-seed-unverified=true
# 当种子的分享率达到这个数时, 自动停止做种, 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

复制上面的文件保存至arar2.conf

接着在.bashrc文件写入别名方便启动

vi ~/.bashrc

写入alias aria2s='aria2c --conf-path=/root/aria2.conf' 接着保存.bashrc文件,不熟悉的可以通过sftp连接上去编辑

刷新环境变量 source ~/.bashrc

接着开启aria2

screen -S aria2
aria2s

访问

输入http://ip:8080 来到设置页,输入你在aria配置文件中配置的密钥,随后就开始享受aria2下载吧

最终成果

折腾到这里其实已经初步完成了一个比较舒服的下载+共享+观影环境了,不过还可以做更多的事情比如

  1. 小米等安卓系统电视机如何连接emby?

这个答案是kodi,不过折腾起来太麻烦了,涉及到cpu版本问题 有些电视机不支持16版本以上的kodi,这里可以用ipad等平板投屏会更加方便一些,kodi的折腾已经有很多值友写的很清楚了,不过得准备好一个u盘 2. 目前这些都只是在我的内网访问,我如果出差了,但是又想看我内网里的电影怎么办呢? 这个时候可以可以考虑 (1)如果有公网ip的话,结合阿里云DNS写个轮询DNS解析工具(目前我已经写了 node版本的 有需要的可以联系我) (2)如果没有公网ip的话,买一台云服务器,云服务器设置流量付费,通过部署nps内网穿透出去,0.8元/gb。目前这种是最方便的了,后面有空再补一篇

来看看最终的成果吧

后记

本次折腾来来回回花了一周(工作日白天要work),本文更加是一种记录和导读格式,中间省略了一些细节,如果有忽略的可以留言后面进行补充。 本文使用了surface go2+markdown+notepad++完成,入手了surface go2后发现某些时候不想拿macbook的场景又想写点东西真的是太方便了,朋友正好也入手了一台surface pro6,后续有机会写一下surface go2的便利性及生产力

猜你喜欢

转载自juejin.im/post/7127472290417082375