在 Android 6.0 上部署 alpine3.22

CListery ARE YOU OK?

日常需要定时运行各类脚本任务,若为这类轻量需求全天开启服务器设备,不仅功耗偏高且性价比低;同时部分脚本需要在不同网络环境下执行以获取多维度结果。原本计划入手低功耗小主机 / 工控机,后发现家中有闲置安卓手机,何不利用这些设备实现二次利用,基于此完成了本次 Android 6.0 环境下 Alpine 3.22 的部署实践,整理成文供参考。

环境及设备信息

  1. Android 6.0.1
  2. HTC m8et

部署 Alpine

安装并配置 F-Droid

安装 Termux(Android 6.0 兼容版)

  • F-Droid 仓库中无 Android 6.0 的 Termux 兼容版本,需从 Termux 官方源码仓库下载历史版本,可前往 Termux GitHub Releases 筛选适配 Android 6.0 的安装包完成安装。

AnLinux + Alpine

AnLinux 对 Android 6.0 兼容性更好,这里我们直接使用它进行 Alpine 的安装

  1. 在 F-Droid 中搜索安装 AnLinux
  2. 打开 AnLinux,在主界面选择需要安装的系统为 Alpine
  3. 复制应用自动生成的 Alpine 安装脚本
  4. 启动 Termux,粘贴脚本并执行,脚本会自动完成 Alpine 的下载、解压和初始化配置

安装完成后先不要启动 Alpine,手机上进行命令行操作太蹩脚,所以我们切换到 PC

配置 SSH

手机开启USB 调试,并通过 USB 数据线与 PC 连接,确保 PC 端已安装 ADB 工具并能正常识别手机设备。

在 PC 端执行

1
2
3
4
# 生成 SSH 密钥对,替换<邮箱>为自己的邮箱
ssh-keygen -t ed25519 -C '<邮箱>'
# 将公钥推送至手机 /sdcard/Download 目录
adb push ~/.ssh/id_ed25519.pub /sdcard/Download

Termux 端配置 SSH 服务

在手机 Termux 中执行以下命令,安装 openssh、配置公钥认证并修改 sshd 配置(禁用密码登录提升安全性)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 安装 openssh 服务
pkg add openssh
# 创建.ssh目录并设置权限(700为目录专属权限,关键步骤)
mkdir -p ~/.ssh && chmod 700 ~/.ssh
# 将PC推送的公钥写入授权列表
cat /sdcard/Download/id_ed25519.pub >> ~/.ssh/authorized_keys
# 设置授权文件权限(600为文件专属权限,sshd强制要求)
chmod 600 ~/.ssh/authorized_keys
# 覆盖写入sshd配置文件
echo 'AuthorizedKeysFile .ssh/authorized_keys
Port 8022
PubkeyAuthentication yes
PasswordAuthentication no
PrintMotd yes
Subsystem sftp /data/data/com.termux/files/usr/libexec/sftp-server' > $PREFIX/etc/ssh/sshd_config
# 启动 sshd 服务
sshd

PC 端 SSH 连接手机

确保PC和手机在同一个局域网下

  1. 在手机 adb shell 中执行 ip addr 或 ifconfig,查看手机的局域网 IP 地址(一般为 wlan0 网卡的 inet 地址);
  2. 在 PC 端终端执行以下命令,通过 SSH 密钥认证连接手机 Termux,替换 <手机 ip> 为实际查询到的 IP:
1
ssh <手机ip> -i ~/.ssh/id_ed25519 -p 8022

启动并配置 Alpine

启动 Alpine

AnLinux 安装 Alpine 后,会在 Termux 的主目录生成启动脚本,在 PC 端已连接的 SSH 终端中执行以下命令启动 Alpine

1
2
# 执行 Alpine 启动脚本
~/./start-alpine.sh

配置环境

  • 配置加速源 (可选)

    网上能找到很多,这里不列举

    配置完成后执行 apk update 更新索引

  • 配置 shell (可选)

    1
    2
    3
    4
    # 部分 ohmyzsh 的主题会使用 perl
    apk add curl zsh perl
    # 安装Oh My Zsh(一键配置脚本)
    sh -c "$(curl -fsSL https://install.ohmyz.sh/)"

    修改 /etc/passwd 中的默认 shell 为 zsh

    建议配置下面三个插件

    zsh-autosuggestions

    zsh-completions

    zsh-syntax-highlighting

  • 安装常用软件

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    apk add curl wget git linux-tools
    apk add musl-dev python3-dev
    apk add gcc make
    # 安装 python
    apk add python3
    wget https://github.com/astral-sh/uv/releases/latest/download/uv-armv7-unknown-linux-musleabihf.tar.gz
    tar xvf uv-armv7-unknown-linux-musleabihf.tar.gz
    cd uv-armv7-unknown-linux-musleabihf
    ln -s $PWD/* /usr/bin
    # 验证uv安装成功
    uv --version
    # 验证Python3环境
    python3 --version

配置直连 SSH

每次进入 alpine 都需要先连接 termux,再通过 alpine 启动脚本进入,太麻烦,这里直接简化一下直接一步到位

  1. 先通过上面的步骤进入 alpine 安装 openssh

    1
    2
    3
    4
    5
    apk add openssh
    # 创建 hostkeys
    ssh-keygen -t rsa -P "" -f /etc/ssh/ssh_host_rsa_key
    ssh-keygen -t ecdsa -P "" -f /etc/ssh/ssh_host_ecdsa_key
    ssh-keygen -t ed25519 -P "" -f /etc/ssh/ssh_host_ed25519_key
  2. 修改 /etc/ssh/sshd_config 配置 sshd 的端口为 9001 和公钥认证,参考上面的内容

  3. 配置 authorized_keys,参考上面的内容

  4. 配置 ~/.profile 自动开启 sshd

    1
    2
    3
    if [ ! -f "/run/sshd.pid" ] || ! pgrep -x "sshd" >/dev/null; then
    /usr/sbin/sshd
    fi
  5. 配置 termux 的 ~/.bashrc

    1
    2
    3
    4
    5
    /data/data/com.termux/files/usr/bin/sshd

    if ! pgrep "proot" >/dev/null; then
    /data/data/com.termux/files/usr/bin/bash /data/data/com.termux/files/home/./start-alpine.sh
    fi

    这样只要每次打开 termux 就会直接进入到 alpine,并且自动开启 sshd

  6. 连接 alpine

    由于 proot 并没有隔离,所以不需要配置跳板机,直接就可以连接到 alpine 的端口

    1
    ssh <手机ip> -i ~/.ssh/id_ed25519 -p 9001

结语

本次实践基于 Android 6.0 老旧设备,通过 Termux + AnLinux 完成了轻量级 Linux 发行版 Alpine 3.22 的部署,核心实现了闲置安卓设备的二次利用,以较低成本解决了轻量脚本任务的低功耗部署需求。Alpine 系统以轻量、低资源占用、适配 ARM 架构为优势,完美契合老旧手机的硬件特性,搭配 SSH 远程控制后,操作体验与小型低功耗服务器无异,可轻松承载定时爬虫、数据同步、自动化执行脚本等日常轻量运维任务,相比单独购置工控机、小主机,大幅降低了部署成本。

在实际使用中,还可以对硬件做优化,比如要长期稳定运行可以改成直供电的形式,避免电池损耗导致设备不稳定。

本次部署的流程均经过实际验证,适配 Android 6.0 这类低版本 legacy 设备,希望能为有同类闲置设备和轻量部署需求的开发者、技术爱好者提供参考,让老旧数码设备充分发挥剩余价值,挖掘更多轻量化的使用场景。

  • 标题: 在 Android 6.0 上部署 alpine3.22
  • 作者: CListery
  • 创建于 : 2026-01-20 16:57:43
  • 更新于 : 2026-01-23 16:48:26
  • 链接: http://clistery.github.io/2026/01/20/android/config-python3-on-android-marshmallow/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论