低成本自建服务方案(随时随地自由影音、计算和存储)
暂时不发表,觉的发表的意义不大,参考性不强
很久之前写了一篇移动上网解决方案总结,移动上网解决方案总结 | Jerome’s Blog折腾移动上网方案,其实是为了随时随地可以接入家庭网络,使用家里的高性能pc,文件服务器(nas),偶尔看一些影视音频。本篇就来聊聊我的整个方案。
why?tell me why?
百度/阿里/夸克/天翼/和网盘他们不香吗?你为什么要自建网盘?爱优腾不够你看嘛?为啥要自建影音服务?
其实,一般人来问我,我都推荐用公共服务,一年不到1k的价格,不折腾,随时随地的访问,可用性非常高。而自建,麻烦不说,可用性的问题很难解决。所谓的可用性问题,就是你用的时候他就能用。自建服务非机房环境,出于成本的考虑,设备通常也不用高可用方案,出现你想用的时候,他出现故障的概率,还是比公共服务高一些的。
选择自建最重要的考虑是隐私问题,被人看着的感觉非常不好。有一次在家里换下水管,老爷子在旁边看着,我差点跟他吵了一架。这大概率是我的问题,但是有人在旁边看着(或可能有人在旁边看着),让我特别紧张。互联网服务嘛,大家都知道的。虽然现在各种用户隐私协议,但是国情如此,某度老板甚至公开说中国人不在乎隐私。当然端到端加密技术可以解决这个问题,但使用起来就不方便了。
其次是儿童娱乐控制的问题,我既不赞成完全不给孩子看娱乐节目;更不赞成毫无管控的任由其拿着遥控器”自选“,因此我选择协商制。孩子想看什么作品,我觉的没问题,帮他下载后在电视上观看,看完删除。一方面满足孩子娱乐的需要,另一方面也能做好管控。(杜绝在手机、平板上看视频)
最后是成本和使用方便性、利用率的平衡和考量。如果网盘、云电脑(高性能)、各种影音服务全部使用公网服务的话,成本还是很高的,例如云电脑,入门级别的可能还行,但是要达到跟家用电脑同个级别的,价格可能就上天了。另外用的本来也少,按时付费贵且不方便,买套餐利用率太低。影音部分就更不用说了,爱优腾,网易qq各种互斥,想用起来舒服,得把各个会员都开了,但是大部分情况下,又只用得上一个,其他的开了也浪费。
还有一个不重要,但是是个督促我尽快完成这套方案的问题:我使用superproductivity做任务管理,这玩意儿使用webdav同步,但是使用坚果云的webdav和另一个支持webdav的网盘报错,我必须自建一个webdav服务 [1]
what?- 需要什么设备
我好多年攒了不少设备,不过丰俭由人,在现有的基础上增添,其实成本并不高。
- 升腾C92-1 小主机 j1900 8g 128G,咸鱼大概180以内,也不一定非要这个型号,类似的配置或者更好的配置都可以。这个用来建虚拟机和docker,跑各种服务。
- 升腾C92-2 小主机 j1800 4g 64G,咸鱼大概100块,也不一定非要这个型号,类似的配置或者更好的配置都可以。这个主要用来下载,另外还跑一些不想或不能放在虚拟机上的服务。磁盘比较小,建议配置一块ssd u盘[2] 存放下载文件。
- Nas主机和硬盘:咸鱼上买个低配的群晖就可以了,我买的ds214play,150元左右,硬盘两块二手3T的机械硬盘,之前淘宝买的,大概300元/块,现在好像涨价了,硬盘是方案中最贵的。但是如果你没有那么大的数据,可以买小一点的。就我目前的数据量,1T就足够了,3T有很大的富裕。强烈建议两块组RAID1。
- 高性能Pc:这个家里有就用上,没有就没有。
为什么两台C92呢?因为我原来有一台低配的C92(用来折腾达菲的,然后发现纯属瞎折腾,手机听听得了),内存不够开虚拟机和Docker;而一台J1900级别的群晖,例如ds220+,二手都要至少800块。于是我采用存储和计算分离的方案。[3] 买了一台DS214play只用于存储,然后再买一台J1900用于搭各种服务(计算)。这样我就有了两个cpu,共12G内存,比之前crash掉的黑裙好不少了。两台C92都安装easytier(或tailscale),这样内网访问就高可用了,避免一台主机掉线整个内网就访问不了了。其他服务也可以互为备份,如果一台C92硬件坏了,另一台也可以临时部署服务顶上。
当然,如果预算充足,一台高配置的群晖就够了,不需要再搞两台小主机。甚至现在还有N100的全固态6盘位的小主机,那就更富裕了。不过本文主要还是谈低成本方案。
how
我喜欢用debian,所以两台c92小主机,低配的安装原生debian;高配的安装pve,在pve上开了两个虚拟机安装debian,一个当旁路由用,另一个当docker服务器。
群晖就正常的使用群晖系统就好了。高性能pc用win10系统。
低配c92-2 安装transmission,我插了一块128g的ssd u盘当下载盘,配置了samba服务共享给局域网,安装了hacdias/webdav: A simple and standalone WebDAV server.作为webdav服务,下载目录在smb共享目录中,smb共享目录再通过mount --bind 绑定到webdav服务目录下,这样就可以通过webdav来访问下载目录和其他smb共享的文件,好处是内网可以开smb匿名访问,方便,外网通过webdav访问。
低配c92-2 安装了nginx来反代内网的服务;安装了acme来定期获取证书,安装了frp来获得外网ipv4访问能力;安装了easytier来组建虚拟内网(可以用tailscale代替);安装ddns-go来动态更新dns;安装了syncthing来同步工作目录;
高配C92-1 的一个虚拟机安装了shellcrash,做旁路由,为局域网内其他各个设备提供科学上网功能;
高配C92-2 的另一个虚拟机安装了docker,基于docker安装很多服务,其中moontv是提供影视服务的[4]。我还安装了calibre-web服务,管理电子书,转换电子书,还可以分享给家人和朋友。
高配C92-2 还装了一个lxc,目前仅安装了easytier,给另外一个easytier做备份,这样内网访问就做到了高可用。(伪高可用,解决设备的高可用,网络还是单点,哈哈,聊甚于无)。
群晖就开通了file和photo两个应用,配置好反代后,可以方便的在外网访问群晖上的文件和照片,手机照片也可以方便的备份到群晖上。
在c92-1或2上,安装一个wol小软件,同时用frp打通c92的ssh外网访问,手机上安装Termius,简单写个小开机脚本,给高性能pc配置网络唤醒,就可以随时随地一键唤醒高性能主机了。然后通过easytier接入内网,或者frp给高性能主机配置外网访问端口,就可以随时随地远程到高性能主机干活了。手机平板都可以安装微软的rdp(现在叫Windows APP),这个效果最好。当然也可以使用todesk、网易uu,rustdestop等,实测rdp最好用。
不推荐
不推荐大量保存影视资源
我这么多的硬盘,就是原来松鼠症发作,囤积影视作品导致的。长期以来堆积了大量几乎不会看的资源。后来服务器挂掉,我乘机整理了一下,实际有用的资源不超过500G,核心内容不超过10G(个人文档)+200G(照片)。
绝大部分影视资源是很容易下载的,没有保存的必要(特别的爱好者除外)。当我清理掉这些影视资源后,我可以用这些磁盘组成raid1,再也不用担心单个硬盘挂掉带来的资料丢失和服务不可用问题了。
所以不推荐保留大量影视资源,首选用moontv观看,如果有其他要求,bt随下随看随删。担心不好下载可以养一个pt,或者各种免费网盘的容量也够用了,还有pikpak磁链下载(免费6G容量),还有电报。。。
自建服务的缺点
最开始我的自建服务是从一台蜗牛星际开始的,各种问题,一言难尽,如果再来一次,我肯定是不愿意的。
自建服务最大的问题,就是前面提到的可用性,其次是对个人的构建和运维能力有要求。
而自建服务的优点,除了隐私,其他方面都可以花钱解决。就隐私而言,自建服务如果能力不足或出现疏忽,内网被黑客攻破,问题更加严重;而公共服务,尤其是比较贵的公共服务,安全性更有保障,隐私也更有保障,普通人基本不用担心。
如果你跟我一样,把折腾配置各种服务当作一个游戏,一种休息,那本文可以参考,用几乎最小的成本,搭建一套具备实用性的个人/家庭服务。
本文概括的写了一下我的低成本自建服务方案,没有谈论细节,但是都给出了关键词,适合有兴趣的朋友参考。后面可能写一下外网访问内网的问题(太多坑)。如果细节方面有感兴趣或有疑问的,欢迎评论区留言,我尽量解答。
参考说明
滴答清单是非常好的选择,但是我不明白他为什么这么贵(199/年),于是我转而寻找开源替代,然后发现sp的快捷键很爽,理念也很好,稳定性差一点。 ↩︎
本来我有一块限制的1T的2.5寸机械移动硬盘,但是据说机械硬盘用来当下载盘死的块,功耗也比较高,于是就用闲置的128G的SSD U盘当下载盘了,SSD耗电低,频繁读写没影响 ↩︎
存储和计算分离有优势也有缺点。群晖photos的人脸识别功能,要J4125(类似J1900)之类的性能较好的Cpu,在ds214 play的机型上跑不了。我尝试在性能较好的pc上使用开源软件photoprism识别,效果没有群晖的好,管理上也比较麻烦。后面就没折腾了。用的场景不多。 ↩︎
介绍一下,这个解决了绝大部分影音需求。简单的说,互联网上有各种网站出于各种目的提供了大量免费的影音资源(带db广告),这个服务就是抓取这些连接,以非常清晰,可以搜索的模式展现出来,客户端(浏览器)点击影片就可以直连到网上的某个资源观看影视。如果对视频质量没有特别高得要求(用手机看)、能接受db广告的穿插、能接受偶尔的不流畅,这个还是很香的;对视频质量有要求的话,通过transmisson下载高码率影音文件,在家用电视或电脑播放就可以了(网易爆米花通过webdav添加trans下载目录的资源,也可以在外地播放,但是考虑到家宽的上行速度一般,还有限速,所以不适合码率特别高的视频文件) ↩︎