第一步:选择硬件
个人服务器的门槛比你想象的低:一台两三百元二手小主机,或者一台闲置的笔记本电脑旧物利用,或者组一台ITX主板和小机箱的低功耗主机。如果你预算充足又不在意功率甚至可以买台塔式服务器。总之个人服务器的硬件价位选择非常丝滑,从几百到几万都能找到合适的方案。我建议从小主机或者旧笔记本脑开始入门。
家庭服务器常用的功能有:家用NAS、下载机、智能家居服务器、家庭影院、客厅游戏机、软路由、监控录像机等等。要想满足上面的这些需求,我对小主机的硬件有这几点建议:
一、CPU4核以上、内存8G以上,满足多任务处理的性能需求;
二、有2个以上硬盘位,或至少有1个板载硬盘+1个2.5寸SATA硬盘位(系统和数据分别在2个独立硬盘上);
三、用作软路由的小主机最好有2个以上的网口,作为影音服务器最好支持HDMI2.0以上;
我推荐两个参考配置:CPU:J4105内存:8G 或者CPU:N4100内存:8G,价格目前应该在五六百左右。
再分享一个经验技巧:小主机一般为12V-19V直流供电,低压的直流供电加UPS的成本比交流供电低很多。网上有很多18650锂电池的成熟方案,自带DC公母头开箱即用。所以建议给小主机配一个充电电池充当UPS,成本不过几十元。
最适合新手的家庭服务器硬件,我认为是闲置的旧笔记本电脑。旧笔记本电脑的优势有这几点:
一、笔记本自带电池,相当于自备UPS;
二、笔记本自带屏幕、键盘、触控板,操作和维护基本不需要其它外设,使用方便;
三、笔记本运行功率一般不高,息屏运行功率一般不超过15W,比小主机高不了多少;
四、笔记本一般有3个硬盘位,拓展存储方便(笔记本的光驱位也可以改装成硬盘位);
旧笔记本价格和同性能的小主机接近,五六百可以淘到能做家庭服务器的笔记本电脑。不过我也要提醒几点:
一、旧笔记本的最低性能建议是能支持流畅运行Windows10,过于老旧电脑即使便宜也不建议选;
二、不支持拓展硬盘只有板载硬盘的轻薄本(一般为64G、128G),不建议选;
自己搭建主机的可玩性比上面两个方案更强。主机相比小主机和笔记本电脑优势有这几点是:
一、具有PCI-E接口,拥有强大的拓展能力(加装万兆网卡、SAS磁盘阵列卡等);
二、可定制多盘位机箱,更适合作为家用NAS;
三、性能上限高,如果不考虑功耗以直接上标压CPU,性能更强。2000元可以组一台还不错个人服务器,比如锐龙5600G的小主机成本不到3000元,但性能和同价位的NAS已不在一个段位;
如果你的目标是真正的商用服务器。那么机架式服务器、刀片服务器、塔式服务器这几类,适合家用的还是塔式服务器。塔式服务器和家用电脑的主机差不多大。可以了解一下戴尔的Power Edge系列、惠普的 MicroServer Gen系列。标准服务器硬件无论在价格还是功耗上都更加适合烧友玩家,对于一般用户而言此类硬件作为家用服务器性能严重过剩。
相信看了上面的内容,大家对于如何选择硬件以及硬件的价位有了基本了解。如果需要我帮忙推荐具体硬件的,可以私信我或者直接留言。
分享一下我自己的硬件方案:由于我上班在异地,所以家里和出租房分别有两台设备:N4100+8G小主机(当初买是600元)、6200U+8G的ThinkPad(闲置的笔记本),之前还淘汰过一台HP T610瘦客户机:AMD T56N+4G(当初买的160元),主要问题是性能不够用。
第二步:安装系统
个人服务器的技术门槛真不高,有的话只有一个:会装系统,当你把各个系统都尝试一遍就算成功入门了。
服务器该选择什么系统?和企业场景的服务器不同是:个人服务器不需要考虑全年无故障运行,不需要考虑容错冗余、甚至防火墙设置都不需要太复杂,所以装什么系统还真的挺自由的。市面上NAS能做的事情,Windows10再安装个Docker for Windows基本都能做。所以不想折腾安装个Windows10就行。但是我依然强烈推荐Linux发行版,因为SSH实在是太方便了。
如果你想学习Linux,要掌握3个基本技能:一、基本的Bash shell命令;二、Vim的基本操作;三、SSH的本操作。这几个技能可以在网上找一下教程学习。
Linux发行版很多,我接触过的有Ubunt(现在在用)、Manjaro、Linux mint(适合配置低的电脑),这几个可以做到开箱即用,网上参考资料也有一些。国产的Linux可以选Deepin深度。至于Arch Linux、Gentoo linux这类需要编译安装的Linux就不适合新手了。如果你的个人服务器性能过剩(8核以上、32G内存以上),想要搭建多系统。可以学习一下ESXi和PVE,通过虚拟化技术让多个系统同时运行。不过我对于性能不那么执着,Docker已经可以满足绝大部分使用场景需求,所以我自己也没有搭建ESXi的需求。
“如何安装系统”作为基础知识我这里就不讲解了,不过我推荐一个系统安装的神器:Ventoy。Ventoy制作安装U盘后,会产生2个分区。空间较小的分区是启动分区,较大的分区是数据分区,把系统镜像和常用软件包放在数据分区。
把系统镜像拷贝到Ventoy启动U盘后,设置BIOS从U盘启动即可开始安装系统。Ventoy最强大的功能是支持同时拷入多个系统镜像,可选择镜像安装,无需重复制作启动U盘。如果进行Windows安装和维护,你更习惯功能更丰富的PE,我推荐比较好用两个:优启通和微PE,其余的PE系统大多夹带了不少私货。
分享一个新手常有的思维误区:Windows和Linux要二选一吗?首先永远不要用饭圈思维想问题。Windows和Linux两者并不需要二选一,两个系统都非常强大都值得学习。日常使用Windows更顺手,但Linux在一些专业场合也非常强大。
第三步:网络设置
如果你的服务器有公网IP地址,那么远程访问服务器并不是一件难事。但是大多数人目前是没有固定的公网IP的,那么zerotier、tailscale这类虚拟局域网解决方案可以帮到你。我最早接触的是zerotier所以以zerotier为案例,tailscale基于wireguard相信效果应该也还可以。
首先到zerotier官网注册一个账户,然后在Networks页面创建一个虚拟局域网。你会获得一个NETWORK ID,通过这个ID你可以让其它设备都加入到一个相同的虚拟局域网中。
接下来就是在不同的设备上安装zerotier的客户端,然后加入上面设定的NETWORK ID即可。windows客户端有UI界面操作比较简单,我主要介绍一下Linux端的操作:
#安装zerotier
curl -s https://install.zerotier.com | sudo bash
#安装成功后加入网络
sudo zerotier-cli join NETWORK ID
#重启一下服务确保设置生效
service zerotier-one restart
#zerotier主要有zerotier-cli(操作程序)和zerotier-one(服务端)这两个命令进行管理
除了windows和linux,zerotier还可以安装在openwrt的路由器和智能手机上。你的设备加入网络后,还有一步需要操作,就是进入后台勾选设备加入虚拟局域网。这个时候,你可以在Manged IPs看到设备的虚拟局域网IP。通过这个IP,不同设备就可以好像在局域网中进行通信。zerotier基于UDP通信,如果双方实现直连速度还是很不错的。如果没有实现直连速度不到1M且延时有500ms以上。可以通过架设moon服务器改善网络情况,这个需要购买云服务器,我将在zerotier提升篇介绍如何操作。
有了虚拟局域网,你就可以在家庭服务器上通过Docker架设各种服务,并远程访问这些服务了。
第四步:部署应用
搭建web服务已经不是什么有难度的操作,Docker的出现让服务搭建变得非常简单(现在的运维都已经主要在折腾集群维护)。Docker基于Linux,但Windows有WSL所以也能安装,可以通过Docker for Windows或者在WSL里安装Docker。下面就来详细介绍一下:
4.1安装Docker
Ubuntu安装docker
sudo apt install docker.io
sudo systemctl start docker
sudo systemctl enable docker
#如果有需要还可以安装docker-compose
sudo apt install docker-compose
Windows安装Docker,可以去Docker官网下载Docker Desktop for Windows安装包,直接运行安装即可,从使用体验上我更推荐原生Linux环境使用Docker。
4.2部署应用
服务器应用部署就是根据需求安装不同的程序,这个内容很难用短的篇幅讲述完,比如homeassistant搭建智能家居服务器就有非常多的内容。所以我会在后面的文章里继续补充,这里主要讲应用部署的两种方法:
第一种是直接安装。像Samba这样的软件,以及Calibre这样的软件都可以通过直接安装的方式。二者都可以通过局域网访问,而通过zerotier就可以在外网进行访问了。
Samba——文件服务器
Windows设置文件共享很简单,linux安装Samba也非常简单:
#安装samba
sudo apt install samba
安装完毕后,只需要把指定文件夹设置成共享,其它主机只需要通过访问局域网主机IP地址,即可访问服务器共享的内容。
Calibre——个人电子书库
Calibre的Windows版是下载安装包,而Linux版则可以用命令行安装:
sudo -v && wget -nv -O- https://download.calibre-ebook.com/linux-installer.sh | sudo sh /dev/stdin
安装Calibre后,打开Calibre开启内容服务。局域网内所有设备都可以通过浏览器访问书库。
第二种是通过Docker安装,Docker安装的好处是安装安装简单,删除方便。可以帮助你的服务器搭建非常多的服务,同时省去了大量的配置时间。而且Docker在Windows上也能运行,后面我还将继续详细讲解Docker,不过这里简单分享几个应用:
比如speedtest测速服务,通过安装speedtest你就可以知道你和你的个人服务器之间的网速如何。通过docker安装非常简单,安装之后只需要访问:http://local:8090即可进行测速。
#拉取镜像
docker pull adolfintel/speedtest
#运行speedtest
docker run --restart=always -d -p 8090:80 adolfintel/speedtest