树莓派+阿里云主机+frp造服务器

树莓派+阿里云主机+frp造服务器

本文是一篇开坑文,我将详细讲述本人是如何用一块树莓派和一台阿里云主机搭建起了私人服务器,并实现各种功能的。
因为我的水平有限,如果有错误或问题,烦请各位大佬提出指正。

还在上学期的时候,就听说树莓派4B出了8GB的版本,越来越像小电脑了。甚至有段时间笔记本电脑坏了,朋友还开玩笑说先买块树莓派用着。放了暑假以后,本着摸鱼瞎搞的态度,入手了一块Raspberry Pi 4B的4GB版本。还没回来之前我就在考虑着用它来做些什么,在网上查了很多资料,最终决定用来做一台服务器。

网上有很多资料说树莓派性能还是有点弱鸡,不适合拿来做服务器。但大部分资料和帖子都已经很老了,说的都是树莓派3B,如今树莓派4B都有8GB版本了,很多方面都有了大的改善,我玩了快一个月,体验还不错。

树莓派+阿里云主机+frp造服务器

想好要做服务器时,我还只是一个懵懂卑微的小菜鸟,这方面的知识几乎为0。记得我在知乎上查相关资料时,有一个问题就是能否用树莓派做一个服务器,然后下面有一个回答是,看题主的问题和描述,认为题主还要再补习一年的网络知识。那时的我,有种被碾过的感觉。不过只要自己想做的事情,就放手去做吧,我也只用了不到半个月,就把服务器搭起来了,还运行良好,自我感觉很完美。

如果要将树莓派做为家用服务器的话,接下来的部分就可以不用看了。因为今年一直被困在家里,我所有的“磕盐”工作都是在家完成,玩树莓派也不例外,下学期眼看要开学了,我除了面临要把我寒酸的“磕盐”成果(其实就是辆小车)想办法塞进旅行箱的困境以外,我还想到了这样一个问题:学校的校园网对于使用树莓派来说是一个巨大的挑战。网络需要认证登录;树莓派没有显示屏,没有网线;如果要做服务器的话总不能连热点随身带着。费劲在网上找了很长时间也没有解决办法。为了防止树莓派被带到学校*吃灰,我做出了一个伟大的决定。如果哪一天我拥有了自己的服务器,我也一定会回想起多年前我抱着电脑疯狂翻阅资料的这个下午。

好吧我其实就是决定把树莓派放在家里。

树莓派+阿里云主机+frp造服务器

做出这个决定之后就面临这样一个严峻的问题,在家可以使用内网IP连接树莓派,但如果是在千里之外的北京(我也不知道具体多远,反正就是很远),内网IP就是一个不可望且不可及的一个存在。树莓派本身没有公网IP,要想在外网访问连在家里内网中的树莓派,就需要做这样一项工作,叫内网穿透。内网穿透有各种各样的方法,我买了阿里云的轻量应用服务器就是为了获得公网IP以进行内网穿透。
树莓派+阿里云主机+frp造服务器
内网穿透的问题解决后,我们就相当于拥有了两台有同一公网IP的服务器,就可以着手开始搭建了网站,这里的顺序似乎有些问题,其实可以先在内网中搭好网站,再解决内网穿透的问题,不过由于随时可能开学的风险,我还是先搞了内网穿透,起码先把SSH通道打通。

至于如何搭建服务器,我相信最常见的基本操作就是部署LAMP或者LNMP。所谓LAMP即为:Linux,Apache,MySQL和PHP,而LNMP就是把其中的Apache换成Nginx,事实上我查过很多资料,都说Nginx比Apache对服务器性能要求更低,抗高并发,可能在树莓派上用Nginx要更合适些。但我一开始就部署了Apache,要换Nginx工程量巨大,狠不下心,还是算了。另外,据我的使用经验来看,我的树莓派部署Apache问题不大,并且感觉配置要更简单些,干脆就“一条路走到黑”好了。需要说明的是,正因为我选用了Apache,所以接下来的结束也都是围绕Apache展开。

在部署完lamp或lnmp后,就可以着手用你的服务器完成各种各样的骚操作了。

我的个人博客
树莓派+阿里云主机+frp造服务器
我的网盘
树莓派+阿里云主机+frp造服务器
我的图床
树莓派+阿里云主机+frp造服务器
git代码托管服务(搭建中)

私人媒体服务(Jellyfin)
树莓派+阿里云主机+frp造服务器
啊对,如果你不想只能用IP访问你的网站的话,你还需要一个域名。我的域名也是在阿里云注册的,一元一年近似白嫖。不过有了域名之后需要备案,在阿里云的域名可以在阿里云做备案接入,很省事,从提交材料到下发备案号,总共用了四天。

树莓派+阿里云主机+frp造服务器
之后还涉及到http转https的的问题,我同样也是在阿里云白嫖的ssl证书,还白嫖了三个,很爽。

在这整个过程中,白嫖是最爽的其实是
自己从最开始什么不懂,到学到很多,了解很多,虽不精通,但可以凭一己之力搭起个人网站,甚至可以开坑写博客,这种知识增加了的感觉才是最爽的。

已经完成的部分:

计划写的部分:

  • frp内网穿透及阿里云服务器采购
  • 域名备案
  • wordpress搭建个人博客
  • Apache实现二级域名及实现https
  • nextcloud搭建个人网盘
  • chevereto搭建个人图床并配置typora+picgo
  • plex/jellyfin实现媒体服务
  • gitlab代码托管