旧手机不要扔,装个 Termux 变身 7x24 小时服务器

写作注释: 本文由 AI 生成, 主题「手机当服务器: Termux 部署轻量服务实战」, 内容仅供参考, 欢迎留言交流。

开头引入

家里躺着一台退役的旧手机,屏幕碎了懒得修,卖二手又不值钱。其实,它完全可以变废为宝——当作一台 7x24 小时运行的 Linux 服务器。Termux 是 Android 上的终端模拟器,能提供完整的 Linux 环境,配合 SSH、Nginx、Python 等工具,足以支撑博客、定时脚本、下载任务、内网穿透等轻量服务。本文不聊理论,直接上实操,带你从零开始完成部署,并处理掉最常见的几个坑(比如 Termux 被系统杀后台的问题)。

为什么要用手机当服务器

手机当服务器的核心优势是低成本。你不需要额外购置树莓派或云主机,一块旧电池加上 Wi-Fi 就能跑起来。性能方面,如今千元机的 CPU 和内存其实远超十年前的 PC,跑 Nginx 和 Python 脚本绰绰有余。缺点是持久性和稳定性不如专业服务器,但通过下文介绍的 Termux 保活技巧,可以实现连续运行数周不宕机。

对于个人项目来说,用手机做服务器还有一个好处:数据完全掌握在自己手里。不用担心云服务商跑路或审查,也不用为 1 核 2G 的小主机每年支付几百元。接下来,我们直接进入部署环节。

安装 Termux 与基础环境

Termux 在 Google Play 上已经停止更新,推荐从 F-Droid 或 GitHub Releases 下载最新版本。安装后打开终端,第一件事是更换软件源,因为默认源在国内几乎无法访问:

1
termux-change-repo

选择 mirrors.tuna.tsinghua.edu.cn 或中科大源,然后执行更新:

1
pkg update && pkg upgrade -y

接下来安装基础工具包。为了后续部署方便,建议一次性装齐:

1
pkg install -y openssh nginx python nodejs-lts git vim curl wget

安装完成后,启动 SSH 服务并设置密码:

1
2
sshd
passwd

现在可以在电脑上用 SSH 连接手机了:

1
ssh 手机IP -p 8022

注意 Termux 的 SSH 默认端口是 8022 不是 22。另外,在 Termux 中按音量键 + C 可以中断命令,音量键 + D 可以退出当前会话。

部署轻量 Web 服务

以 Nginx 为例,先配置一个简单的静态站点。Termux 安装的 Nginx 配置文件在 $PREFIX/etc/nginx/nginx.conf,默认网页目录在 $PREFIX/share/nginx/html。运行 nginx 命令启动服务:

1
nginx

此时用手机浏览器访问 http://127.0.0.1:8080,看到 Nginx 欢迎页就说明服务已经正常跑起来了。如果想把服务绑定到 80 端口,需要借助 iptables 做端口转发,因为 Android 的 SELinux 机制会阻止普通进程绑定 1024 以下的端口。在 Termux 中执行:

1
2
pkg install -y iptables
iptables -t nat -A OUTPUT -p tcp --dport 80 -j REDIRECT --to-port 8080

这样局域网内的设备就可以直接通过 http://手机IP 访问了。用手机当服务器最大的坑就是后台被系统杀掉,建议在系统设置中关闭 Termux 的电池优化,同时在应用详情里打开「允许自启动」。

用 Python 快速写一个接口服务

除了 Nginx,Python 也是 Termux 上常用的服务端工具。这里演示用 Flask 写一个 JSON 接口,可以作为 API 服务器使用:

1
2
3
4
5
6
7
8
9
10
11
# app.py
from flask import Flask, jsonify

app = Flask(__name__)

@app.route("/api/ping")
def ping():
return jsonify({"message": "pong", "status": "ok"})

if __name__ == "__main__":
app.run(host="0.0.0.0", port=5000, debug=False)

安装依赖后启动:

1
2
pip install flask
python app.py

注意 Termux 官方仓库默认使用的是 python 命令而不是 python3。另外,如果需要持久化运行,推荐使用 tmux 在后台启动服务。tmux 的好处是可以让程序在手机息屏后继续运行,也可以随时找回终端界面:

1
2
3
pkg install -y tmux
tmux new -s myapi
python app.py

Ctrl+B 再按 D 可以脱离会话,使用 tmux attach -t myapi 重新进入。

外网访问:内网穿透

局域网内能访问只是一个基础功能,真正的实用价值在于外网访问。手机没有公网 IP,需要通过内网穿透工具将服务暴露到公网。这里介绍两种方案:轻量的 ngrok 和自托管方案 frp

在 Termux 中,直接下载 ngrok 的 ARM64 版本二进制文件即可,不用 root:

1
2
3
4
wget https://bin.equinox.io/c/bNyj1mQVY4c/ngrok-v3-stable-linux-arm64.tgz
tar xzf ngrok-v3-stable-linux-arm64.tgz
./ngrok config add-authtoken 你的token
./ngrok http 8080

ngrok 会分配一个随机域名,公网用户可以通过该域名访问你的服务。缺点是免费版域名不稳定,且每次重启会变化。

如果自己有云服务器,用 frp 方案会更稳定。在手机端只需要下载 frpc 并配置:

1
2
3
4
5
6
7
8
9
10
# frpc.toml
serverAddr = "你的云服务器IP"
serverPort = 7000

[[proxies]]
name = "termux-web"
type = "tcp"
localIP = "127.0.0.1"
localPort = 8080
remotePort = 8080

运行 ./frpc -c frpc.toml,之后通过云服务器的 8080 端口即可访问手机上的服务。需要加密传输的话,可以在配置文件里加上 transport.tls.enable = true

总结

到此,一台旧手机已经成功变成了一台能对外提供服务的轻量服务器。我们完成了 Termux 的安装与源配置、SSH 远程管理、Nginx/Python 服务部署、以及通过内网穿透实现公网访问。整个过程不依赖任何付费工具,也不需要对手机进行 root。

想进一步加固稳定性,建议开启 Termux 的 termux-services 来管理脚本的自动重启,在 ~/.bashrc 中添加启动命令,并给手机设置一个固定 Wi-Fi 和充电周期,防止电池耗尽导致服务中断。也可以考虑安装 rsync 做定时备份,避免存储损坏丢失数据。

总之一句话:与其让旧手机吃灰,不如让它继续发光发热。遇到问题欢迎在评论区留言,我会一一回复。


旧手机不要扔,装个 Termux 变身 7x24 小时服务器
https://wumingmr.github.io/2026/08/12/旧手机不要扔,装个-Termux-变身-7x24-小时服务器/
作者
无名
发布于
2026年8月12日
许可协议