Termux 是一个 Android 下的终端模拟器,可以在手机上模拟 Linux 环境。它是一个手机 App,可以从应用商店直接下载安装,打开就能使用,它提供一个命令行界面,让用户与系统交互。它支持 apt 软件包管理,可以十分方便安装软件包,而且完美支持 Python 、 PHP 、 Ruby 、 Go 、 Nodejs 、 MySQL 等工具。随着智能设备的普及和性能的不断提升,如今手机、平板等设备的硬件标准已经直逼入门级桌面计算机,使用 Termux 完全可以把手机变成一个强大的小型服务器。你甚至可以使用 Termux 通过 Nmap、Sqlmap、BBScan、subDomainsBrute、Hydra、RouterSploit 等工具实现端口扫描、注入检测、子域名爆破、多协议弱口令爆破、路由器漏洞检测框架多种功能,把手机打造成一个随身携带的渗透神器,成为现实版的艾登・皮尔斯。
官方推荐从 F-Droid 和 Google Play 这两个平台下载,安装完打开就是下面这个样子。
俗话说” 会跑之前,要先学会走 “,先了解基本操作,以后搞一些骚操作就轻而易举了。
长按屏幕会出现可选择的复制光标,同时会显示 (复制)、(粘贴)、(更多)这几个选项。
点击 进入到下一级菜单。
从左侧屏幕边缘向右滑动可以拖出导航栏,在这里可以新建、切换、重命名会话 (session) 和调出输入法。
在使用终端时,需要使用到 、、 等键,但手机上并没有这些键。
Termux 中可以使用按钮来模拟 键。例如, + 相当于在键盘上按下 +。
以下是一些在终端中常用的快捷键,同样适用于 Termux 中。
- + -> 光标移动到开始位置
- + -> 光标移动到最末尾
- + -> 剪切此处至末尾的所有内容
- + -> 剪切此处至开始的所有内容
- + -> 剪切此处到左边的单词
- + -> 粘贴由、、剪切的单词
- + -> 相当于命令,清屏
- + -> 终止进程/命令
- + -> 关闭终端
- + -> 挂起(发送 SIGTSTP 到)当前进程
按钮可以作为产生特定输入的特殊键,可以粗略的理解为笔记本电脑上的 键。
- + -> 键
- + -> 键
- + -> 键(相当于,以此类推)
- + -> 键
- + -> +,使用readline时返回一个单词
- + -> +,使用readline时转发一个单词
- + -> +
- + -> 向上箭头键
- + -> 向左箭头键
- + -> 向下箭头键
- + -> 向右箭头键
- + -> (管道字符)
- + -> (波浪号字符)
- + -> (下划线字符)
- + -> 键(上一页)
- + -> 键(下一页)
- + -> +(SIGQUIT)
- + -> 显示音量控制
- + -> 显示额外的按键视图
- + -> 同上
前面提到 Termux 可以使用音量键来实现快捷键操作,个人感觉使用音量键不是很不方便。Termux 还提供屏幕扩展功能按键。可以使用 + 或者 + 可以显示和隐藏。
此外,功能按键向左滑动可以调出文本输入框,可以更方便的粘贴和对待输入的指令进行更精细的修改。
Termux 除了支持 命令外,还在此基础上封装了 命令, 命令向下兼容 命令。官方建议使用 命令,因为它会在安装或升级包时会自动更新 apt 列表,也就是说执行 相当于执行了 ,简化了操作流程。
与大多数 Linux 发行版不同,Termux 不遵循文件系统层次结构标准,你无法在标准路径找到 、、、 等目录。为了方便, 提供了一个特殊的环境变量:,它相当于 目录。
此外用户主目录也在非常规位置。
由于没有 root 权限,想对根目录进行操作是不可能的。
对此可以安装 ,并使用 命令可以模拟 root 环境与标准的 Linux 目录结构。
这对某些必须要用到标准路径的一些程序会非常有用。
前面提到的 毕竟是模拟的方式,会有一定的局限性。如果手机已经 root ,在 Termux 中使用 虽然可以切换为 root 用户,但是会有一些 Termux 的命令无法正常使用,毕竟这不是一个标准的 Linux 环境。解决方案是安装 来获取 root 权限, 是 Termux 中的 替代方案。
安装 :
使用 root 权限执行命令:
切换到 root 用户:
在 root 用户下,输入 命令或者按 + 可以回到普通用户。
Termux 默认只能访问自身内部的数据,如果要访问手机中其它的数据,输入下面的命令后,手机弹出对请求权限的窗口,允许即可。
这个操作将创建 目录,此目录中的子目录将通过符号链接到手机存储中的一些常用目录。
此外还可以通过 来访问外部存储的根目录。
作为 Linux 终端或者服务器,SSH 都是必须的。不管你是 SSH 连接到 Termux ,还是使用 Termux 去连其它主机,都需要先安装 。
基本操作,ssh 命令:
手机操作起来毕竟束缚太多,在电脑上通过 SSH 连接再进行操作是一件非常优雅的事情。
-
设置密码:
-
查看用户名:
由于 Termux 是单用户环境,所以这个步骤不是必须的。使用任何用户名都可以进行登录。
-
查看 IP 地址:
-
启动 SSH 服务端:
SSH 服务端程序默认是不启动的,且每次应用关闭再打开也需要再次启动。后面会讲如何自启 SSH 服务端。
集齐 SSH 三要素,现在可以在电脑终端中输入 命令或者使用其它 SSH 客户端进行连接了。需要注意的是 Termux 的 SSH 端口是 。
执行 命令后,输入密码就可以连上了,然后就可以在电脑上方便的进行各种骚操作了。
如果需要将 Termux 的 SSH 端口暴露在公网,为了安全建议配置密钥登录。
操作和一般的 Linux 发行版没有区别,属于基本操作。如果你不知道如何配置可以去看《使用 ssh-keygen 和 ssh-copy-id 配置 SSH 密钥实现免密登陆》和《使用 Xshell 给 Linux VPS 配置 SSH 密钥实现免密登录》这两篇教程补补课,这里不再赘述。
友情提示:文件的路径是
推荐使用 SSH 密钥一键配置脚本,它可以从 GitHub 或者链接中获取公钥并自动配置。只要你在 GitHub 上设置过公钥,配置后就直接可以使用连接 GitHub 仓库的 SSH 密钥进行登录。
如果不想每次 ssh 连接 Termux 前去输入 命令可以设置自启。sshd 自启分两种情况,一种是打开 Termux 应用时自启,还有一种是手机开机后自启。
打开应用时自启 SSH 服务端
把 命令添加到 Shell 配置文件中即可,比如我使用的是 zsh ,那么就添加到 中。如果是 bash ,那么就添加到 。
手机开机后自启 SSH 服务端
首先安装 Termux:Boot 插件,安装后给予该插件开机启动的权限,这样 Termux 就可以在开机后自启了。
创建 目录(这个目录中放置的脚本会在开机启动 Termux 后执行)。
在该目录中新建一个脚本,命名为 ,把 命令添加到这个文件中即可。
命令可防止手机休眠导致 Termux 应用的进程被冻结。
设置完成后,手机开机会自动启动 Termux ,并开启 SSH 服务端。
Termux 毕竟不是一个完整的 Linux 环境,如果有更深层次的 Linux 环境要求可以在 Termux 中安装和运行 Linux 发行版来模拟完整的 Linux 环境,甚至还可以安装桌面环境。
AnLinux 是一个帮助用户在 Termux 中安装 Linux 发行版的 App。它是一个指引向导,其本质是按照你选择的发行版给出一行安装指令让你去执行。按照 App 中的指引进行安装非常简单,所以这里就不做赘述了。
几分钟能读完的文章绝对不是几分钟就能写出来的,写这篇文章大概花了一周左右的时间。其实整体框架写出来很快,只是完善细节花了不少时间,这期间详细阅读了大量的资料,同时也进行了很多尝试,想尽量把一些基础的东西都写全。这还只是个开始,关于 Termux 的玩法我会放到后面的文章中。
Termux Wiki
Mytermuxdoc