都什么年代了还在用传统NAS 扩展阅读(随视频更新)

0x01 硬件平台的选配
x79或者x99的洋垃圾现在很便宜,ecc内存也按公斤称,板子的扩展性很强,缺点是待机功耗会大一些,适合多开虚拟机搭建各种不同服务。
在功耗方面,传统ATX电源在低功率的转换效率很捉急,插座功率一般不会低于50w。如果要建一个全能家庭服务器,一天一度电应该不算大的开销
硬盘一定要注意别买成叠瓦盘了,海鲜市场上有很多企业级拆机盘,除了噪音大一点,稳定性可以保障。企业盘发热量大,注意机箱风道
CPU的散热硅脂建议用霍尼韦尔7950,数据显示这玩意经历几千次温度循环以后还能保持导热性能。涂好以后好几年都不用再管它了。

0x02 基本环境搭建与UPS断电保护
创建一个直接打开远程桌面的快捷方式
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe Start-Process “$env:windir\system32\mstsc.exe” -ArgumentList “/v:服务器的名称"
对于RAID方案的选择想要多说几句,我个人不太喜欢硬件RAID,一方面服务器拆机产品发热量很大,正常情况是装在飞行中的机柜里工作,家用PC的风道可能会过热,缩短raid芯片的寿命。
我还试了intel VMD的RAID,虽然在试用的一段时间内工作还算比较稳定,但是需要打驱动,为了避免对系统稳定性造成影响,我最后还是回归到了原生软RAID的方案
RAID5极度不推荐,有人已经做过计算,现在的超大容量硬盘RAID5重建失败几率最高可以到30%。而且现在硬盘又不贵,海鲜市场的拆机企业盘,皮实又好用。没有必要用RAID5和自己数据的狗命换那几个T的储存空间。
对于普通用户来说,把家庭内网升级到2.5G经济又实惠,千兆升级到2.5G基本是无感的,刚好能到机械硬盘的速度上限,所以无脑RAID1最合适。10G的网络设备不管是价格还是发热量还是搭建的技术难度都要高了不少。如果哪天有能力搭建10G网络了,也一定有能力选择一个复杂的RAID方案。所以我推荐新人无脑RAID1就完事了
网上有很多女生自用99新的教程,教人用磁盘管理转换成动态盘,再添加镜像卷制作RAID1

微软明确指出动态磁盘已经被废弃,请使用储存空间功能。

0x03 NAS常用软件安装与设置
对于吸血雷的一点看法:
以前不懂事,觉得迅雷就是快,还很吝啬自己的上传,每次就限制几十k,后来懂得多了才知道它吸公共BT网络的血
我在试用Transmission的那两天,就看到有两个迅雷客户端,从我这吸了几个G的上传,但进度一直是0%。
这种做法真的挺恶心的,正常BT下载,就算没有下载完成以后做种的习惯。在下载过程中也同时在把自己的数据分发出去,四舍五入也在给BT做贡献。BT的共享精神需要所有人共同去维护。
如果在自己的电脑上用BT软件,我推荐一手Bitcomet,我没有在NAS上部署Bitcomet的原因就是这玩意的WebUI太简陋了。本机使用的话功能是非常强大的。

关于电影刮削,b站大学里已经有很多tiny media manager的教程了,我就没有在视频中提到
需要注意的是,tmm刮削过程中连不上服务器是因为DNS被污染了,需要修改本机host
在https://dnschecker.org/里搜索api.themoviedb.org,会出来全世界的CDN节点
复制杭州的CDN节点到host中,就可以正常下载电影的元数据了


如何给电视安装Kodi也有非常多的现成教程,所以也不再赘述了。

cloudreve看个人需求选装即可,它最大的用处还是在外网的分享和多端文件传输
验证Web服务监听的命令
netstat -ano |findstr 8080

0x04 IPv6+DDNS
首先是关于IPv6的心得,我建议把光猫直接改桥接,再配一个不要那么丐的主路由去拨号
随着智能设备越来越多,内网也会变得越来越庞大且脆弱,再也回不去那个adsl只接一台电脑的年代了。
我现在用的主路由是ax86u,刷个梅林固件美滋滋
成品路由器的功能选项肯定不如软路由多,但是对于普通人来说也完全足够了
软路由到处都是坑,一不小心家里搞断网一时半会恢复不了,小心被老婆打断腿。
所以我更推荐光猫桥接+高级成品主路由的方案。
现在的路由器默认开启了IPv6防火墙,我是直接关掉的
比起路由器的猴版防火墙,在终端设备上设置防火墙规则更灵活更细节。
比如可以把445端口(SMB)3389端口(远程桌面)设置仅限内网访问
对广域网只暴露web server的端口。
DDNS项目地址:
https://ddns.newfuture.cc/
https://github.com/NewFuture/DDNS/releases
支持多个DNS服务商:
DNSPOD
阿里 DNS
DNS.COM
DNSPOD 国际版
CloudFlare
HE.net
华为云
DDNS设置成功,并且防火墙也放行了相关服务的端口
就可以用example.com:8096打开服务器上的jellyfin的网页服务
不过现在这些软件的网页服务都是http的明文传输
后续视频会讲解如何部署SSL加密层
这一章可能会用到的powershell命令:
PS > netstat -ano |findstr "8080" #筛选8080端口上的活动
PS> nslookup example.com #查询example.com的DNS解析
PS> ipconfig #检查网络接口的属性(ip,子网掩码,网关)
PS> ipconfig /flushdns #清除本地 DNS 解析缓存
一个DDNS配置文件的例子
{
"$schema": "https://ddns.newfuture.cc/schema/v2.8.json",
"debug": false,
"dns": "cloudflare", //选择一个DNS解析服务商
"id": "test@gmail.com", //cloudflare账号
"index4": "default",
"index6": "public", //仅获取公网ip
"ipv4": [],
"ipv6": [
"example.com" //想要解析的域名
],
"proxy": null,
"token": "1234567890abcdef", //cloudflare的Global API Key
"ttl": null
}

0x05 Nginx 反向代理 &自签TLS传输层加密
在这一期内容后,我终于敢说这台家庭服务器已经薄纱群晖等成品NAS了
Nginx for windows的功能和linux服务器上的一样,也可以代理局域网内的机器,端口,服务
甚至还有更狂野的功能等待大家去开发
nginx的下载地址
https://nginx.org/download/nginx-1.25.0.zip
nginx命令
ps> .\nginx.exe #启动Nginx
ps> .\nginx.exe -t #测试config 文件编写是否正确
ps> .\nginx.exe -s stop #停止Nginx
ps> .\nginx.exe -s reload #重新载入config
一个空的nginx.conf
worker_processes 1;
events {
worker_connections 1024;
}
http {
}
一个简单的监听用来测试nginx的转发正常工作
http {
server{
listen [::]:5001; #监听IPv6上的5001端口
server_name example.com #监听访问example.com的请求
location /{
proxy_pass http://localhost:8080/; #转发bt的webui
}
}
}
安装我死了(WSL)

PS> wsl --install ubuntu-22.04
生成自签证书并解锁证书的外部访问权限
$ sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/nginx-selfsigned.key -out /etc/ssl/nginx-selfsigned.crt
cd /etc/ssl
sudo chmod 777 nginx-selfsigned.*
ll


从文件管理器里可以进入WSL的存储空间
在/etc/ssl提取两个自签证书文件,复制到
C:\Program Files (x86)\nginx-1.24.0\conf\ssl
Nginx SSL 配置示例
http {
############
# SSL Settings
############
ssl_certificate ssl/nginx-selfsigned.crt;
ssl_certificate_key ssl/nginx-selfsigned.key;
ssl_protocols TLSv1.3;
ssl_prefer_server_ciphers on;
ssl_ciphers "TLS13-CHACHA20-POLY1305-SHA256:TLS13-AES-256-GCM-SHA384:TLS13-AES-128-GCM-SHA256:EECDH+CHACHA20:EECDH+AESGCM:EECDH+AES";
ssl_ecdh_curve secp384r1;
ssl_session_cache shared:SSL:10m;
ssl_session_tickets off;
ssl_stapling on;
ssl_stapling_verify on;
server{
listen [::]:5001 ssl http2;
server_name example.com;
if ($scheme = http) {
return 301 https://$server_name$request_uri; #强制跳转https
}
location /{
proxy_pass http://localhost:8080/; #转发bt的WebUI
proxy_cache_bypass $http_upgrade;
proxy_set_header Host $proxy_host;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header X-Real-IP $upstream_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Port $server_port;
proxy_set_header X-SSL-CERT $ssl_client_escaped_cert;
}
}
}
Nginx自启动
右键创建一个nginx的快捷方式,然后丢进
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup

如果遇到了文章和视频里没有提到的疑难杂症,可以回到视频的相应章节评论区留言,也可以加入我的聊天群923723119,我们一起研♂究