手机变成服务器
手机变成服务器
本来是想采用手机做服务器的,手机chroot运行的linux除了性能上的问题,还有很多不便利的东西,比如不能使用docker.
为啥要搞
这个问题,主要有以下原因
- 每年都花费500大洋给阿里做贡献,博客又没有给我带来啥好处,钱白花了.
- 家里的网络很牛逼,不用有点浪费.
- 家里有废旧电脑,可以安装服务器,服务器耗电比较高
正好有台破手机,完美覆盖需求,又有利益上的驱动,就有搞的动力了.目标是把每年的服务器费用用当前的装备给弥补上来.
搞的过程
手机
领导赏赐的小米5splus一台,因为进过水,屏幕已花,但是配置还可以,骁龙821的处理器,内存4+64
再怎么烫手的手机,在服务器看来,都是低温.
提示
手机本身的操作系统有没有root并不重要.稳定就好.
操作步骤
准备材料:
- 手机对应的TWRP包
- busyBox,linuxDeploy
- magisk和Magisk Manager
具体操作步骤:
- 解锁
解锁,找小米unlock的包,按照提示,解锁bootloader.
注意
注意,如果购买二手手机,千万不要有小米账户,小米有定位功能,这个信息存储在硬件上,解锁刷机都无法去除.
- 安装TWRP
摁住"音量-"和"开机"(组合按键) , 进入fastboot,应该是下面的页面
使用命令行,刷入TWRP,TWRP是需要版本匹配的,看好你的手机对应的TWRP,不要刷错,刷错了会导致无法引导系统.
执行命令fastboot boot twrp.img , 这个命令很重要,我有时候忘记执行,在正常启动小米后,有时候recovery会被覆盖掉
警告
这边twrp.img ,是指代当前fastboot命令文件夹下的twrp.img文件
这个命令的本质是使用本地的recovery文件,在手机上启动recovery.
- 安装magisk
把magisk.zip的安装包,放到手机上
重启开机,摁住"音量+"和"开机"(组合按键),进入TWRP,应该看到小兔子修机器的画面.
使用TWRP,intall功能,找到对应的magisk.zip,点击安装
- 安装linux
如果没有做过变动,手机正常进入的系统是小米的稳定版,这个时候,不需要安装开发版,安装完magisk,系统已经默认root
在系统内安装busyBox和magisk Manager 在手机系统内安装apk应用.
busyBox,除了安装apk以外,要进入应用程序,在内部install一下,注意安装路径,我这边选择/xbin/,这个配置,需要在linuxDeploy中使用
busyBox提供了大量的底层底层linux命令.
- 安装linux Deploy 安装完成以后,打开linuxDeploy,进入左侧菜单,选择设置,对linuxDeploy的常见选项进行设置.
屏幕常亮,常见的手机操作系统,在锁屏状态下会杀进程,这边防止chroot的容器进程被杀掉.
path变量很重要,就是busyBox的安装目录,这边设置不对,linux安装会失败.
源地址变一下,国内源速度会快很多.镜像大小设置大点,手机又不干啥东东,我设置了40G.
- 在linux Deploy中,选择镜像,安装centOS
一些刷机知识
不是搞android的,还是需要了解一下手机操作系统的底层.一些错误的概念,还希望各位同学指正.
| 名词 | PC等价物 | 说明 |
|---|---|---|
| fastboot | BOIS | 这个东东是cpu厂商提供,类似PC机上的主板BOIS |
| recovery,TWRP就是第三方recovery | 可以简单理解为,windows的安装界面程序 | 这个东东属于android安全范畴,本身就是一个linux,操作系统内部无法操作recovery,recovery能操作操作系统 |
| magsik | system分区的代理 | 相当于操作系统的proxy,这个东东很厉害,在不变动system分区的情况下,一些访问system分区的操作会被拦截到magisk,变相root,而操作系统本身可以不root |
没有对应TRWP的手机
可以通过magisk的app,通过刷机包内的boot.img,生成加入magisk的patched.boot.img,然后通过fastboot flush boot boot.img刷入boot分区,实现magisk的root控制.
这种方法,比较适合一些流氓品牌,比如某为,因为CPU自己设计,引导信息没有公开,所以没有第三方recovery可以匹配.
运行过程
整体运行平稳,待机状态,cpu消耗小于10%,内存消耗在2G左右,还有2G剩余
在博客请求在30TPS的压力下,cpu消耗在30%,内存消耗2.5G左右
之前安装过"宝塔面板",宝塔内部有定时任务,当监控任务启动的时候,cpu会直接卡死,查看cpu使用率,用户的使用只占50%,系统的使用占50%
没办法,操作系统本身运行在chroot上,并不是直接运行在硬件上,性能损耗是正常的,手机安装的服务器,不适合运行大型进程,比如数据库...
后面准备把博客的评论系统换成waline,但是手机不能运行docker,而waline的官网提供的nodejs启动方式,依赖包不能安装,先用valine吧.
内网穿透
搜了2天的内网穿透,最终选择sakuraFRP,选择理由,至少是公司运作的,能绑定域名,能用多长时间,就不知道了.
FRP会在服务器上运行一个进程,sakuraFRP修改了FRP的源码,使用了自己的用户体系,其他的修改暂时不清楚.
我个人觉得是无法信任一个我不清楚的进程.一定要使用正常的用户启动进程,让这个用户权限最小,甚至都不能访问本地文件夹.
现在你们能看到的博客的页面,就是先经过域名服务器,转发到FRP的服务器,FRP服务器把请求转发给FRP客户端,FRP客户端再把请求转发给本地80端口,nginx在接受到请求后,再进行路由.
写在最后
手机运行nginx的静态页面的博客系统,一点问题都没有,性能还有过剩.
手机的wifi连接着路由器,信号很强,带宽145M,相当于百兆有线,但是当路由器上无线压力比较大时,带宽就会受影响.
最近在咸鱼上看到一款j4125的小主机,价格美丽,没忍住,博客暂时先用着,后面再搞...
