返回文章列表
服务器

怎么用最低成本搭建属于自己的服务器?

仔仔
2026-01-31
3天前
怎么用最低成本搭建属于自己的服务器?

在网络便捷的今天,人们在享受着来自互联网公司提供的便利服务也同时存在着个人数据隐私问题。

那么在数据隐私安全考量下,选择自托管服务往往安全系数更高。


1. 域名

     域名,懂得都懂(dddd),就像指引互联网走到家里的门牌号。在构建自托管服务过程中,所以域名是必须要有的。

     那我们知道常见免备案域名主要有,godday,namesilo,cloudflare等。本篇教程可能要用spaceship,即马斯克的域名。


      为什么要用spaceship呢? 因为马老板提供六位数字.xyz域名,一个陪伴10年的域名才不到50块钱,而且支持支付宝付款,这简直是NAS党的福音,提前透露这可能是本篇教程唯一的成本。

步骤:

   1. 我们可以在购物车促销码中输入针对.xyz域名专有优惠码XYZ52,又省几块钱。

2. 购买域名流程分两步

       1. 先添加购物车买上1年的,4.65块RMB

       2. 再在域名管理器里找到这个域名的续费,续上9年  


9+1=10,在这里我们就正式拥有了一个10年的域名。

2. 域名托管 (准备打洞)

   拿下域名之后,我们要给它改dns托管,就是域名换托管,把DNS zone从spaceship转移到第三方。

   这里我们选择cloudflare大善人,它不仅免费托管域名还给15年的ssl安全证书,最重要的是还给让打洞,即内网穿透。 重中之重,家庭服务器中内网穿透非常关键。 它是服务器所有流量的一个中转站,访问域名转发过来的流量需要经过它再转发到我们服务器上。

PS: 如果有服务器 80 443端口开放且有公网IP,就不需要考虑打洞。就这个打洞服务而言当然也是可以自建,使用frp之类的,但有点跑题所以不多说。

   在cloudflare面板上先输入域名把域搜出来,然后cloudflare会自动生成对应的ns,再找到spaceship 把刚在cloudflare所生成的dns复制过去。


例如我的:

        第一个填:amber.ns.cloudflare.com

        第二个填:elias.ns.cloudflare.com

3. 服务器配置(开始打洞)
通过上面操作我们搞定了注册域名和域名托管,在cloudflare上可以对该域名进行dns记录的curd,完成了医院挂号操作。    这里有几个服务器压缩成本的方案。    1. 家里不用的老电脑,它的角色既可以是边缘设备也可以是家庭服务器当然也可以是NAS,硬件配置可能都没我们的手机好,但这些都不重要。给它装上Linux,选Linux什么版本呢?这些必须也不重要,按顺手的来就行了。


   2. serv00,说到这个serv00,我真能吹爆。注册成功后会得到一台10年内免费,无限流量的服务器。然而缺点是只有内存给的512MB,硬盘容量3GB,还是非常冷门小众的FreeBSD系统,但是要知道后端的另外一个名字叫做服务器应用开发工程师,所以应该无论什么操作系统都要能hold住,照样要丝滑下去。当然这个内存捉急,硬盘鸡肋,可以部署些吃流量的服务。    使用过程中发现这东西有个坑,刚进系统时自带个php,本就捉襟见肘可怜巴巴的巴掌大的内存还被它占用巨多, 如果手里有serv00的话,那么一定要给它禁掉,只要给它分配2M内存就压下去了。问题不大。
3. 甲骨文云,号称永久免费的oracle。记得刚开始让白嫖总共24G内存的小鸡,都可以切割成几台arm和x86一块组k3s集群。这东西也是看人品看脸,本人脸好人品好,之前有注册到韩国春田机房,后面不知道啥情况给我收回了。害,叹气。
4. 廉价vps 主要以clonecone dmit等等为主,这个方案说实话有点抬升成本实际不划算,不过遇到黑五优惠可以考虑蹲一个,有些五周年十周年会出纪念版很划算,转手卖还能当波黄牛,赚!!!    搞定服务器后,我们就有操作空间了。    上节我们把域名挂到cloudflare上,它有个内网穿透工具 叫cloudflared,它允许用户在无需开放防火墙端口或拥有公网 IP 的情况下,将内网服务(如本地 Web 服务、SSH、RDP)发布到公网上。    PS:如果你们的服务器支持docker,那么可能后面的内容帮助不大。docker部署可谓相当粗暴无脑,直接docker run 或者写到 docker-compose.yaml 里面集成管理运行up就行了。
   1. 打开https://github.com/cloudflare/cloudflared, 下载对应操作系统的二进制可执行文件,并解压到自己服务器上的$HOME/bin下,同时需要确保该文件具有写权限。
       chmod +x $HOME/bin/cloudflared
   2. 命令行登录 cloudflare 并根据返回的跳转URL,复制到自己的浏览器,然后找到对应域名点击并完成授权。
       $HOME/bin/cloudflared tunnel login

       授权完成后会在$HOME/. cloudflared目录下生成证书文件和一个uuid.json, 这个json文件在下面的配置文件里要用。
       $HOME/.cloudflared/cert.pem
   3. 创建 tunnel,在这里我创建了一个名叫brian-tunnel的通道。
       $HOME/bin/cloudflared tunnel create brian-tunnel

   4. 把子域名绑定到这个通道上,这里特别要注意 第一次通道绑定路由时,一定不能直接是主域名。
    有次我直接绑到主域名807780.xyz上,然后发现所有的子域名都无法访问,这有可能是个bug还是别的什么,反正注意第一次要直接绑定子域名。
   $HOME/bin/cloudflared tunnel route dns brian-tunnel api.807780.xyz

   有几个子域名需求就要执行几次,把对应后面的子域名改成想要的即可,然后如果我们切换到cloudflare,就会发现dashboard DNS列表就会有几条记录。

   5. 编辑配置文件

有几个子域名,那么配置文件的ingress 就有几条service。当然还有更多比如metrics ,但我没配置后面看有空再加上,127.0.0.1后面带的就是本地服务监听端口。
   6.  启动内网穿透
   $HOME/bin/cloudflared --config 刚刚我们写好的配置文件路径 brian-tunnel


   这样就启动了一个内网穿透服务,当然图里面有几个报错 那是因为我特么api服务还没编译跑起来。
   7. 然后打开浏览器输入对应服务域名,就会发现我们现在可以访问了。

   8. 如果我们服务太多不好管理,或者关机重启担心服务断掉,可以下个pm2 或者supervisrd 来自配置自动启动。我这里因为内存有限,就用bash脚本+定时任务来控制。 如果是家庭服务器最好配个ups,功能类似充电宝,以防突然断电或者打雷会导致硬盘挂掉,之前我用极空间就是这样。

4.  常见的自托管服务
有把本地服务映射到公网的能力,那可以做很多事情。    工作生活中常常会面对一堆的帐号密码,那么可以部署个自托管bitwarden,RUST版本。

   工作笔记,可以部署个johlin 或者appflowy。

   网盘可以部署nextcloud存存文件什么的,就不用担心被和谐掉,多年珍藏突然就变成黑猫警长谁懂啊。    当然这些都是比较吃资源的,或者部署个emby 看看家庭电影。这个资源可能需要馒头pt 需要去论坛求药,搞到可以去别人服务器拉电影过来,就是类似迅雷的那种p2p。这个很伤硬盘,看喜好。    想一下有个家庭服务器,上班前委托服务器批量下载攒劲电影电视剧,晚上下班回来直接看就行。而且本地局域网网络,SMB协议相当丝滑,要如果是cpu给力,那么什么格式的视频文件都不在话下。x86架构简直解码快的一笔,mkv蓝光高清不是问题。    那么如果家里摄像头支持onvif 协议的话,就可以不用米家之类的,去下个app ,当然具体服务我也没搞过,但是是可行的。甚至家里物联网设备多的话,还能装个home assistant,控制灯光,空调等等。这样不再需要担心第三方可能的不必要麻烦。    根本不需要备案,你家里的电脑就能搞出网站 数据库什么或者minio,RustFS云存储等等全都能安排上。甚至我看国外一人用树莓派组k3s家庭服务器集群,还玩服务网格,真牛逼,我k8s还是逛他教学博客学的。    我总认为科技的本质,应该是服务于更好的生活,而非门槛。文章写的不好,步步实操,但还是希望这篇文章能让你对构建起家庭服务器有一定的帮助。

本文内容仅供参考,不构成任何专业建议。使用本文提供的信息时,请自行判断并承担相应风险。

分享文章
合作伙伴

本站所有广告均是第三方投放,详情请查询本站用户协议