安卓手机安装Linux系统:Termux与AnLinux打造移动开发环境

📅 2026/8/3 7:03:20
安卓手机安装Linux系统:Termux与AnLinux打造移动开发环境
1. 为什么要在安卓手机上折腾Linux如果你是一个开发者、运维工程师或者只是一个对技术充满好奇的极客那么“随时随地有一个可用的Linux环境”这个需求可能不止一次地在你脑子里闪过。在咖啡馆等朋友时想调试一段代码在通勤路上想连上服务器看看日志或者只是想在外出时有个趁手的命令行工具——这时候掏出手机打开一个终端那种感觉远比打开一台笨重的笔记本电脑要酷得多也方便得多。安卓手机凭借其开放的生态和强大的硬件性能为我们提供了一个绝佳的移动计算平台。而Termux就是这个梦想的“钥匙”。它不是一个简单的终端模拟器而是一个无需root权限的完整Android终端应用和Linux环境模拟器。它通过一个精巧的运行时库在Android的Linux内核之上模拟出了一个相对独立的、基于Debian/Ubuntu的包管理生态APT。这意味着你可以在手机上像在Ubuntu服务器上一样使用apt install来安装Python、Node.js、GCC、甚至Nginx、MySQL等成百上千的软件包。那么在Termux里“安装Linux系统”又是什么意思呢这其实是更进一步的操作。Termux本身提供了一个基础的Linux命令行环境但如果你想运行一个拥有完整图形界面、或者需要特定发行版如Kali Linux、Arch Linux工具链的环境就需要借助像AnLinux这样的辅助工具在Termux内部通过proot技术来模拟运行一个完整的发行版文件系统。proot可以理解为一种“用户空间”的chroot它允许你在没有root权限的情况下将某个目录“伪装”成系统的根目录从而运行另一个Linux发行版。所以我们今天要聊的就是如何从零开始在安卓手机上利用Termux和AnLinux搭建一个功能强大、可玩性极高的移动Linux工作站。这个过程不仅实用更能让你深入理解Linux容器技术的边缘应用。2. 前期准备Termux的安装、配置与避坑指南万事开头难尤其是面对一个与常规桌面环境迥异的移动端终端。第一步的配置如果没做好后面会步步维艰。很多人在这里放弃多半是卡在了网络和源的问题上。2.1 获取与安装Termux由于一些众所周知的原因Google Play商店里的Termux版本可能更新不及时或存在兼容性问题。最可靠的方式是从F-Droid这个开源应用商店获取。安装F-Droid在你的安卓手机浏览器中访问f-droid.org官网下载并安装F-Droid客户端。这是一个纯粹的开源软件仓库安全可信。搜索并安装Termux打开F-Droid搜索“Termux”选择由Fredrik Fornwall维护的官方版本进行安装。建议同时安装其扩展应用Termux:Styling用于自定义字体和配色和Termux:API用于让Termux脚本访问手机的通知、传感器等API它们能极大提升使用体验。关于权限首次打开Termux它会请求存储权限。务必授权。这是后续下载系统镜像、与手机内部存储交换文件的基础。你可以在系统设置中管理Termux的权限。2.2 至关重要的第一步换源与基础配置刚安装的Termux其默认的软件源repository服务器可能在国外访问速度极慢甚至无法连接导致pkg update更新软件包列表失败。这是新手遇到的第一个也是最大的拦路虎。打开Termux我们按顺序执行以下命令# 1. 首先更新包管理工具本身并升级现有软件包。 # 这里使用pkg它是Termux对APT的封装更友好。 pkg update pkg upgrade如果这一步卡住或报错Unable to fetch mirror不要慌直接进行下一步换源。# 2. 备份原始的源列表文件 cp $PREFIX/etc/apt/sources.list $PREFIX/etc/apt/sources.list.bak # 3. 使用sed命令或文本编辑器替换为国内镜像源 # 这里以清华大学的镜像源为例速度非常快。 sed -i s^\(deb.*stable main\)$#\1\ndeb https://mirrors.tuna.tsinghua.edu.cn/termux/apt/termux-main stable main $PREFIX/etc/apt/sources.list # 4. 更新软件包列表现在应该飞快 pkg update注意镜像源地址可能会变化。如果清华源出现问题可以尝试替换为北京外国语大学镜像源 (mirrors.bfsu.edu.cn/termux) 或南京大学镜像源 (mirrors.nju.edu.cn/termux)。替换命令中的URL部分即可。2.3 安装必备工具包一个趁手的开发环境离不开基础工具。在安装Linux系统之前我们先武装一下基础的Termux环境。# 安装常用工具 pkg install -y wget curl git vim nano tree htop neofetch proot-distro # wget/curl: 网络下载工具 # git: 版本控制必备 # vim/nano: 文本编辑器按喜好选一个 # tree: 以树状图列出目录结构 # htop: 交互式进程查看器比top更直观 # neofetch: 显示系统信息很有极客范儿 # proot-distro: Termux官方推荐的Linux发行版管理工具我们稍后会用到执行neofetch你应该能看到一个漂亮的Termux和系统信息展示。这标志着你的基础环境已经就绪。3. 核心操作使用AnLinux脚本安装目标Linux发行版Termux自带的proot-distro可以安装一些发行版但社区维护的AnLinux项目提供了更丰富、更易用的脚本集合它本质上是一套自动化脚本帮你从各大镜像站下载经过适配的Linux根文件系统并用最优的参数启动它。3.1 获取AnLinux安装脚本AnLinux本身是一个Android应用但它更核心的价值在于其提供的安装脚本。我们不需要安装App直接使用脚本即可。在Termux中执行# 使用curl下载AnLinux提供的统一安装脚本 curl -LO https://raw.githubusercontent.com/EXALAB/AnLinux-Resources/master/Scripts/Installer/Ubuntu/ubuntu.sh # 下载后授予脚本执行权限 chmod x ubuntu.sh这个ubuntu.sh脚本就是安装Ubuntu的入口。AnLinux为许多发行版都提供了类似的脚本比如kali.sh,debian.sh,arch.sh,fedora.sh等。你可以通过访问其GitHub仓库查看所有可用脚本。3.2 运行脚本并安装Ubuntu运行脚本非常简单./ubuntu.sh脚本开始工作后你会看到它自动执行以下操作检查并安装必要的依赖如proot、wget。从国内镜像源如清华源、阿里云源下载指定版本Ubuntu默认通常是Ubuntu 20.04或22.04的最小化根文件系统rootfs压缩包。这个过程的速度取决于你的网络使用国内镜像通常很快。将压缩包解压到Termux的$PREFIX/var/lib/proot-distro/installed-rootfs/目录下的一个子文件夹如ubuntu中。创建启动命令。安装完成后脚本会输出一行重要的提示通常是./start-ubuntu.sh这个start-ubuntu.sh就是进入这个Ubuntu环境的入口脚本。3.3 启动与进入Ubuntu环境根据脚本提示运行启动命令./start-ubuntu.sh几秒钟后你的命令行提示符就会从Termux的$变成Ubuntu的rootlocalhost:~#。注意这里的root是proot模拟出的root并非你手机的root权限非常安全。恭喜你现在已经身处一个“五脏俱全”的Ubuntu系统内部了。你可以运行cat /etc/os-release来确认发行版信息或者用apt update来更新这个容器内的软件源。实操心得第一次进入proot环境可能会觉得操作反应有点“钝”这是正常的因为所有系统调用都需要经过一层转换。此外这个环境与宿主Termux是部分隔离的。你的手机存储通常会被挂载在/sdcard目录下方便你在两个环境间交换文件。4. 系统配置与图形化界面GUI的安装一个只有命令行的Ubuntu对于移动设备来说潜力只发挥了一半。通过安装桌面环境和VNC服务器我们可以实现远程图形化访问让手机变身成一台微型Linux电脑。4.1 配置Ubuntu软件源并安装基础软件在Ubuntu环境内我们首先也要换源以保证后续安装软件的速度。# 备份原有源列表 cp /etc/apt/sources.list /etc/apt/sources.list.bak # 使用sed替换为阿里云镜像源以Ubuntu 22.04 Jammy为例 sed -i s/archive.ubuntu.com/mirrors.aliyun.com/g /etc/apt/sources.list sed -i s/security.ubuntu.com/mirrors.aliyun.com/g /etc/apt/sources.list # 更新软件列表 apt update apt upgrade -y # 安装一些基础工具和中文支持 apt install -y sudo vim wget curl net-tools locales language-pack-zh-hans # 配置本地化语言环境可选但推荐 locale-gen zh_CN.UTF-84.2 安装轻量级桌面环境与VNC服务器完整的GNOME或KDE对手机来说太重了。我们选择极其轻量的XFCE4桌面环境搭配TigerVNC服务器。# 安装XFCE4桌面核心组件和TigerVNC服务器 apt install -y xfce4 xfce4-goodies tigervnc-standalone-server tigervnc-common # 安装必要的字体和输入法支持可选 apt install -y fonts-noto-cjk dbus-x114.3 配置VNC服务器首先我们需要为VNC连接设置一个密码。# 设置VNC密码会提示输入并确认 vncpasswd它会要求你设置一个“view-only”密码可以按n跳过。接下来创建并编辑VNC的启动配置文件# 创建配置文件目录 mkdir -p ~/.vnc # 创建并编辑配置文件 vim ~/.vnc/xstartup将以下内容粘贴到xstartup文件中#!/bin/bash unset SESSION_MANAGER unset DBUS_SESSION_BUS_ADDRESS export PULSE_SERVER127.0.0.1 export XKL_XMODMAP_DISABLE1 exec startxfce4然后赋予执行权限chmod x ~/.vnc/xstartup4.4 启动VNC服务器并连接在Ubuntu环境中启动一个VNC服务器实例# 在5901端口启动VNC服务器分辨率设置为1280x720深度24位色 vncserver :1 -geometry 1280x720 -depth 24注意:1表示显示器号1对应的端口号是5901。如果启动:2则端口是5902以此类推。现在回到你的手机我们需要一个VNC客户端来连接。Google Play上有很多选择比如VNC Viewer(RealVNC)、bVNC等功能都很完善。在VNC客户端中新建一个连接地址localhost:5901因为服务器和客户端在同一设备上端口5901密码你之前用vncpasswd设置的密码连接成功后你就能在手机上看到熟悉的XFCE桌面了你可以用它来运行图形化的代码编辑器如VS Code、浏览器如Firefox ESR甚至进行一些轻量的编程工作。5. 进阶玩法与深度优化基础系统跑起来了但要让这个移动Linux工作站真正好用还需要一些“调教”。5.1 管理多个Linux发行版你并不局限于只安装一个Ubuntu。proot-distro或 AnLinux脚本可以让你安装多个发行版。例如想再安装一个Kali Linux用于安全学习# 在Termux基础环境中不是Ubuntu里 # 使用proot-distro查看可安装列表 proot-distro list # 安装Kali Linux proot-distro install kali # 登录到Kali Linux proot-distro login kali这样你可以在Termux中通过不同的命令快速切换不同的Linux环境。5.2 持久化与备份proot环境的所有文件都存储在Termux的$PREFIX/var/lib/proot-distro/installed-rootfs/目录下。定期备份这个目录你就备份了整个Linux系统。你可以使用tar命令打包然后将其复制到手机存储或网盘。# 在Termux中 cd $PREFIX/var/lib/proot-distro/ tar -czf ubuntu_backup.tar.gz installed-rootfs/ubuntu/ # 将备份文件移动到手机内部存储 mv ubuntu_backup.tar.gz /storage/emulated/0/Download/5.3 性能优化与资源限制手机资源有限需要合理分配。htop命令是你的好帮手。在Linux环境内运行htop可以实时监控CPU和内存占用。避免运行重型服务不要在容器内运行像MySQL、Docker in Docker这类极其消耗资源的服务手机电池和散热可能吃不消。使用Swap如果手机内存较小如4GB可以为Termux配置ZRAM Swap来缓解内存压力。这需要在Termux环境中操作涉及内核模块对新手有一定风险但网上有成熟脚本。关闭不用的VNC会话vncserver -kill :1可以关闭:1对应的VNC服务器释放资源。5.4 与宿主系统Android的交互这是Termux最强大的特性之一。通过Termux:API你可以在Linux脚本中调用手机功能。发送通知termux-notification --title 任务完成 --content 备份已结束获取传感器数据需要编写更复杂的脚本。访问通讯录、短信出于安全考虑这些API需要用户明确授权。这种深度集成让你可以编写自动化脚本例如当服务器监控脚本发现异常时自动通过Termux向你的手机发送一条高优先级的通知。6. 常见问题排查与解决方案这条路不可能一帆风顺以下是我踩过的一些坑和解决方案。6.1 网络连接问题问题在proot的Linux环境内apt update失败或ping不通外网。排查首先在宿主Termux中测试网络curl -I https://baidu.com。如果Termux正常进入Linux环境检查/etc/resolv.conf文件看域名服务器DNS设置是否正确。通常应该是nameserver 8.8.8.8或nameserver 114.114.114.114。检查Linux环境内的防火墙设置通常proot环境没有活动的防火墙。解决如果DNS有问题可以手动修改/etc/resolv.conf。更根本的解决方法是在启动脚本如start-ubuntu.sh中加入DNS配置。编辑该脚本在proot命令的参数中加入-b /etc/resolv.conf:/etc/resolv.conf将宿主的DNS文件绑定到容器内。6.2 存储空间不足问题安装软件或下载文件时提示No space left on device。排查使用df -h命令分别在Termux和Linux环境中查看磁盘使用情况。解决清理APT缓存apt clean(在Linux内) 和pkg clean(在Termux内)。删除不必要的文件或发行版。将大文件如下载的ISO、备份文件转移到手机内部存储挂载在/sdcard。最彻底的方法是将Termux的整个$PREFIX目录移动到手机更大的存储分区如果支持但这需要借助tar备份和恢复操作复杂。6.3 VNC连接失败或黑屏问题能连接到VNC服务器但屏幕是黑的或者一闪而过就断开。排查确认VNC服务器正在运行在Linux内执行vncserver -list。检查~/.vnc/xstartup文件权限是否为可执行chmod x。查看VNC日志cat ~/.vnc/localhost:1.log看是否有错误信息。解决最常见原因是xstartup脚本错误。确保脚本内容正确特别是exec startxfce4这一行。尝试更换VNC客户端。尝试使用不同的颜色深度启动vncserver :1 -geometry 1280x720 -depth 16。6.4 软件包安装冲突或依赖问题问题在Linux环境内apt install某个软件时出现依赖关系错误。解决首先更新系统apt update apt upgrade。尝试使用apt install -f来修复损坏的依赖关系。如果问题依旧可能是软件源中该软件的版本有问题。可以尝试更换其他版本的Ubuntu如从20.04换到22.04或者寻找第三方PPA源。在移动端环境下最稳妥的方案是尽量使用发行版官方源中的稳定版本软件避免追逐最新版。经过以上步骤你的安卓手机已经不再仅仅是一部通讯或娱乐设备它变成了一个口袋里的Linux服务器、一个随身的编程实验平台、一个移动的渗透测试环境如果你安装了Kali。这种将强大算力随身携带并完全掌控的感觉是任何云服务器都无法替代的。它可能不会成为你的主力生产工具但在灵感迸发的瞬间在需要紧急处理的时刻这个装在口袋里的“世界”总能给你带来意想不到的便利和惊喜。