CMF Phone 1这类平价机型参数不算亮眼:八核ARM、8GB内存、128GB闪存,配一块内置电池。但它现在干着一台服务器的活——扛着一个远程浏览器、一个个人财务追踪器、一套屏幕共享服务,取代了原本按月付费的Hetzner VPS。这个过程被写成了一篇技术博客,读起来像极客趣闻:旧手机变废为宝,VPS账单归零。但把技术细节和几组硬数据摆在一起看,这个“省钱”故事没有账面上讲得那么干净。

从几乎变砖到能用

先试postmarketOS——一个想把手机彻底刷成纯Linux机器的开源移植项目。能开机,但Wi-Fi、蓝牙、硬件加速全部标记为broken,最后卡在开机画面黑屏,险些把手机变成一块砖。找回出厂的Nothing OS之后,思路换了:不跟安卓的硬件驱动较劲,让Termux在安卓用户态上跑一套类Unix工具链,用runit管进程、Termux:Boot管开机自启、Tailscale管内网地址。

应用最初套在Debian文件系统里,靠proot-distro模拟系统调用来跑。普通网页服务这样跑没问题,但对延迟敏感的远程浏览器Surf来说,每一次系统调用都要在用户态多绕一层,Chrome的性能被生生拖住。解决办法很直接:给手机root,用真正的chroot挂载同一份Debian文件系统,系统调用直接落到安卓内核上。速度问题解决了,代价也跟着来了。

手机变服务器的三次转向 postmarketOS 开机黑屏 险些变砖 Termux + proot 能跑起来 Chrome卡顿 root + chroot 直连内核 速度达标 代价:放弃容器级隔离

算力账:手机只有VPS三分之一

同款CMF Phone 1和一台参数相近的VPS(netcup RS2000,8核AMD EPYC 9634、约16GB内存)跑过Geekbench 6基准测试:手机单核988分、多核2838分;VPS单核1692分、多核8567分。换算下来,手机单核性能是VPS的58%,多核只有33%

算力砍半再砍半 手机 单核 988 VPS 单核 1692 手机 多核 2838 VPS 多核 8567 单核58% · 多核仅33%

这个数字对Surf这样靠多核并发解码、渲染的工作负载不是小事。从proot切到chroot换来的延迟改善,某种程度上是在给一台算力打了三折的机器续命,而不是真的追平了原来的VPS。

安全账和电池账,原文自己也没回避

root手机、放弃proot的隔离层、直接chroot进内核,换来的是速度,让出的是边界。chroot和proot一样,提供的只是文件系统层面的兼容性,不是容器级别的安全隔离——网络栈、内核、进程命名空间,服务和安卓系统共用一份。这一点作者自己也承认:给手机root扩大了信任边界。一旦某个跑在chroot里的应用被攻破,攻击者摸到的不是一个隔离的容器,而是同一颗正在处理短信、指纹、支付信息的安卓内核。

另一笔账更容易被忽略:这台手机现在要长期插着电、常年满电、塞在抽屉或架子上发热运行。这和手机厂商设计时假设的“每天充放一次、大部分时间在包里”是两种截然不同的工况。长期满电高负载对锂电池寿命不友好,鼓包乃至更严重的安全隐患,是这类“手机常驻服务器”方案经常被提醒、却很少被写进博客正文的部分。

  • 风险.root+chroot放弃了容器级隔离,手机常年满电运行也偏离了电池的正常使用场景,这两笔账都没写进“省钱”的等式里。

省钱的故事,少了两个数字

回到最初的动机——省钱。这个判断成立与否,取决于两个完全没有给出的数字:原来那台Hetzner VPS每月多少钱,这部手机满载运行一年额外多花多少电费。手机本身是沉没成本没错,闲置也是浪费,但服务器不是一次性支出,是持续的电费和维护时间。少了这两个数字,“零成本”更像是一种心理账户上的胜利——手机已经买了,用起来不心疼——而不是一份经得起推敲的财务结论。

拆了VPS的账,补的却是安全与电池的墙。

放在自托管这个更大的场景里看,这次实验最有价值的地方,不是“手机能当服务器”这个结论本身,而是它划出的边界。算力够用的轻量个人服务、可以承受偶尔宕机、数据都有独立备份,这类场景闲置手机确实是笔好买卖。但凡涉及重要数据、需要长期在线保证、或者担心攻击面扩大,这套方案目前更适合当玩具,而不是拿来替代一台正经的服务器。