家里的旧手机、平板是不是越堆越多?
像我手里就有台 Redmi K30 5G,电池已经尿崩,必须时刻插着电;屏幕右上角还有点漏液,看着闹心。想卖?回收平台顶多给个“换盆”价;当备用机?这屏幕素质实在下不去手。
闲置吃灰?总觉得太可惜!毕竟它有一颗骁龙765G的芯。
能不能把它利用起来?答案当然是可以的——把它变成一台Linux服务器!
❌ 为什么放弃 Termux?
提到安卓跑Linux,很多人第一反应是 Termux。但我折腾一圈后放弃了,原因很现实:
环境差异大:Termux 的命令和原生 Linux 有区别,Shell 脚本经常跑不起来,学习成本高。
网络不稳定:源在国外,下载速度慢,动不动就断连。
权限受限:无法获取 Root,很多底层操作没法搞。
经过一番摸索,我找到了一套更优雅、更稳定的方案:Podroid + Rathole(此处我们是在内网环境进行测试部署)。
Podroid 简介:这是一个搭载独立内核的真实 Alpine Linux 虚拟机,而非 chroot 或 proot 取巧方案。Docker、Podman 都能完美运行。
Rathole简介:安全、稳定、高性能的内网穿透工具,用 Rust 语言编写,类似于 frp 和 ngrok,可以让 NAT 后的设备上的服务通过具有公网 IP 的服务器暴露在公网上。
这套方案的核心逻辑非常清晰,完美解决了安卓设备“有算力难访问”的痛点:
podroid 负责建立阵地:它在安卓系统之上,虚拟出一台拥有 独立内核的 Alpine Linux 虚拟机。在这个沙箱里,你拥有 完整的 Root 权限 ,可以随意 折腾 Docker、Podman 等服务,而不影响宿主安卓系统的稳定性。
Rathole 负责打通隧道:由于安卓系统严格的网络隔离策略,外部网络 无法直接访问 Podroid 内部开放的端口。因此我们引入 Rathole 进行内网穿透,建立一条从公网服务器到本地 Podroid 的安全加密通道
脚本化与 Caddy 负责高效部署:为了降低部署门槛,我们将客户端的配置、监控和初始化逻辑全部脚本化。同时,利用 Caddy 搭建轻量级的 Web 文件服务器,只需一条 wget命令,就能在旧手机上拉取所有必需文件,实现“一键部署”。
整个部署流程分为“公网服务端准备”和“旧手机端接入”两部分。
第一阶段:公网服务器环境搭建(Rathole 服务端 & Caddy)
我们需要一台有公网IP的服务器作为“跳板”和“仓库”
上传rathole-setup文件夹并进入cd rathole-setup
运行脚本。
chmod +x rathole_setup.sh./rathole_setup.sh
脚本运行后会自动生成 1-client 交付包。
自动识别服务状态。
安装caddy文件服务器(可选)。
上传caddy-2-10-alpine-dns.tar caddy-fileserver.sh
授权并解压caddy镜像(在官方2.10镜像基础上增加腾讯云dns授权)。
chmod +x caddy-fileserver.shdocker load -i caddy-2-10-alpine-dns.tar
执行。
./caddy-fileserver.sh
将生成的客户端包与 Alpine 初始化脚本打包并放入 Caddy 目录.
cd /opt/caddy/filecp /root/setup-alpine-ssh.shtar -zcf 1-client_rathole_ssh.tar.gz setup-alpine-ssh.sh 1-client
第二阶段:旧手机端配置(Podroid APP)
准备好Podroid-v1.2.6-release.apk,双击安装,部分手机会报警忽略即可。
可以参考下面图片进行设置并启动虚机(需要耐心等待几分钟)
点击打开终端,执行下面的命令
wget http://192.168.31.100/1-client_rathole_ssh.tar.gztar zxvf 1-client_rathole_ssh.tar.gzcd 1-client/chmod +x monitor.shcd ..chmod +x setup-alpine-ssh.sh./setup-alpine-ssh.shcd 1-client/./monitor.sh
服务已经启动
尝试ssh成功。
这套方案通过 Rathole 的高效转发能力和 Podroid 的轻量级容器化,真正释放了老旧安卓设备的余热。无论是用来挂个人博客、做爬虫节点,还是当作家庭影音库的下载机,都是极好的选择。
下期我们就来介绍如何搭建家庭影音库。
别让你的旧手机再吃灰了,今晚就动手试试吧!
热门跟贴