玩物誌七
开始之前先上一张目前我正在使用的简要网络拓扑图:
这里就粗略的咧咧思路和实现方式及原因,技术细节不做过多的讨论。
网络连接
这里的无线路由器就是一台普通的路由器,主要负责数据交换,DHCP和WiFi能力提供,这些都是他擅长的,我觉得就应该交给他做。至于Homeserver首要的任务就是为全家提供科学的访问网络的能力,然后再根据需要添加一些其他能力。鉴于Homeserver的定位,他就免不了被折腾,因此为了保证整体网络的稳定性没有将其作为主路由串联接入网络,而是采用大家所说的旁路由方式(其实就是个网关而已)。
实现上Homeserver通过Openwrt提供网络能力,将无线路由器DHCP分发的网关指向Openwrt,再将Openwrt网络接口的网关指向无线路由器即可。这样全部设备都可以自动科学的接入网络,而无需单独设置。一旦需要折腾Homeserver,只需要将DHCP分发的网关指回无线路由器自己即可,其他设备重连下WiFi即可照常上网。
另外,在硬件上也可以节约成本,因为Homeserver只要一个网口连无线路由器就够了。
服务器的虚拟化
虚拟技术
首先,为什么要虚拟化?第一个原因就是省钱,如果资金充裕当然每个服务都开个服务器那最爽了;还有就是便于维护,一台怎么着也比多台好维护。
再来,说说虚拟化技术,免费的。聊聊三个典型的:PVE、KVM和Docker。
PVE其实就是Linux+KVM+Web控制台的整合,硬件上就不要先装一个操作系统了,自己就是。他可以虚拟完整的物理设备,在这些虚拟设备上可以装各种系统,包括Openwrt。
KVM是一个内核级的虚拟机软件,类似于Windows系统里的VirtualBox,全系Linux支持(VirtualBox也支持Linux,但效果不如KVM)。硬件上需要先装一个Linux系统,然后安装KVM软件,再通过KVM虚拟各种设备从而安装各种系统。KVM提供图形管理界面,因此安装虚拟机也简单。
Docker是一种容器技术,简单说就是把应用程序安装需要的全部东西都打成一个包,然后通过一条命令就可以安装使用了。硬件上也需要先装一个操作系统。使用Docker可以大大简化维护成本,比如有些应用需要安装webserver还需要数据库等等一堆东西才能正常使用,使用Docker就不用这么麻烦了。
总之,安装设备用前两者,安装应用服务用Docker。
我的方案
家用服务器怎么装,装什么全凭个人需求决定,需要什么样的硬件配置也看需求。这里就列下我的供大家参考。
我的硬件是J4105,8g内存,60g固态硬盘,单网口,外接一个USB3.0的移动硬盘做存储。配置不高,应付下列需求绰绰有余。
Openwrt安装
在前面的一篇文章(使用Docker安装Openwrt软路由)绍了使用Docker的方式,实际使用了一段时间,目前已经改用KVM的方式。我的中转节点是自己在一个垃圾VPS上搭建的,先前openwrt使用docker方式一直不稳定,速度也不理想,高峰时油管240打开都费劲,以为是VPS的过。但后来换用KVM,同样的节点不仅十分稳定,而且速度飞快,4k无卡顿,拖动也就2-3秒的事。看来容器技术不太适合加解密和网络交换。
服务器安装
需求
先说我的需求吧:这个服务器需要装Openwrt上网;需要装个Windows,主要装迅雷、百度网盘,长期开机下下东西,还有office,临时用下;需要做电影服务器,从各个终端都可使用;需要播放影片直接看;需要存储些电子垃圾;需要bt下载。
底层
我使用的是Linux+KVM的方案。觉得PVE已经是一层linux,再虚拟一个linux装其他东西有点多此一举。就是自己使用,也不需要管理多台PVE主机。另外,在上面的拓扑图中,我的服务器通过HDMI线接了电视,需要的时候拿他放个片片,是需要图形界面的,不如就直接来个linux,再用kvm虚拟其他。
底层安装带图形界面的Debian系统,主打一个稳定。然后安装远程桌面及kvm。通过kvm虚拟两个主机,一个装windows,一个装openwrt。远程桌面可以在不使用电视的情况下操作linux的图形界面,比如调整个kvm的虚拟机。这里强调一下,kvm的虚拟有多种网络模式,默认安装使用的是NAT模式,虚拟机可以访问外部网络,但外部网络无法访问虚拟机内部网络。因为需要远程windows,以及用openwrt做网关,因此虚拟机需要直接接入到局域网内,具备局域网的真实ip,因此网络模式必须切换为网桥模式。简单的讲就是在linux服务器上新建一个网桥,网桥使用实际物理网口的配置,清空物理网口的配置,再将物理网卡和两个虚拟网卡都加入到新建的网桥当中即可。这样虚拟机就可以直接配置实际局域网内的地址,或者使用局域网内DHCP分发的地址。
服务
Debian安装了图形界面,直接接电视就可以播放影片了。
服务器做推流,从其他终端看片片使用的是通过docker安装的Jellyfin,不仅有全平台客户端,也可以通过Web页访问。
BT下载也是通过docker安装的transmission,通过网页添加下载任务,放那就不用管了。如果开了内网穿透,也可以在外网添加任务,回家享用。
电子垃圾的存储使用通过docker安装的filebrowser。这个文件服务器通过web页使用,没有客户端,轻量响应速度快。除基本的上传下载外,还提供分享、预览和用户管理等功能,也可以直接看视频,家庭使用足够。最重要的是文件存储为实际物理存储,不分片,不使用数据库,filebrowser中看到的文件在哪叫什么名,实际上就在哪叫什么,脱离filebrowser文件一样使用。这样就可以在Linux上开个samba服务器,直接挂载到其他设备,像windows都不用装客户端了。物理介质就是在服务器上挂了一个3.0的移动硬盘。
其他相关资料请点击索引目录。