旧手机别扔!手把手教你用Termux+Ubuntu搭建24小时在线的个人服务器(附frp内网穿透配置)
2026/6/8 19:45:43 网站建设 项目流程

闲置安卓手机变身全天候个人服务器:Termux与Ubuntu的极致改造指南

每次换新手机后,那台旧设备往往被遗忘在抽屉角落。但你可能不知道,这些被淘汰的安卓手机完全可以变身为功能强大的个人服务器,7x24小时为你提供各种实用服务。本文将带你一步步解锁旧手机的隐藏潜力,无需额外硬件投入,就能搭建属于你的私有云盘、自动化任务中心甚至小型网站。

1. 为什么选择旧手机作为服务器?

在开始技术操作前,我们先分析这种方案的独特优势。相比传统服务器或树莓派等设备,闲置安卓手机具有几个不可替代的优点:

  • 零成本利用:完全利用已有设备,无需额外购置硬件
  • 超低功耗:手机设计本就注重能效,连续运行电费几乎可忽略
  • 内置电池:意外断电时自动切换电池供电,相当于免费UPS
  • 便携性强:体积小巧,可放置在任何有网络的地方
  • 性能足够:现代手机处理器性能远超早期服务器

我曾用一台2018年的旧手机成功运行了以下服务:

  1. 个人Nextcloud云盘
  2. Home Assistant智能家居中枢
  3. RSS订阅服务器
  4. 自动化脚本调度中心
  5. 小型WordPress博客

2. 基础环境搭建

2.1 Termux安装与配置

Termux是安卓上的强大终端模拟器,也是我们改造计划的核心。安装时需要注意:

# 下载最新版Termux(建议从F-Droid获取) pkg install wget wget https://f-droid.org/repo/com.termux_118.apk # 更换为国内镜像源加速安装 sed -i 's@^\(deb.*stable main\)$@#\1\ndeb https://mirrors.tuna.tsinghua.edu.cn/termux/termux-packages-24 stable main@' $PREFIX/etc/apt/sources.list pkg update

提示:部分国产手机需在设置中允许"未知来源应用"安装

安装完成后,建议立即设置SSH远程访问:

pkg install openssh passwd # 设置访问密码 sshd # 启动SSH服务 ifconfig | grep inet # 查看手机IP地址

现在你就可以用电脑SSH客户端连接手机终端了,推荐使用:

  • Windows: MobaXterm或PuTTY
  • macOS/Linux: 内置终端直接使用ssh命令

2.2 Ubuntu子系统部署

Termux原生环境功能有限,我们需要通过proot安装完整的Ubuntu:

pkg install proot-distro proot-distro install ubuntu proot-distro login ubuntu

进入Ubuntu后,建议进行以下基础配置:

  1. 更新软件源并安装常用工具:

    apt update && apt upgrade -y apt install vim git python3 pip openssh-server -y
  2. 配置SSH服务(与Termux层区分):

    vim /etc/ssh/sshd_config

    修改以下关键参数:

    Port 2222 # 改为与Termux不同的端口 PermitRootLogin yes PasswordAuthentication yes
  3. 启动服务并设置开机自启:

    service ssh start echo "service ssh start" >> ~/.bashrc

3. 实用服务部署实战

3.1 私有云存储方案

Nextcloud是完美的自建云盘选择,在手机Ubuntu中部署只需几个步骤:

# 安装依赖 apt install mariadb-server php apache2 -y # 配置数据库 mysql -u root -e "CREATE DATABASE nextcloud;" mysql -u root -e "CREATE USER 'nextcloud'@'localhost' IDENTIFIED BY '你的密码';" mysql -u root -e "GRANT ALL PRIVILEGES ON nextcloud.* TO 'nextcloud'@'localhost';" # 下载并安装Nextcloud wget https://download.nextcloud.com/server/releases/latest.zip unzip latest.zip -d /var/www/html/ chown -R www-data:www-data /var/www/html/nextcloud

访问手机IP地址的/nextcloud路径即可完成初始化设置。为提升性能,建议:

  • 启用APCu缓存:apt install php-apcu
  • 添加内存缓存配置:
    'memcache.local' => '\OC\Memcache\APCu', 'filelocking.enabled' => true,

3.2 自动化任务中心

利用手机服务器可以轻松实现各类自动化:

场景示例:每日自动备份微信聊天记录

import requests import schedule import time def backup_wechat(): # 模拟通过adb备份聊天记录 os.system('adb backup -f /backups/wechat.ab com.tencent.mm') # 上传到云存储 requests.post('http://localhost/nextcloud/remote.php/webdav/', files={'file': open('/backups/wechat.ab','rb')}) # 每天凌晨3点执行 schedule.every().day.at("03:00").do(backup_wechat) while True: schedule.run_pending() time.sleep(60)

其他实用自动化场景:

  • 定时抓取RSS订阅并推送到Kindle
  • 监控商品价格变动自动提醒
  • 社交媒体内容自动归档
  • 家庭照片自动分类备份

4. 外网访问解决方案

4.1 内网穿透配置对比

方案类型适用场景优点缺点
FRP穿透有云服务器高性能、稳定需要额外服务器
Ngrok快速测试无需配置免费版限速
ZeroTier多设备组网点对点连接需要客户端支持

4.2 FRP详细配置指南

在云服务器上配置服务端(frps.ini):

[common] bind_port = 7000 vhost_http_port = 8080 dashboard_port = 7500 dashboard_user = admin dashboard_pwd = 你的密码

手机端配置客户端(frpc.ini):

[common] server_addr = 你的服务器IP server_port = 7000 [nextcloud] type = http local_ip = 127.0.0.1 local_port = 80 custom_domains = nc.yourdomain.com [ssh] type = tcp local_ip = 127.0.0.1 local_port = 2222 remote_port = 22222

启动命令:

nohup ./frpc -c ./frpc.ini > /dev/null 2>&1 &

注意:云服务器安全组需放行对应端口(7000、8080、7500等)

5. 系统优化与维护

5.1 性能调优技巧

手机作为服务器需要特别注意资源管理:

  1. 内存优化

    # 创建swap文件 fallocate -l 2G /swapfile chmod 600 /swapfile mkswap /swapfile swapon /swapfile echo '/swapfile none swap sw 0 0' >> /etc/fstab
  2. 服务监控

    # 安装轻量级监控工具 apt install htop glances -y glances -w # 启动Web界面
  3. 自动清理

    # 添加定时清理任务 (crontab -l 2>/dev/null; echo "0 3 * * * find /tmp -type f -mtime +7 -delete") | crontab -

5.2 长期运行稳定性保障

  • 防止休眠

    1. 在手机设置中关闭电池优化
    2. Termux中安装唤醒锁:
      pkg install termux-api termux-wake-lock
  • 自动恢复机制

    # 创建监控脚本 vim /root/healthcheck.sh

    内容如下:

    #!/bin/bash if ! pgrep -x "frpc" >/dev/null; then /path/to/frpc -c /path/to/frpc.ini & fi

    添加定时任务:

    (crontab -l 2>/dev/null; echo "*/5 * * * * /root/healthcheck.sh") | crontab -

经过几个月的实际运行测试,这套方案完全可以满足个人使用的各种需求。我的旧手机服务器已经连续运行超过180天,托管着12项不同的服务,而每月增加的电力成本几乎可以忽略不计。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询