基于 Termux 在移动端配置 Ubuntu 系统并搭建工作环境

发布于:2025-04-14 ⋅ 阅读:(33) ⋅ 点赞:(0)

本套方案主要参考了以下内容,并根据自身体验进行了修改。

前言

自己的电脑太重,有时候外出不想带,平板生产力有有限。所以一直在折腾用平板替代电脑的事情。之前试过用 colab 运行 python,用远程连接使用电脑,但是都有缺点。最近开始尝试在平板上搭建 Linux 系统。

最近折腾了两天,终于捣鼓出来一个自己觉得还不错的方案,配置好环境后使用平板+蓝牙键鼠也能有不错的工作环境。编程使用 VS Code,办公使用 Libre Office,网页浏览使用 Firefox。爱折腾的话还可以安装其他 Linux 电脑软件。

系统选择挺重要的,刚开始我尝试在 Termux 中使用 Kali Nethunter Rootless,这个系统很美观(cool),基本功能很完善,命令行的历史操作推荐很好用。但是 Kali Nethunter Rootless 有诸多限制,导致能用的软件有限,除了 VS Code,我下载的软件基本上没法正常运行,而且且其占用空间较大,里面有很多用不上的渗透测试工具。最后我只能忍痛放弃了这个方案。

在平板上搭建的 Kali Nethunter Rootless

准备

演示设备:荣耀MagicPad13(13英寸平板)

系统:MagicOS 8(基于安卓14)

CPU:骁龙888

外设:蓝牙键盘+蓝牙鼠标

如果是想在移动设备上有较为舒适的体验,建议使用大屏设备,且配备蓝牙键盘和鼠标。

默认读者对 Linux 有一定的了解且可以正常访问 Github。

设备需要有至少 10GB 的空闲空间。

配置 Termux

本节可能会用到的命令:

termux-change-repo

apt update
apt upgrade

apt install x11-repo
apt install xfce4
apt install termux-x11-nightly

apt install neofetch
neofetch

export DISPLAY=:0
termux-x11 :0 &>/dev/null &
startxfce4

apt install mousepad
apt install firefox

下载

Termux 是一个功能强大的 Android 终端模拟器和 Linux 环境应用。它允许用户在 Android 设备上无需 root 权限即可运行 Linux 环境。Termux:X11 是 Termux 的一个扩展工具,专门用于在 Android 设备上运行 X11 图形界面应用程序。

首先下载安装 Termux,可以在 github termux-app releases 下载,也可以在 f-droid 中下载。

如果不配置 Kali 系统,个人觉得还是在 Github 上下载比较方便(需要有“稳定”的网络),一般手机和平板选择 arm64 架构的下载。

然后下载并安装 Termux:X11,同样可以在 Github 上下载:github termux-x11 releases

换源

下载安装后打开 Termux,输入 termux-change-repo 打开换源界面,操作是空格选择,Enter 确认,上下左右调整选择。选择 Mirror group,然后选择其中的 Mirrors in Chinese Mainland,确认即可。

更新和下载包

Xfce 是一个轻量级的桌面环境,旨在提供一个快速且低资源消耗的用户界面,同时保持视觉上的吸引力和用户友好性。它适用于各种 Linux 发行版和其他类 Unix 系统。

执行 apt update 和 apt upgrade 更新本地包数据库和已有的软件包。

然后执行 apt install x11-repo 安装 x11-repo。

再执行 apt install xfce4 安装 xfce4 桌面。这一步需要下载和安装的内容较多,可能需要比较久的等待。

再执行 apt install termux-x11-nightly 安装 x11 服务器

这时候 termux 就配置好了。感兴趣的话可以执行 apt install neofetch 然后再执行 neofetch,你就能看到当前的系统情况。

启动图形界面

上述操作完成后,执行 export DISPLAY=:0 设置临时环境变量。然后执行 termux-x11 :0 &>/dev/null & 在后台启动 termux-x11 服务器且不显示输出信息。

再然后执行 startxfce4,这时候就可以打开安装的 Termux:X11 了,一切正常的话,那么就能在该软件中看到图形界面了。

如果分辨率不对,那么长按 Termux:X11 软件图标,点击 PREFERENCES 选项,在 Output 中可以修改分辨率。可以根据你自己设备的分辨率自定义一个,建议不要使用设备原生分辨率,不然字太小了。比如我的设备分辨率为 2880x1840,我按比例自定义为 1800x1150。

防杀后台

打开 Termux:X11 后你可能会发现一会鼠标就动不了了,甚至直接断联,这是因为 Termux 后台被操作系统干掉了。需要允许该程序后台运行。这一步不同厂商的设备的设置可能有所区别,有问题的话可以网上查询。

对于我的设备,长按 Termux 图标,点击“应用信息”,再点击“耗电详情”,再点击“启动管理”,选择“允许后台运行”,这样就不会被杀后台了。

安装必要软件

现在我们有了 Termux 的图形界面,然后可以安装一些必要的软件。首先是一个简单的文本编辑器,在图形化界面打开一个命令行,然后执行 apt install mousepad,安装简易文本编辑器。再然后,执行 apt install firefox 安装火狐浏览器(你也可以根据需求安装其他浏览器)。

这样我们的 Termux 就初步配置好了,接下来我们要安装 Ubuntu 系统,从而可以在其中运行更多的软件。

配置 Ubuntu

本节可能会用到的命令:

apt install proot-distro
proot-distro list
proot-distro install ubuntu
proot-distro login ubuntu

chmod +x ./startx11
bash startx11

proot-distro login ubuntu
apt update
apt upgrade
apt install sudo
passwd
adduser [name]
su [name]

安装 proot-distro

proot-distro 是一个在 Termux 环境中用于方便地安装和管理各种 Linux 发行版的工具。它基于 proot 技术,允许用户无需 root 权限即可在 Android 设备上运行多个不同的 Linux 发行版。通过这种方式,用户可以在自己的移动设备上体验到几乎完整的 Linux 操作系统环境,包括其命令行工具、开发环境和软件包管理系统等。

Proot 能模拟一个更完善的Linux环境,可以兼容更多的软件运行。

在图形化界面的命令行中执行 apt install proot-distro 进行安装。安装好之后,执行 proot-distro list 即可查看可安装的 Linux 发行版。

这里我选择 Ubuntu 进行安装,执行 proot-distro install ubuntu 即可进行安装,在之前换源之后,这一步应该会很快。

安装好后,可以新建一个命令行,执行 proot-distro login ubuntu 登录系统。前面安装了 neofetch 的话可以执行一下,可以看到命令行中的系统已经变为了 Ubuntu。

快速启动

后续我们想要快速启动图形化界面,因此可以编写一个 bash 脚本来执行操作,在桌面打开 Home 文件夹,在该文件夹新建一个文件,命名为 startx11,然后写入以下内容:

#!/bin/bash

export DISPLAY=:0
termux-x11 :0 &>/dev/null &
sleep 2
startxfce4

除此之外,我们想要在 Termux 图形界面中快速访问 Ubuntu 系统中的文件夹,在桌面右键,选择 Create URL Link,然后名称填写 ubuntu(这个随便填),URL 填写 /data/data/com.termux/files/usr/var/lib/proot-distro/installed-rootfs/ubuntu,保存。这时桌面上就多了一个链接,点击后即可在文件管理中打开 Ubuntu 系统的文件夹。

检验脚本是否能正常运行

完成上面的全部操作后,我们回到 Termux,按 Ctrl+Z 结束当前任务,然后执行 exit(可能需要执行两次)退出Termux。

退出后重新进入,我们检验一下之前写的脚本是否能正常运行。首次启动执行 chmod +x ./startx11 赋予该脚本执行权限,然后执行 bash startx11,如果命令行弹出一些信息,打开 Termux:X11,如果有画面说明成功了。

如果打开 Termux:X11 画面是黑屏,且鼠标样式是 x 符号,那么应该是之前的还在运行。长按 Termux 图标,点击应用信息,然后强制停止该程序。重新进入,重复上述操作,此时应该就没问题了。

跑通该流程后,之后我们每次想启动图形界面只需要进入 Termux 然后执行 bash startx11 即可,然后打开 Termux:X11 就有图形界面了。

配置 Ubuntu 系统

完成上述操作后,我们终于要开始配置 Ubuntu 系统了。

还是在图形界面打开命令行,然后执行 proot-distro login ubuntu 登录 Ubuntu 系统。

执行 apt update 和 apt upgrade 更新本地包数据库和已有的软件包。

执行 apt install sudo 安装 sudo 命令。

执行 passwd 设置 root 密码。

执行 add user [name] 新建普通用户,注意:[name] 具体值需要自行决定,比如 chen。

之后可以通过 su [name] 在普通用户和 root 之间进行切换了。

在 Ubuntu 中安装软件

本节可能会用到的命令:

apt install ./[package-name]
apt install libreoffice
apt install libreoffice-l10n-zh-cn

proot-distro login ubuntu --shared-tmp
export DISPLAY=:0

su [name]
code --no-sandbox
libreoffice
localsend_app

因为 Termux 环境并不完整,很多软件没法在其中正常运行,因此我们把无法在 Termux 中运行的软件在 Ubuntu 系统中。

你可以根据自己需求选择安装软件,以下介绍 VS Code 和 libreoffice 的安装方式(刚好代表两种不同的安装方式)。

安装 libreoffice

这个非常简单,因为软件仓库中有对应的包,直接在登录了 Ubuntu 系统的命令行执行 apt install libreoffice 等待安装完成即可。

还可以执行 apt install libreoffice-l10n-zh-cn 安装中文语言包。

安装 VS Code

VS Code 在 apt 中没有对应的包,需要在官网下载。

打开浏览器,火狐浏览器默认搜索引擎是 Google,国内无法直接使用。所以先打开浏览器的设置,把搜索引擎改为 Bing。搜索 VS Code,找到官网,常用下载中没有我们需要的选项。点击 other platforms 进入,然后选择 .deb 包,平台选择 Arm64,下载。

下载好后打开文件管理,可以在 Downloads 文件夹找到该文件,然后再打开桌面的 ubuntu 链接打开 Ubuntu 系统的文件夹,找到 /home/[name],把下载的安装包拖进该文件夹。

然后用登录了 Ubuntu 系统的命令行,进入 /home/name 文件夹,用 root 身份执行 sudo apt install ./[package-name],其中 [package-name] 是安装包的名称。

安装 Local Send

Local Send 是一个可以通过相同网络跨设备传递文件的软件。下载链接:github localsend releases

注意选择 arm64 的 .deb 包下载。安装同 VS Code。

这些软件安装完成后还没法直接启动,后面讲怎么启动。

启动软件图形化界面

之前安装的软件执行启动是看不到图形界面的,下面介绍如何正常启动。

首先新开一个命令行界面,登录Ubuntu 系统,这时我们用的命令要新增一个参数:proot-distro login ubuntu --shared-tmp。

进入后执行 export DISPLAY=:0,注意此处需要和 termux 中导出的环境变量一致。

然后就可以执行安装的软件了。

注意 VS Code 不建议在 root 情况下启动,所以我们先执行 su [name] 切换到我们之前的用户,然后执行 code --no-sandbox 即可打开 VS Code 的图形化界面。

而 libreoffice 直接执行 libreoffice 即可启动。

Local Send 通过 localsend_app 指令启动。如果你无法启动 Local Send,那么打开 Ubuntu 命令行执行 localsend_app,报错应该是缺少某个库,按报错安装对应的库应该就能解决。

创建快捷方式

向上面那样启动还是比较麻烦,我们在 Termux 中创建快捷方式,从而可以快速启动这些软件。

在 Termux 桌面右键,选择 Create Launcher,名称填写 libreoffice,在 Command 字段填写:

proot-distro login --user [name] ubuntu --shared-tmp -- sh -c 'export DISPLAY=:0 && libreoffice'

保存,libreoffice 的快捷启动就创建好了。注意其中的 [name] 填你创建的用户名。

在 Termux 桌面右键,选择 Create Launcher,名称填写 Local Send,在 Command 字段填写:

proot-distro login --user [name] ubuntu --shared-tmp -- sh -c 'export DISPLAY=:0 && localsend_app'

保存,Local Send 的快捷启动就创建好了。注意其中的 [name] 填你创建的用户名。

在 Termux 桌面右键,选择 Create Launcher,名称填写 VS Code,在 Command 字段填写:

proot-distro login --user [name] ubuntu --shared-tmp -- sh -c 'export DISPLAY=:0 && code --no-sandbox && sleep infinity'

保存,VS Code 的快捷启动就创建好了。注意其中的 [name] 填你创建的用户名。

点击对应的快捷方式就能启动对应的程序了。

解释一下 VS Code 的启动命令:

  • proot-distro login:登录到某个已安装的 Linux 发行版环境
  • --user [name]:指定以哪个用户身份登录到目标发行版,这里不能用默认的 root
  • ubuntu:登录 Ubuntu 环境
  • --shared-tmp:该选项用于在主机(Termux)和 PRoot 环境之间共享 /tmp 目录,,图形化应用程序需要访问 /tmp 来存储临时文件(例如 X11 的 socket 文件),使用 --shared-tmp 可以确保这些文件可以在主机和 PRoot 环境之间共享
  • --:这个双破折号是一个分隔符,表示后面的内容不应被 proot-distro 解析为自身的选项或参数,而是直接传递给由 proot-distro login 启动的 shell 执行
  • sh -c '...':登录到 Ubuntu 环境后,执行一个自定义的 shell 命令
  • export DISPLAY=:0:设置环境变量 DISPLAY 的值为 :0,DISPLAY 是 X11 协议中用于指定图形界面显示目标的环境变量,:0 表示当前设备的第一个显示输出
  • code --no-sandbox:启动 VS Code,且禁用沙盒模式,些受限环境中(如 PRoot 或非标准 Linux 环境),沙盒模式可能会导致 VS Code 无法正常启动,因此需要禁用
  • sleep infinity:让进程无限期挂起,这一步的目的是防止整个命令链结束,从而保持 VS Code 的运行状态

安装中文字体

打开带中文的软件页面你会发现中文全都无法正常显示,因此需要下载字体。

可以在网上下载字体,也可以在电脑中选些字体发送到移动设备。这里我使用刚才安装的 Local Sned 来传递文件到系统。

然后将这些中文字体放到 Ubuntu 系统的 /usr/share/fonts 文件夹,这样 VS Code 和 libreoffice 就可以正常显示中文了(不知道为什么, Local Send 还是不能显示中文)。

(可选)进一步操作

经过上面的操作,你已经得到了一个具备功能的 Linux 环境。接下来你可以安装更多软件(比如 Linux QQ、星火商店等)、创建更方便的快捷方式和脚本以及美化界面。

注:星火商店里面的软件无法正常安装,但是可以为我们提供软件安装的参考。

为快捷方式添加图标

首先找到每个软件的图标,这个可以在每个软件的官网找到。通过 F12 审查页面元素找到对应的图标并下载。

选择对应的快捷方式,右键选择 Edit Launcher,点击 Icon,选择 Image Files,选择对应的软件图标,保存即可。

现在终于是完成了系统的设置,之后你还可以根据自己需求进一步进行改造和个性化。