我就是从这跳下去也不买这块破电路板!嗯,真香~

我就是从这跳下去也不买这块破电路板!嗯,真香~

创意 3480 字 / 7 分钟

上周,我终于下定决心,在淘宝上下单买了个树莓派3B+。

第一次听说树莓派是在初中,当时还在沉迷 Minecraft,偶然了解到 MC 居然还有一个什么树莓派版本的。百度一查 ,什么破树莓派,故弄玄虚,不就是一个超小的破电路板吗?这东西玩 MC?我猜也就是连个屏幕看着漆黑一片的 bash 界面,玩着用字符显示的 2D MC 吧?

当时完全没把这东西当回事,直到高中……在忙着于别人交换个人网站友链的时候,顺便翻了翻对方的网站。

结果……

我发现这个小电路板居然可以干这么多事!

物联网、无人机、web 服务器、Minecraft 服务器、挂机、下载、云存储……并且这东西还不贵!

这时我才深入去了解了下。树莓派 Raspberry Pi,(简称RPi、Pi、Pi酱),最初是由英国剑桥大学埃本·阿普顿(Eben Epton)正式发售的。是世界上最小的台式机,又称卡片式电脑,外形只有信用卡大小,却具有电脑的所有基本功能。

最初的目的是希望鼓励更多的青少年学习计算机编程。然而发售后,被一堆大佬给玩坏了~大佬们拿树莓派做了许多牛逼的东西,导致这东西大卖,曾经一段时间都没货了。

我首先想到的是这东西可以作为一个服务器:性能好,不费电,性价比超高!并且自带的 Raspian 系统是在 Linux 的发行版 Debian 上面改的。Linux 系统啊,妙极了。

之前一直想做的一个 AI 语音助手,最初是部署在洛杉矶的那个 VPS 上,但是总感觉有些不太稳妥。树莓派刚好提供了这么个平台,我可以将用 PHP 写得东西在那上面跑,因为是在自己家的局域网环境,所以也不用担心安全什么的。

树莓派单个机器(也就是那块电路板)只要 200 多元,但是光一块电路板是不够的,还需要额外去买一些配件。所以我是在淘宝上买的一个套餐。

  1. 电源线 供电用,一端的USB接口可接在充电宝上,或者找个电源适配器接在插座上。
  2. SD卡 因为树莓派很小,所以系统都是装在一张 SD 卡里,RPI3 已经支持16G 大小的卡了。
  3. 读卡器 用来将系统从电脑拷贝进入 SD 卡。这里会有一个坑,后面会提到。
  4. HDMI线 树莓派是默认使用 HDMI 输出的,所以需要连接上带 HDMI 接口的显示器或电视。(要注意 HDMI 可同时传输视频与音频哦~)
  5. 树莓派外壳 用来装树莓派的外壳,可防止静电。透明的外壳显得更帅哦~哇,Pi酱都被看光了⁄(⁄ ⁄•⁄ω⁄•⁄ ⁄)⁄
  6.  风扇 外接的5寸小屏幕等......

就是这块电路板,特别小,但是居然接口超齐全。4 个 USB2.0 接口,一个网线接口,甚至还带 3.5 毫米接口,可以插耳机!

将系统导入进 SD 卡后,把卡插上,HDMI 连电视,然后启动。这时就会自动开始安装 Raspian 系统了。

将系统导入进入 SD 卡这里有一个坑:不要使用什么 SD 卡协会的格式化软件来格式化 SD 卡,之后系统是装不进去的。要用 Windows 自带的格式化工具(就是在 SD 卡盘符上右键,选择“格式化”),并且“分配单元大小”选择 32KB。不要使用“快速格式化”,之后等个十多分钟就好了。再将系统解压后复制进 SD 卡。

貌似现在都是自动从可视化的桌面启动,而不像书里说的进入 Shell。这样也好,对我这样的新手很有帮助。系统默认安装了全套 Office,Chromium 浏览器(就是 Google Chrome),Python3(RPI3好像不自带 Python2了),Minecraft 等等……

Chromium 浏览器的体验几乎和 Windows 上没有什么差异。HTML5 什么的都支持,尝试上网易云音乐听了下 Aimer。

然后心血来潮的我踩入了下一个坑:我尝试去安装宝塔面板,毕竟是服务器嘛。然后……

我树莓派上的桌面环境就全部被删掉了……

真的是一脸懵逼,上宝塔论坛搜了下,发现可能是在安装 LNMP 环境的时候,自动删了桌面的文件。最后我只能重刷一遍系统,一切重来。真是惨痛的教训。所以请不要在树莓派上安装宝塔面板。

既然无法安装宝塔面板,那我装一个 Gitlab 来作为我平常个人项目的版本控制总可以吧?百度了一下,好像真有不少人这么做了!我也就学他们试了一下,结果……

第三个坑:Gitlab 确实能安装成功,但是无法使用,因为树莓派的内存低于 2G 。系统也会因此变得超级卡!!解决方法是,关掉其它的软件来使内存降下来,然后停掉 Gitlab。

sudo gitlab-ctl stop
然后再删除 Gitlab!对,删除这破玩意!我们换 Gogs!

之前是在一个大佬的博客看见他用 Gogs 搭建了自己的 Git 仓库。Gogs 貌似还是国人写的,十分的轻量,正好适合树莓派,安装也极其容易。

在官网下载适合树莓派的二进制安装的压缩包,解压。打开 bash。

先进入解压后的 Gogs 的文件目录

cd gogs
然后直接运行 gogs
./gogs

然后启动 Gogs web 服务:

./gogs web

好了,这样就已经启动了,输入树莓派局域网 IP,3000端口访问即可。

然后我们就进入了 Gogs 的安装界面,注意这里是第四个坑:数据库请选择 SQLite3。一切从轻量。我本来是想用 mysql,毕竟这个比较熟悉,然后…..当我使用:

sudo apt-get mysql-server
安装后的居然是一个叫 mariadb 的数据库!什么鬼?!这还有山寨的?百度搜了下 mariadb 和 mysql 的关系,貌似 mariadb 是 mysql 的原作者在 mysql 被甲骨文收购后,自己又搞出来的东西。我本以为我可以像使用 phpmyadmin 那样简单的设置 mariadb,结果发现这东西还是太难了,昨晚搞到十二点,最后放弃了。

而使用 SQLite3,它就只是在你的目录下创建一个 gogs.db 文件即可,你也只需要:

sudo apt-get sqlite sqlite3
简单安装一下即可。话说这个 SQLite 貌似在 iOS 系统中运用的很多啊。以前越狱后用 iFile 翻目录的时候经常看到。安装 Gogs 中途如果出现了什么问题,你也只需要删除 gogs 那个文件夹,然后再解压一遍压缩包重来即可。很棒很简洁。

安装完成了!喜悦之情溢于言表!可以看到 Gogs 自动将我邮箱所对应的 Gravatar 头像显示出来了。(就是那个桐子的头像)

好了,现在我的 茄子Git 私人 Git 仓库已经搭好了。但我现在只能在自家的内网里连上它啊~如果出门在外怎么办?

我想在任意一台外网的电脑上都能连上我的内网。

嗯……这个需求怎么这么熟悉……

我突然想到自己初一时自己开 Minecraft 服务器联机时,曾经用过一个叫 hamachi(蛤蟆吃)的软件。不过上网搜了下,发现这个软件貌似现在已经停止维护与更新了,也就是用不了了。

同时,我还了解到,我所要的这个“解决方案”(用一下这个在中国被用烂的词),专业名称叫做“内网穿透”。可以说和 VPN 是类似的原理。国内的花生壳公司的产品——蒲公英就是做这个的。但是那是面向企业的,天价收费……(话说花生壳公司的产品名字都挺有意思:花生壳、向日葵、蒲公英。)

后来我在 GitHub 上找到了 frp 这个项目,也是轻量级,做内网穿透。并且还提供中文文档!

一万三的 stars 真的不是吹的!我的思路是,在我洛杉矶的 VPS 上安装 frp 服务端,(因为它有公网 IP);在树莓派上安装 frp 客户端来实现内网穿透。我甚至还可以解析自己的域名!

首先先将 frp 下载到洛杉矶的 VPS 上。这里碰到了第五个坑:美国的服务器一般都是 AMD64 架构的,所以要注意下载的文件。

然后是第六个巨坑!!我今天在 GitHub 上下载到我的 VPS 上运行后,我发现我的 mysql 不能用了!好不容易解决了,我发现我的 SSH 又无法打开了!最后,我做了一个很艰难的决定。

重装系统!

        是的,我花了大概 4 个小时来进行备份,重装。期间有无数次的快照回滚,我都没想到我原来居然在这个服务器上留下了这么多的设置需要搬过来。

真的是十分惨痛的教训!以后再在服务器上装东西时,记住:先存快照先备份!

正确的安装 frp 的方法是:

cd /opt

sudo mkdir frp

cd frp

sudo wget https://github.com/fatedier/frp/relea

ses/download/v0.9.3/frp_0.9.3_linux_amd64.tar.gz

这里是第七个坑:在启动 frp 之前,记住一定要先更改配置文件,配置文件里默认的端口号是冲突的,会导致 frp 无法启动并且无任何报错。我是在 frps.log 里才找到的原因。

vhost_http_port = 8080

vhost_https_port = 445

将上面两个参数改成完全不被占用的端口号,这样才能避免冲突,成功启动。启动后就可以在服务器 IP :7500 端口进入 frp 仪表盘,账号与密码都是 admin。

至此,frp 的服务端安装完成!下面就是在树莓派上安装客户端。打开树莓派的 Shell:

wget https://github.com/fatedier/frp/releases/download/v0.9.3/frp_0.9.3_linux_arm.tar.gz

tar -zxvf frp_0.9.3_linux_arm.tar.gz

这里又出现了第八个坑:请一定要使用 Shell 命令进行解压,切勿使用树莓派自带的解压软件解压;否则无法启动 frp 并且提示乱码。解压后,再和启动服务端一样的命令启动客户端。客户端与服务端连接成功后,可以在 frp 的控制台上看到状态信息:

然后输入绑定的域名加端口号,即可进入:

至此,在树莓派上搭建 Gogs 版本控制软件并架设内网穿透已经全部完成!剩下的一些工作就是加上这些服务器的开机自启什么的了。真的是踩了好多的坑啊!不过庆幸的是最后居然成功了!我本人也是超级开心。自己对 Linux 的命令确实熟练了不少。

就这样吧,这块破电路板可把我折腾坏了。但是,我还是想说:

“最喜欢 Pi 酱了~”