旧安卓手机变身Linux服务器Termux全栈开发环境搭建指南抽屉里那部积灰的旧安卓手机可能比你想象的更有价值。通过Termux这款强大的终端模拟器我们可以将闲置设备改造成功能完备的Linux服务器运行Python脚本、MySQL数据库甚至Web服务。不同于常规的树莓派方案这种改造几乎零成本却能获得随时随地的移动开发环境。1. 基础环境准备1.1 Termux安装与配置建议从F-Droid应用商店获取官方正版Termux避免第三方渠道可能存在的安全隐患。安装完成后首次启动需要执行几个基础命令完成环境初始化pkg update pkg upgrade pkg install proot git curl wget注意部分设备可能需要开启存储权限才能访问手机文件执行termux-setup-storage授权1.2 Linux子系统部署Termux原生环境功能有限建议通过proot-distro安装完整的Linux发行版。Ubuntu是最兼容的选择pkg install proot-distro proot-distro install ubuntu proot-distro login ubuntu进入Ubuntu环境后先更新软件源并安装基础工具链apt update apt upgrade -y apt install vim sudo build-essential关键配置项设置时区sudo dpkg-reconfigure tzdata创建普通用户adduser devuser usermod -aG sudo devuser2. 开发环境搭建2.1 Python环境配置Ubuntu默认带有Python3但建议使用pyenv管理多版本curl https://pyenv.run | bash echo export PYENV_ROOT$HOME/.pyenv ~/.bashrc echo command -v pyenv /dev/null || export PATH$PYENV_ROOT/bin:$PATH ~/.bashrc echo eval $(pyenv init -) ~/.bashrc source ~/.bashrc安装Python 3.9并设置全局默认pyenv install 3.9.13 pyenv global 3.9.13常用Python工具链安装pip install --upgrade pip pip install virtualenv pipenv black flake82.2 数据库服务部署MariaDB是MySQL的兼容替代品更适合资源有限的设备sudo apt install mariadb-server sudo mysql_secure_installation配置优化编辑/etc/mysql/mariadb.conf.d/50-server.cnf[mysqld] innodb_buffer_pool_size 32M key_buffer_size 16M max_connections 20创建开发数据库CREATE DATABASE devdb; CREATE USER devuserlocalhost IDENTIFIED BY password; GRANT ALL PRIVILEGES ON devdb.* TO devuserlocalhost; FLUSH PRIVILEGES;3. Web服务配置3.1 Nginx轻量级Web服务器安装并优化配置sudo apt install nginx sudo sed -i s/worker_processes auto;/worker_processes 1;/g /etc/nginx/nginx.conf示例站点配置/etc/nginx/sites-available/devsiteserver { listen 8080; server_name localhost; root /home/devuser/www; index index.html; location / { try_files $uri $uri/ 404; } location ~ \.py$ { include fastcgi_params; fastcgi_pass unix:/tmp/fcgi.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } }3.2 Python应用部署方案使用GunicornSupervisor方案pip install gunicorn sudo apt install supervisorSupervisor配置示例/etc/supervisor/conf.d/flaskapp.conf[program:flaskapp] command/home/devuser/.pyenv/shims/gunicorn -w 2 -b unix:/tmp/fcgi.sock app:app directory/home/devuser/www userdevuser autostarttrue autorestarttrue4. 系统优化与维护4.1 资源监控与管理安装基础监控工具sudo apt install htop tmux常用监控命令组合# 查看内存使用 free -h # 磁盘空间检查 df -h # 进程资源占用 top -o %MEM4.2 自动化任务设置使用cron定时任务示例crontab -e添加每日备份任务0 3 * * * mysqldump -u devuser -ppassword devdb /home/devuser/backups/devdb_$(date \%Y\%m\%d).sql4.3 持久化服务方案Termux启动时自动登录Ubuntu并启动服务编辑~/.bashrcif [ ! $(whoami) root ]; then proot-distro login ubuntu -- bash -c sudo service mysql start sudo service nginx start fi对于需要长期运行的服务建议使用Termux的唤醒锁定功能termux-wake-lock5. 内网穿透与远程访问5.1 SSH服务配置在Ubuntu环境中安装OpenSSHsudo apt install openssh-server sudo sed -i s/#Port 22/Port 8022/g /etc/ssh/sshd_config生成SSH密钥对ssh-keygen -t ed25519 cat ~/.ssh/id_ed25519.pub ~/.ssh/authorized_keys5.2 本地网络访问方案使用adb端口转发实现PC访问adb forward tcp:8022 tcp:8022连接测试ssh -p 8022 devuserlocalhost5.3 云同步方案安装rclone实现与云存储同步curl https://rclone.org/install.sh | sudo bash rclone config示例同步命令rclone sync -P /home/devuser/www drive:www_backup6. 实战项目部署6.1 个人博客系统使用Pelican静态博客生成器pip install pelican markdown pelican-quickstart构建命令pelican content -s pelicanconf.py6.2 REST API服务FastAPI示例项目部署# main.py from fastapi import FastAPI app FastAPI() app.get(/) def read_root(): return {message: Hello from Android Server}启动命令uvicorn main:app --host 0.0.0.0 --port 80006.3 定时爬虫任务使用Scrapy框架示例pip install scrapy scrapy startproject myproject配置定时执行编辑crontab0 */6 * * * cd /home/devuser/myproject scrapy crawl myspider7. 故障排查与调试7.1 常见问题解决MySQL无法启动检查错误日志sudo tail -n 50 /var/log/mysql/error.log修复权限sudo chown -R mysql:mysql /var/lib/mysqlPython包安装失败安装编译依赖sudo apt install python3-dev libffi-dev使用--no-cache-dir选项pip install --no-cache-dir package_name7.2 性能优化技巧使用swapfile扩展内存sudo fallocate -l 1G /swapfile sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile调整文件描述符限制编辑/etc/security/limits.conf* soft nofile 8192 * hard nofile 81928. 进阶应用场景8.1 IoT数据采集中心使用Python读取传感器数据import serial ser serial.Serial(/dev/ttyACM0, 9600) while True: data ser.readline().decode().strip() print(fSensor reading: {data})8.2 自动化测试平台搭建Selenium测试环境sudo apt install chromium-chromedriver pip install selenium示例测试脚本from selenium import webdriver options webdriver.ChromeOptions() options.add_argument(--headless) driver webdriver.Chrome(optionsoptions) driver.get(http://example.com) print(driver.title) driver.quit()8.3 家庭媒体服务器安装MiniDLNA媒体服务器sudo apt install minidlna sudo sed -i s/media_dir\/var\/lib\/minidlna/media_dir\/sdcard\/Movies/g /etc/minidlna.conf sudo service minidlna restart9. 安全加固措施9.1 基础安全配置更改默认SSH端口禁用root远程登录安装fail2ban防护sudo apt install fail2ban sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local9.2 防火墙设置使用ufw简单防火墙sudo apt install ufw sudo ufw allow 8022/tcp sudo ufw enable9.3 定期维护任务安全更新自动化echo 0 3 * * * sudo apt update sudo apt upgrade -y | crontab -日志清理脚本#!/bin/bash find /var/log -type f -name *.log -exec truncate -s 0 {} \; journalctl --vacuum-size50M10. 扩展功能集成10.1 容器化部署虽然Termux不支持Docker但可使用podman替代sudo apt install podman podman run -d -p 8080:80 docker.io/library/nginx10.2 监控面板搭建使用Netdata实时监控bash (curl -Ss https://my-netdata.io/kickstart.sh)访问地址http://localhost:1999910.3 备份恢复方案全系统备份脚本#!/bin/bash BACKUP_DIR/sdcard/termux_backup mkdir -p $BACKUP_DIR proot-distro backup ubuntu --output $BACKUP_DIR/ubuntu_$(date %Y%m%d).tar.gz mysqldump -u devuser -ppassword --all-databases $BACKUP_DIR/mysql_$(date %Y%m%d).sql恢复时只需执行proot-distro restore ubuntu --input backup_file.tar.gz mysql -u devuser -ppassword backup_file.sql
把旧安卓手机变成Linux服务器:用Termux部署Python脚本、MySQL和Web服务的实战记录
发布时间:2026/6/8 0:34:56
旧安卓手机变身Linux服务器Termux全栈开发环境搭建指南抽屉里那部积灰的旧安卓手机可能比你想象的更有价值。通过Termux这款强大的终端模拟器我们可以将闲置设备改造成功能完备的Linux服务器运行Python脚本、MySQL数据库甚至Web服务。不同于常规的树莓派方案这种改造几乎零成本却能获得随时随地的移动开发环境。1. 基础环境准备1.1 Termux安装与配置建议从F-Droid应用商店获取官方正版Termux避免第三方渠道可能存在的安全隐患。安装完成后首次启动需要执行几个基础命令完成环境初始化pkg update pkg upgrade pkg install proot git curl wget注意部分设备可能需要开启存储权限才能访问手机文件执行termux-setup-storage授权1.2 Linux子系统部署Termux原生环境功能有限建议通过proot-distro安装完整的Linux发行版。Ubuntu是最兼容的选择pkg install proot-distro proot-distro install ubuntu proot-distro login ubuntu进入Ubuntu环境后先更新软件源并安装基础工具链apt update apt upgrade -y apt install vim sudo build-essential关键配置项设置时区sudo dpkg-reconfigure tzdata创建普通用户adduser devuser usermod -aG sudo devuser2. 开发环境搭建2.1 Python环境配置Ubuntu默认带有Python3但建议使用pyenv管理多版本curl https://pyenv.run | bash echo export PYENV_ROOT$HOME/.pyenv ~/.bashrc echo command -v pyenv /dev/null || export PATH$PYENV_ROOT/bin:$PATH ~/.bashrc echo eval $(pyenv init -) ~/.bashrc source ~/.bashrc安装Python 3.9并设置全局默认pyenv install 3.9.13 pyenv global 3.9.13常用Python工具链安装pip install --upgrade pip pip install virtualenv pipenv black flake82.2 数据库服务部署MariaDB是MySQL的兼容替代品更适合资源有限的设备sudo apt install mariadb-server sudo mysql_secure_installation配置优化编辑/etc/mysql/mariadb.conf.d/50-server.cnf[mysqld] innodb_buffer_pool_size 32M key_buffer_size 16M max_connections 20创建开发数据库CREATE DATABASE devdb; CREATE USER devuserlocalhost IDENTIFIED BY password; GRANT ALL PRIVILEGES ON devdb.* TO devuserlocalhost; FLUSH PRIVILEGES;3. Web服务配置3.1 Nginx轻量级Web服务器安装并优化配置sudo apt install nginx sudo sed -i s/worker_processes auto;/worker_processes 1;/g /etc/nginx/nginx.conf示例站点配置/etc/nginx/sites-available/devsiteserver { listen 8080; server_name localhost; root /home/devuser/www; index index.html; location / { try_files $uri $uri/ 404; } location ~ \.py$ { include fastcgi_params; fastcgi_pass unix:/tmp/fcgi.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } }3.2 Python应用部署方案使用GunicornSupervisor方案pip install gunicorn sudo apt install supervisorSupervisor配置示例/etc/supervisor/conf.d/flaskapp.conf[program:flaskapp] command/home/devuser/.pyenv/shims/gunicorn -w 2 -b unix:/tmp/fcgi.sock app:app directory/home/devuser/www userdevuser autostarttrue autorestarttrue4. 系统优化与维护4.1 资源监控与管理安装基础监控工具sudo apt install htop tmux常用监控命令组合# 查看内存使用 free -h # 磁盘空间检查 df -h # 进程资源占用 top -o %MEM4.2 自动化任务设置使用cron定时任务示例crontab -e添加每日备份任务0 3 * * * mysqldump -u devuser -ppassword devdb /home/devuser/backups/devdb_$(date \%Y\%m\%d).sql4.3 持久化服务方案Termux启动时自动登录Ubuntu并启动服务编辑~/.bashrcif [ ! $(whoami) root ]; then proot-distro login ubuntu -- bash -c sudo service mysql start sudo service nginx start fi对于需要长期运行的服务建议使用Termux的唤醒锁定功能termux-wake-lock5. 内网穿透与远程访问5.1 SSH服务配置在Ubuntu环境中安装OpenSSHsudo apt install openssh-server sudo sed -i s/#Port 22/Port 8022/g /etc/ssh/sshd_config生成SSH密钥对ssh-keygen -t ed25519 cat ~/.ssh/id_ed25519.pub ~/.ssh/authorized_keys5.2 本地网络访问方案使用adb端口转发实现PC访问adb forward tcp:8022 tcp:8022连接测试ssh -p 8022 devuserlocalhost5.3 云同步方案安装rclone实现与云存储同步curl https://rclone.org/install.sh | sudo bash rclone config示例同步命令rclone sync -P /home/devuser/www drive:www_backup6. 实战项目部署6.1 个人博客系统使用Pelican静态博客生成器pip install pelican markdown pelican-quickstart构建命令pelican content -s pelicanconf.py6.2 REST API服务FastAPI示例项目部署# main.py from fastapi import FastAPI app FastAPI() app.get(/) def read_root(): return {message: Hello from Android Server}启动命令uvicorn main:app --host 0.0.0.0 --port 80006.3 定时爬虫任务使用Scrapy框架示例pip install scrapy scrapy startproject myproject配置定时执行编辑crontab0 */6 * * * cd /home/devuser/myproject scrapy crawl myspider7. 故障排查与调试7.1 常见问题解决MySQL无法启动检查错误日志sudo tail -n 50 /var/log/mysql/error.log修复权限sudo chown -R mysql:mysql /var/lib/mysqlPython包安装失败安装编译依赖sudo apt install python3-dev libffi-dev使用--no-cache-dir选项pip install --no-cache-dir package_name7.2 性能优化技巧使用swapfile扩展内存sudo fallocate -l 1G /swapfile sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile调整文件描述符限制编辑/etc/security/limits.conf* soft nofile 8192 * hard nofile 81928. 进阶应用场景8.1 IoT数据采集中心使用Python读取传感器数据import serial ser serial.Serial(/dev/ttyACM0, 9600) while True: data ser.readline().decode().strip() print(fSensor reading: {data})8.2 自动化测试平台搭建Selenium测试环境sudo apt install chromium-chromedriver pip install selenium示例测试脚本from selenium import webdriver options webdriver.ChromeOptions() options.add_argument(--headless) driver webdriver.Chrome(optionsoptions) driver.get(http://example.com) print(driver.title) driver.quit()8.3 家庭媒体服务器安装MiniDLNA媒体服务器sudo apt install minidlna sudo sed -i s/media_dir\/var\/lib\/minidlna/media_dir\/sdcard\/Movies/g /etc/minidlna.conf sudo service minidlna restart9. 安全加固措施9.1 基础安全配置更改默认SSH端口禁用root远程登录安装fail2ban防护sudo apt install fail2ban sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local9.2 防火墙设置使用ufw简单防火墙sudo apt install ufw sudo ufw allow 8022/tcp sudo ufw enable9.3 定期维护任务安全更新自动化echo 0 3 * * * sudo apt update sudo apt upgrade -y | crontab -日志清理脚本#!/bin/bash find /var/log -type f -name *.log -exec truncate -s 0 {} \; journalctl --vacuum-size50M10. 扩展功能集成10.1 容器化部署虽然Termux不支持Docker但可使用podman替代sudo apt install podman podman run -d -p 8080:80 docker.io/library/nginx10.2 监控面板搭建使用Netdata实时监控bash (curl -Ss https://my-netdata.io/kickstart.sh)访问地址http://localhost:1999910.3 备份恢复方案全系统备份脚本#!/bin/bash BACKUP_DIR/sdcard/termux_backup mkdir -p $BACKUP_DIR proot-distro backup ubuntu --output $BACKUP_DIR/ubuntu_$(date %Y%m%d).tar.gz mysqldump -u devuser -ppassword --all-databases $BACKUP_DIR/mysql_$(date %Y%m%d).sql恢复时只需执行proot-distro restore ubuntu --input backup_file.tar.gz mysql -u devuser -ppassword backup_file.sql