【手机搭建服务器】保姆级系列教程 · 第 一 期

前言 上一篇帖子主要是想看看大家的反响怎么样,没想到这个话题会这么受欢迎。有点出乎我的意料 看到大家这么喜欢,所以我决定慢慢更新整个系列。 一个系列解决一个阶段的问题, 只有一个阶段的问题解决了,才能进入下一个阶段,不要想着一上来就搞定所有内容,除非你只是想简单的玩玩而已。 由于我的空闲时间有限,所...
【手机搭建服务器】保姆级系列教程 · 第 一 期
【手机搭建服务器】保姆级系列教程 · 第 一 期

前言

上一篇帖子主要是想看看大家的反响怎么样,没想到这个话题会这么受欢迎。有点出乎我的意料 :laughing:

看到大家这么喜欢,所以我决定慢慢更新整个系列。

一个系列解决一个阶段的问题, 只有一个阶段的问题解决了,才能进入下一个阶段,不要想着一上来就搞定所有内容,除非你只是想简单的玩玩而已。

由于我的空闲时间有限,所以更新可能会比较慢,而且为了让整个系列的教程更详细,我在内容的编写上需要花费大量的时间。希望大家理解。

话不多说,下面正式开启第一期教程吧:backhand_index_pointing_down:


本期主题:项目开始前的必备条件

条件一:具备可访问的公网

关于公网这一块,从ipv6和ipv4两个方面来说

先说ipv4:
由于目前家庭宽带很少有ipv4的公网,包括我本人也没有,所以这一个系列的教程主要是围绕ipv6进行,如果你手里有ipv4的公网,那毫无疑问是最好的,动态ip和静态ip都无所谓,如果是静态ip,那就更无敌了,只是这样的资源比较少

再说ipv6:
有关ipv6的相关知识在这里不做展开,互联网上对这一块的科普非常到位,感兴趣的可以去自行了解。

目前国内的现状是,家庭宽带基本都有ipv6,甚至我们日常使用的手机卡,都有ipv6,而且两者都是公网可以访问到的。这也是手机搭建服务器可行的很重要的一个原因。

这一次我们主要讨论的是宽带的ipv6,而不是手机流量的ipv6,主要有几点原因:

1.选择手机作为服务器后期可能会消耗大量的流量,用手机卡作为流量来源,要面临流量总量和流量限速等问题。如果你手里有双不限的手机卡,才可以考虑用手机卡做流量基底。

2.手机卡的上传速率一般比较低,只有一些较高消费的套餐才会有更好的上传速度,而且手机卡的流量波动较大,还会受到基站等因素的影响。

在看一下宽带的优点:

1.首先宽带流量是没有限制的,这一点的好处远远超过手机卡。

2.宽带只要是不跑P的情况下,运营商是不会给你恶意限速的,一般来说,家庭宽带的上传速度在50-200Mbps之间,而且波动也很稳定

问题一:如何判断宽带或者手机卡具备ipv6?

单独进行验证,比如只连接wifi或者只打开流量的情况下,浏览器访问https://testipv6.cn/网站进行测试。

如果结果如下图所示,那么恭喜你,你的设备和网络是支持ipv6公网访问的。

S60511-22093083com.android.chrome
如果你出现的是下面这几种结果,也不要担心:backhand_index_pointing_down:

S60511-22171206com.android.chrome              S60511-22170236com.android.chrome

出现这个结果不一定代表你没有ipv6,可能是你开启了代理,或者其他原因导致的,这个时候,还有一个更可靠的检测办法:打开手机,在设置中查看手机状态信息,每个品牌的手机查看的路径可能不一样,但是基本是在【系统设置 - 关于手机 - 状态信息】中。

S60511-22270542com.android.settings(1)
情况说明:

:backhand_index_pointing_right::如果在状态信息的IP地址这一栏,显示出24开头的地址,就说明你的手机和网络是支持ipv6的;

:backhand_index_pointing_right::如果只显示fe80开头的地址,说明你的设备支持ipv6,但是你的Wi-Fi或者手机卡没有ipv6;

:backhand_index_pointing_right::如果连fe80开头的地址都没有,只有ipv4的内网地址,说明你的设备太老了,不支持ipv6。比如我有一台乐视手机,就不支持ipv6,所以必须换设备。

:white_check_mark:如果你的宽带自带ipv4公网,那上诉这个情况你可以完全忽略


条件二:具备可root的手机

很多人看到这里,就觉得不想搞了,或者说觉得不需要root也行。先继续往下看。

问题一:为什么需要root?不root到底行不行?

先说结论:不root可以,但是及其不推荐,如果你只是简单的捣鼓一下,不打算将手机用做长久的服务器。那么可以试试,如果你想要的是一台长期稳定运行,不管出现任何突发情况能如期运行的服务器的话,必须root。

原因一:手机用做服务器需要解决旁路供电问题

手机当服务器之后,大概率是要长期插着电运行的。但是手机长期插电会遇到一个很现实的问题:
电池可能会一直处于充满、发热、再充电的状态,对电池并不友好。如果只是偶尔玩玩,问题不大。但如果你准备让它连续运行几个月,甚至一年以上,那供电问题就必须认真考虑。

比较理想的状态是: 手机插着充电器,但是电池不一直反复充电,最好能进入类似“旁路供电”的状态。也就是说,手机主要使用充电器供电,而不是一直让电池在 80%、90%、100% 附近反复充放电。这时候 root 的作用就很明显了。有了 root 之后,我们才更方便使用类似 Acc +AccA或者QSC定量停充这样的方案去控制充电行为,比如:

·到了指定电量就停止充电;
·低于指定电量再恢复充电;
·尽量让电池保持在一个比较舒服的区间;
·减少长期满电带来的发热和损耗;
·真正做到“旁路供电”的效果。

这样手机就不会长期顶在 100% 满电状态。当然,不同手机的硬件支持情况不一样。有些手机停止充电后,可以比较接近旁路供电;有些手机停止充电后,仍然会继续消耗电池,然后掉到设定值再重新充电。但不管怎样,有 root,至少我们有机会去控制它、优化它。
如果没有 root,这类底层充电控制基本就很难做了。

所以,手机长期当服务器,第一个绕不开的问题就是: 怎么让它长期插电运行,同时尽量不伤电池。 这也是我建议 root 的第一个重要原因。

:white_check_mark:有一个非常好的消息是: 目前Acc+AccA的方案能够很好的解决供电问题,实现旁路供电,而且支持很多CPU,我手里的小米8SE一样完美支持。

原因二:解决手机重启后可能面临的各种意外情况

手机作为服务器,最怕的不是你手动启动一次服务。最怕的是手机重启了,然后服务没有自动起来。比如这些情况都可能发生:

· 手机没电后重新开机;
· 系统更新后自动重启;
· 突然断电又恢复供电;
· 手机因为异常发热自动重启;
· 你人在外面,手机在家却自己重启了;
· 光猫、Wi-Fi、IPv6 出问题后,需要自动恢复网络;
· Debian 没启动;
· SSH 没启动;
· Web 服务没启动;
· DDNS 没更新;
· 外网突然访问不了。

如果每次都要你手动打开手机、打开 Termux、输入命令、启动 Debian、启动 SSH、启动服务,那这就不叫服务器了。服务器最重要的能力之一就是: 出问题后,能尽量自己恢复。

但是有了 root 之后,我们可以通过 Magisk 的开机脚本实现很多自动化操作,比如:

· 自动启动 Debian;
· 自动启动 SSH;
· 自动启动 Nginx、Node.js、Python 等服务;
· 自动执行 IPv6 检查脚本;
· 自动执行 DDNS 更新脚本;
· 自动记录启动日志;
· 自动判断服务是否正常;
· 等等一大堆你可能想到的自动化操作

这样手机重启以后,不需要你手动干预,它可以自己把服务器环境拉起来。这对长期运行非常重要。因为你不可能一直盯着手机。尤其是手机放在家里,你人在外面的时候,如果它重启后服务没起来,那你连 SSH 都连不上,这不仅仅是尴尬的问题,而是你根本没有任何办法去解决这个问题,除非你自己就在家里,手机就在身边。

原因三:方便做网络恢复,尤其是 IPv6 异常恢复

手机当服务器,如果你打算通过 IPv6 从外网访问,那网络稳定性就很重要。但手机长期连接 Wi-Fi 后,可能会遇到一些奇怪的问题,比如:

· IPv6 地址突然没了;
· 只剩下 fe80: 这种本地地址;
· 公网 IPv6 变了,但 DDNS 没来得及更新;
· Wi-Fi 显示连接着,但外网访问不通;
· 路由器重新拨号后,手机没有及时拿到新地址。

这些问题在普通手机使用场景里可能无所谓。你刷视频、聊天,最多就是断一下再连上。
但是手机作为服务器就不一样。IPv6 只要一丢,外网可能就访问不到你的服务了。更别说什么远程adb解决问题,不太能。但是有 root 之后,就可以更方便的写脚本去做这些事情:

· 定时检查手机是否还有公网 IPv6;
· 发现 IPv6 丢失后,自动重连 Wi-Fi;
· 获取新的 IPv6 地址;
· 自动更新域名解析;
· 把异常情况写入日志;
· 必要时重启网络相关服务。

所以这些操作你不root会非常受限。所以我才一开始就说,你如果只是玩玩,那不root没关系。
很多底层网络操作,没有root权限真的很难很难稳定执行。

其实还有很多很多原因,但是都说完篇幅会非常长,而且打字真的很累。所以我就捡着重要的说。
我建议 root,并不是为了炫技,而是让大家看到这背后的真相到底是啥样的,也不是说不 root 就完全不能玩。


后话

我真的没想到,一写就会写这么多内容。你们大家可能就几分钟看完了,但是我打字排版,慢慢调试markdown格式和仔细回忆每一个细节,现在起码四个小时过去了,但是我觉得我却没有讲什么东西,更多像是科普。但是我承诺过,要做一期保姆级的教程,所以不能随便写内容忽悠大家,尽量让大家都能看懂,后期傻瓜式上手。

为了方便大家阅览,在样式排版上花了不少时间,从回忆细节,到构思内容,再到内容排版、最后样式优化和错别字修复,都需要精力,希望大家多多支持和点赞,你们的点赞和支持是我持续更新下去的动力。

手把手打字真的不容易,所以教程出的慢,还望大家多多理解 :laughing:

其实还有很多内容可以写,比如,推荐哪些手机,怎样获取root等等,但是因为码字太花费时间了,所以我省去了很多内容和细节,大家有什么问题,尽管在评论区评论,我都会仔细一一回复的。

既然说到这里,简单编辑帖子补充说一下吧,如果你想买二手手机折腾一下,推荐容易root的手机,比如一加,摩托罗拉等等,再购买之前,先去酷安,某鱼,某宝上面看看要买的机型是否支持root,不支持就别买了。如果你已经有备用机了,那就也去这些地方看看是否有root服务。


下期预告:手机如何实现旁路供电,从此不再担心电池和供电问题。

14 个帖子 - 8 位参与者

阅读完整话题

来源: LinuxDo 最新话题查看原文