一篇文章上手 Termux
前言
termux,一个让你在手机上运行类 linux 终端的工具。本以为他会和终端模拟器那样,需要root。其实不然
termux 特地为此封装了无数需要在 linux 中才可运行的包并毫无意外的在安卓里稳定运行。
于是在包管理器它支持了 apt 和 dpkg
在开发环境它支持了 python 等语言
在黑客上面它支持了 nmap 和 metasploit
在 root 方面它支持了 tsu 和 proot
在服务器方面它支持 apache 等服务器
在运行其他 linux 发行版上面有 proot-distro
我愿称之为安卓上目前最他🐴强的开源高级免root终端
最近一段时间在 GitHub 上,突然发现停更三年的 termux 更新了0.118.1!于是下载回来了
个人也是用了几年的termux了,也是直接开写给大家分享一波
注意
本文章事例的termux为0.118.1,较老的版本一般情况下安装步骤相同,但无法保证稳定性和其他bug
转移
本文章将不再继续维护,现在已转至 Toads-Docs/termux 继续维护整理更新!
安装 termux
文档📃
termux 官网
Github 仓库
下载链接🔗
F-Droid
Google Play(需要外网)
初始化
初始化时,termux需要从http://termux.net/bootstrap/获取文件。
可惜这服务器放在国外,于是:
上述问题只会在部分网络出现。
解决办法也不是没有,就是翻墙,大概率都能成功的。
基本操作
基本操作是得学的,大大增加效率
缩放文本
双指放大/缩小用于调整文本大小
菜单项
长按终端将弹出菜单项
目前菜单项如下
1 | 菜单项 |
会话
从屏幕最左边往右滑动可打开会话管理,你可以在此新建会话NEW SESSION
、切换会话、重命名会话和启动软键盘KEYBOARD
你也可以在你的通知栏查看termux目前运行的会话数量(前提是为termux授予通知权限)
常用按键
在linux及大多数pc上,常用的ESC、Tab、CTRL等,这些常用按键在安卓下是无法使用的。但termux给了我们一个可以使用它们的机会,使得日后使用更加方便。
打开或隐藏常用按键有如下方法:
方法1
从屏幕最左边往右滑动打开会话管理,长按左下方的KEYBOARD
按钮
方法2
使用快捷键:音量+
+Q
或者音量+
+K
快捷键
在终端上,CTRL
是终端用户常用的按键
在termux中,开发团队将CTRL
键设置在了音量减小按钮
以此模拟CTRL
以下是快捷键表:
快捷键 | 对应功能 |
---|---|
Ctrl+A |
将光标移到行首 |
Ctrl+C |
终止进程 |
Ctrl+D |
注销当前会话 |
Ctrl+E |
将光标移到行尾 |
Ctrl+K |
将光标删除到行尾 |
Ctrl+U |
将光标删除到行首 |
Ctrl+L |
清除终端文本 |
Ctrl+Z |
挂起当前进程 |
Ctrl+ALT+C |
创建新会话 |
创建新会话的快捷键需要黑客键盘应用,本应用的链接请移到 其他 - 黑客键盘 一节
由于上述已经标明了音量-
模拟CTRL
,如果需要清楚当前文本(CTRL+L
)则按下音量-
+L
即可实现清屏。其他也是如此
当然,音量+
也可以产生特定输入的特殊键
1 | 音量加 + E -> Esc键 |
指令
包管理器
termux不仅支持apt
,同时也在此基础上封装了pkg
,其指令向下兼容apt
。如下为pkg
指令的使用方法:
1 | pkg search <query> # 搜索包 |
建议使用 pkg
命令安装包
因为每次使用 pkg
安装包前,会自动执行apt update
命令更新源,会比较方便
deb包管理器
除开上述的pkg
外,如果某个牢底给你发来了一个deb软件包文件或者有deb软件包文件,可以通过dpkg
安装:
1 | dpkg -i <deb文件名> # 安装deb包 |
路径
下面都是 termux 提供的特殊变量,用于脚本制作和开发等
1 | echo $HOME |
查看端口
Android 10 以下版本
Android 10 以下版本可通过netstat
查看端口
1 | netstat -an # 查看本机的所有端口 |
Android 10 以上版本
由于未知原因,Android 10 以上版本无法使用netstat -an
,唯一的解决办法则是nmap
1 | pkg install nmap # 安装端口扫描工具 |
配置termux
要是你配置配不好那你termux还没用就成答辩了是不是
更新源
termux官方源在国外,运行pkg update
时,由于更新源速度慢而导致红温,那不是得爆装备
所以接下来我们得换源:
termux-change-repo(360度无死角推荐)
在终端输入termux-change-repo
进入一个神奇的TUI界面:
1 | ┌────────termux-change-repo──────────────┐ |
差不多长这吊样
将光标移到Main Repository
然后按下空格再回车计入到下一个界面
1 | | mirrors.tuna.tsing | Mirror by Tsinghua University TUNA Assoc | |
找到上面所示的选项,将光标移动到上面,点击空格选择,然后回车换源
就这样,你的pkg
源就换好了
换源完成后,请第一时间更新包
1 | pkg update |
自动替换
输入下方命令自动替换为 TUNA 镜像源
1 | sed -i 's@^\(deb.*stable main\)$@#\1\ndeb https://mirrors.tuna.tsinghua.edu.cn/termux/termux-packages-24 stable main@' $PREFIX/etc/apt/sources.list |
孩子,在执行pkg update
的时候,中间会卡住不动,那他🐴叫你是选择是否覆盖文件,记得回车!
换源完了之后就包爽的了
安装基础工具
termux自带的命令工具都很少,毕竟体积也是不大的,得自己安装
1 | pkg update |
termux-setup-storage
我们的 termux 现在没有可以访问外部文件的权限,我们得搞的哇
1 | termux-setup-storage |
执行完该指令后,Android 6 以上的手机会弹出访问权限的请求,允许即可
你要是点拒绝了,可以重新输入命令再来一次
oh-my-zsh
给你的终端美化一波,包靓的孩子
脚本项目地址:https://github.com/Cabbagec/termux-ohmyzsh/
脚本使用了zsh
替换原bash
作为默认shell,支持替换字体、主题和添加插件
执行下方命令前,看你的那个curl
命令装好没哇
1 | sh -c "$(curl -fsSL https://github.com/Cabbagec/termux-ohmyzsh/raw/master/install.sh)" |
某些low炮用不了,爆出来个port 443: Connection refused
网络超时,可以用国光迁移到国内的地址:
1 | sh -c "$(curl -fsSL https://html.sqlsec.com/termux-install.sh)" |
执行脚本中间会弹出配置设置:
1 | Enter a number, leave blank to not to change: 17 |
这两个分别是终端色彩配置
和字体样式配置
,在你输入完成这两个鬼东西之后,termux将关闭
再次进入termux将生效
修改配置方案
你觉得不行?可以重新配置方案
设置色彩方案
运行chcolor
设置色彩方案
设置字体
运行chfont
设置字体
zsh 主题
使用 vim 编辑
1 | vim ~/.zshrc |
这是zsh的配置,你会看见第一行是
1 | ZSH_THEME="agnoster" |
安装好zsh之后,默认使用agnoster
主题
个人觉得这主题在oppo a5上面运行有点慢,当然这主题也是特别好的了
当然你也可以换
输入命令
1 | cd ~/.oh-my-zsh/themes |
这里面都是oh-my-zsh自带的所有主题,你都可以试一试,直到找到你喜欢的
toad目前用的是gnzh
1 | # ~/.zshrc#1 |
如果你是🐴牛逼,可以试试random
1 | ZSH_THEME="random" |
插件
oh-my-zsh的star为何如此之高,不仅仅是主题,还有插件
zsh-users/zsh-autosuggestions
这个插件将根据你的使用习惯去补全代码提高效率
1 | # 以下为安装命令 |
然后输入:wq
退出即可
接下来可以尝试补全命令了,输入你之前输入过的命令,会出现补全提示
这时只需要按下右方向键
或快捷键音量加+D
即可补全
设置软链接
手机是都是用QQ
传文件
如果你已经授予了termux存储权限,那么会在 HOME 目录生成 storage 文件并生成诺干个软链接,都指向你手机存储卡的链接
为了方便传输,可以使用软链接指向到 QQ
1 | # cd 到 Home 目录 |
这样将可以从 Home 目录
直接访问 QQ
文件夹,提升文件操作效率
termux.properties
termux的0.66及之后版本,termux可以通过~/.termux/termux.properties
文件来配置termux的更多设置
自定义常用按键
1 | vim ~/.termux/termux.properties |
在文件最底部添加
1 | extra-keys = [ \ |
这两行,就可以自定义常用按键了
以下为常用按键对照表
CTRL | 特殊按键 |
---|---|
ALT | 特殊按键 |
FN | 特殊按键 |
ESC | 退出 |
TAB | 表格键 |
HOME | 原位 |
END | 结尾 |
PGUP | 上翻页 |
PGDN | 下翻页 |
INS | 插入 |
DEL | 删除 |
BKSP | 退格 |
UP | 上 |
DOWN | 下 |
LEFT | 左 |
RIGHT | 右 |
BACKSLASH | 反斜杠 |
QUOTE | 双引号 |
APOSTROPHE | 单引号 |
F1~F12 | F1~F12键 |
上述标有特殊按键
最多只能在常用按键里出现一次,否则报错
Toad114514个人设置的常用按键配置如下:
1 | extra-keys = [['ESC','/','-','`','UP','QUOTE','APOSTROPHE','PGUP'], \ |
启动问候语
默认的问候语对于初学者来讲有帮助
但随着你的termux经验越来越多,我们就会觉得这个玩意太low炮了
于是你得改!
1 | vim $PERFIX/etc/motd |
编辑问候语文件可直接修改启动语,改完后就可以长这样:
1 | _____ |
zhanghao not penis
是张浩没只因的意思
另外你可以把上面的 Termux 复制过来放到你的启动语里面
Root
孩子们,这鬼东西无需root也能玩出花样
但还是能用的
Rootless
可以安装 proot
模拟 linux 文件系统布局模拟
1 | pkg install proot |
这鬼东西可以模拟root,但不是真的root
输入exit
退出
Rooted
1 | pkg install tsu |
安装tsu
,这是termux的专属su
输入tsu
可以为termux授予root权限
输入exit
回到普通用户
如果操作不慎很可能会让你的手机变成板砖只能盖房子,谨慎使用
备份和恢复
有些low炮搞termux怕自己一不小心搞坏了是吧,也是直接出个备份教程
确保获取了外部存储权限,没有就
1 | termux-setup-storage |
备份
1 | cd /data/data/com.termux/files # 转到termux根目录 |
备份就完成了
千万不要将备份文件放置在 termux 的私有目录里!
当通过设置清除数据输入或者卸载 termux 时,这些私有目录内的文件也会删掉(等同于你把备份文件放C盘但你要重装一个道理)
这些私有目录看上去类似如下的目录:
1 | /data/data/com.termux |
请不要把备份文件放在这些地方,远离它们!
恢复
这里假设您已将 Termux 之前备份的 home 和 usr 目录备份到同一个备份文件中。请注意,在此过程中所有文件都将被覆盖现有的配置:
首先确保获取了外部存储权限,没有就termux-setup-storage
1 | cd /data/data/com.termux/files # 转到termux根目录 |
这样就恢复完成了
pkg 仓库源
termux开发者提供了三个仓库源,可通过 pkg
添加
x11-repo
如果你想要在termux上面安装桌面环境(例如xfce)
,则执行下面代码添加x11仓库源
1 | pkg install x11-repo |
root-repo
如果你想在termux上面搞点root才能做到的东西,可以执行下面代码添加root仓库源
1 | pkg install root-repo |
tur-repo
全称 Termux User Repository
,都是别人封装上传的东西,code-server
也在该源里面
如果你想在termux上面搞点其他的东西(例如安装code-server
),可以执行下面代码添加tur仓库源
1 | pkg install tur-repo |
自启动
etc目录
进入$PREFIX/etc
目录,输入
1 | vim termux-login.sh |
这个文件是每次 Termux 启动时自动执行的
home目录
来到$HOME
目录,输入
1 | vim .bashrc |
这个也是termux会使用的自启动文件,每次登陆时都会执行它
oh-my-zsh
安装了 oh-my-zsh 的,可以使用
1 | vim .zshrc |
也是自启动,与上面两个不同的是,该文件是到 oh-my-zsh 启动前会执行的
短命令
如果发现某些情况下容易掉服务,可以参考本节
这里使用短命令形式alias
,可做到挂掉时快速通过短命令启动
1 | alias <短命令名字>=<具体执行的命令> |
定义短命令后,之后便可输入该短命令名字就可以运行其对应的长命令
可以与上面的自启动一起使用
挂载
termux 可通过自带文件夹进行挂载并允许其他应用访问 $HOME
目录
以mt管理器为例:
- 打开mt管理器
- 点击菜单 -> 右上角三个点 -> 添加本地存储
- 在弹出的文件夹管理器中,点击右上角菜单 -> Termux -> 选择
- termux 的文件夹便挂载在了mt管理器里,mt管理器可随意访问termux的
$HOME
目录注意:由于 Android 限制,在设置挂载存储前和访问挂载存储时,必须在后台启动termux并挂在后台
配置完成
我们的termux配置完成了,是不是非常不错?
接下来就可以开始我们的其他配置了!
是不是特别激动!
你可以从右边的目录栏中选择一项去导航到你需要的!
开发环境
首先从开发环境开始!
termux支持的开发环境可🐮13了,python、c、java、ruby、nodejs等等
编辑器
在我们开始快乐写代码前,先选一个编辑器罢
Nano
1 | pkg install nano |
支持打开多个文件,每行滚动,撤消/重做,语法着色,行编号等功能
Vim
1 | pkg install vim |
编辑器之神,是个玩linux的都喜欢用这东西,每个linux发行版没有他都是一大坨
1 | pkg install vim-python |
termux开发者为此还封装了一个vim-python
,支持更多有关于python的功能及优化
中文乱码问题修复
如果你的vim打开中文乱码的话,可以查看下方代码修复一波
1 | cd ~/ |
输入上方代码在Home
目录创建一个vim配置文件
添加
1 | set fileencodings=utf-8,gb2312,gb18030,gbk,ucs-bom,cp936,latin1 |
输入:wq
保存并退出
然后source
一波
1 | source .vimrc |
修复完成
高亮配色
输入ls /data/data/com.termux/files/usr/share/vim/vim82/colors
查看自带的高亮配色文件
打开~/.vimrc
,添加
1 | set nu |
上面三行对应显示行号
、设置主题
和启动高亮
这些主题你都可以试一试
基础
大家刚入手vim肯定没基础,简单教几个知识吧
编辑文件
输入vim <文件名>
便可通过 vim
打开文件
模式
进入vim
编辑文件时,可以看见termux终端左下角有一个 Normal Mode
vim
总共有三个模式:
Normal Mode
普通模式,在该模式下可以输入vim代码Insert Mode
输入模式,在该模式下可以随意删除或添加文字Visual Mode
可视模式,在该模式下可选择文字并执行操作
在Normal Mode
下,按下i
键进入Insert Mode
,按下v
键进入Visual Mode
在Insert Mode
或Visual Mode
下,按下Ctrl+C
返回到Normal Mode
普通模式基础
这里教简单的一些东西就行了,这些东西下面你会用的上的
:wq
保存文件并退出:q!
不保存文件直接退出:w
保存文件但不退出- 按下
/
按键进入查找模式,按下/
键后,输入要找的关键字,接着回车进行查找。查找时按下n
(小写n)查找上一个,按下N
(大写n)查找下一个。找到了便再按下回车完成查找。
Python
1 | pkg install python |
python 默认自带 clang
升级 pip3
1 | python -m pip install --upgrade pip -i https://pypi.tuna.tsinghua.edu.cn/simple some-package |
此时pip3执行将没有用,需要执行如下操作:
1 | ls /data/data/com.termux/files/usr/bin|grep pip |
接着查看所有版本
1 | pip -v |
这不就完事了
IPython
python的增强交互式shell,支持自动补全变量、自动缩进和shell命令执行,同时内置各种功能和有用的函数
如果没有安装clang
,那么ipython安装完成后将无法启动。建议先pkg install clang
1 | pip install ipython -i https://pypi.tuna.tsinghua.edu.cn/simple some-package |
1 | ipython -V |
jupyter notebook
与ipython共用一个内核的强大Web交互式提供程序
这喜仔需要的依赖有点多,孩子们还是在python3上搞吧
记得pip换国内镜像源
1 | pkg update # 更新源 |
这东西拥有极其强大的功能,可以百度或必应一波
1 | jupyter notebook |
输入上面命令启动notebook
然后看到输出的日志,复制里面的Url放浏览器里访问
在termux里输入CTRL+C
终止jupyter进程
C
termux 开发者封装了 Clang,简简单单安装一波
1 | pkg install clang |
编译
可以去看看网上的 clang 编译教程,这里先拿 HelloWorld 做事例
1 |
|
完成保存退出后,使用以下方法编译成可执行文件并执行
1 | clang helloworld.c -o helloworld |
Java
openjdk-17
termux目前封装了openjdk-17
1 | pkg install openjdk-17 |
但是该包不稳定,可以到termux的仓库issues一波
ecj
1 | pkg install ecj dx -y |
编译
这里写一个hello.java
1 | public class hello { |
编译生成 class
1 | ecj hello.java |
编译生成 dex
1 | dx --dex --output=hello.dex hello.class |
使用 dalvikvm 运行它
1 | dalvikvm -cp hello.dex hello |
Apache
依靠安全性和跨平台性而闻名的服务器,也是最流行的 Web 服务器
安装
1 | pkg install apache2 |
命令
1 | apachectl start |
通过浏览器访问 http://127.0.0.1:8080
访问 apache 是否运行成功
1 | apachectl stop # 停止运行 |
termux下的apache网站根目录为$PREFIX/share/apache2/default-site/htdocs/
apache-php
请转到 开发环境 - PHP - apache-php 这一小节查看
MariaDB
甲骨文后面收购了 MySQL,大家都怕这个老野把 MySQL 闭源,所以大家搞了个 MariaDB 为了避这个老野闭源 MySQL
本质上 MariaDB 和 MySQL 是一个样子的孩子,你就装吧
1 | pkg install mariadb |
开发者把 mariadb 也封装了,安装特别方便
1 | mysql --version # 安装完成后查看版本号 |
启动 MySQL
正常启动完成后,你将会发现这会话一直存在,看着心痒痒,Ctrl+C
也杀不掉,怎么办呢
1 | nohup mysqld & |
丢到后台不就得了孩子
1 | ps aux|gerp mysql |
这个命令用于查看 mysql 进程 PID
关闭 MySQL
1 | kill -9 `pgrep mysql` |
这样就优雅的关掉了
默认用户
安装完之后,将会爆出两个用户,一个是root
,访问不了,另一个用户是termux用户名
1 | mysql -u $(whoami) |
登录另一个可以登录的用户,密码啥也没有
就是空
可以顺利执行MySQL
语句
改 Root 用户的密码
1 | # 登录 MySQL |
ok了孩子们,可以登录了
1 | mysql -u root -p |
Nginx
高性能的Web反向代理服务器
1 | pkg install nginx |
测试
1 | nginx -t |
该命令用于测试nginx的配置检测
启动
1 | nginx |
直接启动
1 | pgrep nginx |
检查 nginx 的 PID
一般测试也是 8080 端口,浏览器输入127.0.0.1:8080
查看工作情况
重启
1 | nginx -s reload |
每次配置完nginx之后都需要重启,重启输入上述命令重启
停止运行
1 | nginx -s quit # 先处理完所有请求再停止 |
上述都是停止服务,他们的不同点都已经做好了注释
php-fpm
详情请转到 开发环境 - php - php-fpm 查看
PHP
动态页面解释器,目前动态页面最好的解释器,也是CMS和网站框架的归宿
主要环境
安装php,termux开发者已经封装好了
1 | pkg install php |
快速测试
php5.4 版本之后,内嵌了一个简易的 Web 服务端,可以快速的测试php文件
1 | mkdir ~/www # 在家目录新建一个 www 文件夹 |
接下来就可以测试了
1 | cd ~ |
进入浏览器访问127.0.0.1:1145
,如果看到php版本信息
就对了
apache-php
本小节用于apache
1 | pkg install apache-php |
1 | vim /data/data/com.termux/files/usr/etc/apache2/httpd.conf |
进入配置文件
添加php7模块
1 | LoadModule php7_module /data/data/com.termux/files/usr/libexec/apache2/libphp7.so |
并在下方添加php解释器
1 | <FilesMatch \.php$> |
往下找到设置默认首页规则的地方,改成
1 | <IfModule dir_module> |
这样就添加了php7模块、php解释器和默认首页(index.php)
现在可以重启了apachectl restart
AH00003 问题解决
找到
1 | LoadModule mpm_worker_module libexec/apache2/mod_mpm_worker.so |
给前面加上#
1 | #LoadModule mpm_worker_module libexec/apache2/mod_mpm_worker.so |
接着找到
1 | #LoadModule mpm_prefork_module libexec/apache2/mod_mpm_prefork.so |
去除注释
1 | LoadModule mpm_prefork_module libexec/apache2/mod_mpm_prefork.so |
最后apachectl restart
重启即可
解析测试
在apache网站根目录下创建一个index.php
1 | echo '<?php phpinfo(); ?>' > $PREFIX/share/apache2/default-site/htdocs/index.php |
浏览器登陆127.0.0.1:8080/index.php
,如果看到php信息就对了
php-fpm
本小节用于nginx
1 | pkg install php-fpm |
输入
1 | vim $PREFIX/etc/php-fpm.d/www.conf |
定位搜索listen=
改成
1 | listen = 127.0.0.1:9000 |
转到nginx配置
1 | vim $PREFIX/etc/nginx/nginx.conf |
- 定位到默认首页规则,添加
index.php
- 取消
location ~\.php$
里面的所有注释
解析测试
创建一个info.php
用于测试解析
1 | echo '<?php phpinfo(); ?>' > $PREFIX/share/nginx/html/info.php |
带php的nginx服务启动
先启动 php-fpm
然后再启动 nginx
然后进入浏览器输入 127.0.0.1:8080/info.php
启动
Nodejs
Node.js 是能够在服务器端运行 JavaScript 的开放源代码、跨平台 JavaScript 运行环境
nodejs-lts
长期版本的包 nodejs-lts
更有性价比,既稳定又有长期支持
1 | pkg install nodejs-lts |
HelloWorld
创建 hello.js
1 | console.log('HelloWorld'); |
启动脚本
1 | node hello.js |
服务器部署
来到了服务器部署,看看又有什么鬼东西
DVWA
一个为 Web 安全从业者提供的练习靶场,用于学习基础漏洞原理及其和修复
如果你不是 Web 安全从业者,请跳过该小节
环境准备
由于 DVWA 靶场使用 php,所以需要提前进行环境准备
环境准备请参考本文章的小节:
- 开发环境 - Nginx
- 开发环境 - MariaDB
- 开发环境 - PHP
- 开发环境 - PHP - php-fpm
安装
1 | wget https://github.com/ethicalhack3r/DVWA/archive/master.zip |
解压文件
1 | unzip master.zip -d $PREFIX/share/nginx/html/ |
重命名
1 | cd $PREFIX/share/nginx/html/ |
在 MySQL 新建数据库
1 | mysql -uroot -p*** -e"create database dvwa;show databases;" |
***
为mysql密码
配置 dvwa
1 | #还原 config.inc 文件为php后缀 |
测试
登录 http://127.0.0.1:8080/dvwa/setup.php
进行初步测试
如图,php的allow_url_include
没有开启,需要开启一波
但是这个选项只有2boy才会开启,正常人不会开启它,这很危险
但你再想想,这是靶场,只有你能访问。有些漏洞就是依靠PHP
配置不当造成的,你就开吧!!!
allow_url_include 配置
termux实际上没有php.ini
,得自己造
1 | echo 'allow_url_include = On' > $PREFIX/lib/php.ini |
上面这行代码会新建一个php.ini
文件,并在里面写入allow_url_include
打开的配置
这是不安全的配置,这里是dvwa
靶场,只是为了配合本地黑客模拟攻击用
配置完成后必须重启php-fpm
1 | kill -9 `pgrep fpm` |
初步设置
再次使用浏览器登陆 http://127.0.0.1:8080/dvwa/setup.php
,allow_url_include
已经打开了
直接划到最下面,点击 Create/Reset Database
初始化数据库就完成了
接着转到登录界面,dvwa的用户有五个,这里用经典的admin,密码password登录
KodExplorer
开源的远程文件资源管理器,在termux上也可以正常搭建
环境搭建
环境准备请参考本文章的小节:
- 开发环境 - Nginx
- 开发环境 - MariaDB
- 开发环境 - PHP
- 开发环境 - PHP - php-fpm
安装
1 | wget http://static.kodcloud.com/update/download/kodexplorer4.40.zip |
访问
通过 127.0.0.1:8080/kod
访问 Kod
同一局域网内,不同设备可以共享文件,传输目的也就达成了
Hexo
用 Nodejs 编写的静态博客生成网站,通常与github pages一起使用
hexo使用了markdown解析文章,可以快速生成所需要的文章
大多数博客包括我自己的toadsblog,都使用了hexo
环境准备
环境准备请参考本文章的小节:
- 开发环境 - Nodejs
安装
1 | npm install hexo-cli -g |
基础配置
我们需要一个hexo的根文件夹,初始文件夹如下
1 | cd ~ |
初始完成,你的博客根文件便是 home 目录的 blog 文件夹,可以改下名字
部署
1 | hexo g |
其他东西
有关于 hexo 的其他东西,可以去查看hexo官方文档。
code-server
网页版 VSCode
24/09/11
安装code-server
时,部分依赖在清华源上不存在。
安装前必须切换到 grimler 源
1 | termux-change-repo |
执行完后,选择Single Mirror
并在下面的源列表中选择含有Mirrors by Grimler
的源并回车替换。code-server
安装完成后,再替换回到清华源。替换步骤可看配置termux - 更新源
这一节
安装code-server
前,必须添加tur-repo
源。因为code-server
封装在tur-repo
仓库源中
1 | pkg install tur-repo |
如果先前已经添加,可忽略该步
1 | pkg install code-server |
配置
1 | code-server |
第一次启动后将自动生成~/.config/code-server/config.yaml
,按下Ctrl+C
退出并执行vim ~/.config/code-server/config.yaml
1 | bind-addr: 0.0.0.0:<port> |
ip地址
默认0.0.0.0<port>
填入要监听的端口<password>
填入登录 code-server
页面的密码
启动
配置完成后就是启动
1 | code-server |
执行完后,浏览器输入<termux设备的ip地址>:<port>
即可登录code-server
后台
插件安装
目前 code-server
的插件可通过如下方法安装:
下方两种方法选择其中一个,先使用后者。因为tur-repo上封装的code-server
版本较老,已考察为1.89.1
。后者完成后,如果其他需要的插件无法安装,则使用前者
平台覆盖
新建一个脚本and2linux.js
,并填入
1 | Object.defineProperty(process, "platform", { |
然后使用 Node 的选项来确保它在启动之前被加载
1 | NODE_OPTIONS="--require /path/to/android-as-linux.js" code-server |
本方法并非100%兼容 linux 插件,有概率可能导致机子爆炸
老版本插件安装
使用该方法前,请检查code
版本(依次点击左上的三条横线、Help、About 查看 Code 版本)
- 打开 open-vsx 并查找需要的插件(以简体中文插件包为例)
- 打开插件页面,找到左边的Version,选择旧版本,此处使用
1.89.0
- 点击右边
Download
下载到本地 - 切换到
code-server
页面并登录 - 打开拓展(Extensions)界面 / Ctrl+Shift+X
- 点击展开右上角 View and More Actions 的三个圆点并选择 Install from VSIX
- 在弹出的窗口中选择最右侧的 Show Local
- 在弹出的窗口中选择最右侧的 Open Files
- 选择之前下载的文件并重启即可
游戏服务器
这是个 termux,是个小型的树莓派,我曾在我的树莓派上面运行过基岩版服务器,很好,还把龙给屠了,但就是没人跟我玩,我没q搞内网穿透(必须找我朋友爆爆金币)
proot-distro + box64
这东西首先需要 proot 容器
1 | # 安装 proot-distro |
接下来安装 box64,这个东西用于转译架构
1 | # 添加存储库 |
接下来就是安装对应的游戏服务器了
Minecraft 基岩版服务器 (BDS)
1 | # 创建一个 mc 文件夹在 home 目录并cd到该目录 |
修改配置文件时执行nano server.properties
,配置修改教程请百度,修改完成后按下CTRL+X
并按y
退出
启动
接下来是启动
1 | # 授予执行权限 |
第一次启动时,由于文件夹内没有世界存储,请耐心等待生成世界
测试时,启动你的Minecraft,依次点击 游戏 -> 服务器 -> 添加服务器,地址输入0.0.0.0
,端口输入你在配置中设置的,接着保存就可以进入服务器了(但前提需要登录微软账号)
停止时只需在命令行中输入stop
并回车即可停止服务器
泰拉瑞亚服务器
(未研究)
linux发行版
termux 支持安装多款 linux 发行版本的安装
Kali Nethunter
基于 kali 的免费开源安卓移动设备渗透平台,安全从业者或者有兴趣的可以试一试
安装
Kali 官网提供的脚本安装
1 | # 下载 安装脚本 |
执行脚本前请挂代理!这它🐴1GB+
的数据包!
数据包安装
1 | https://images.kali.org/nethunter/kalifs-arm64-full.tar.xz |
上面是kali官方提供的nethunter1GB+
的数据包
使用迅雷下载后,拷贝到termux 安装的脚本
同级目录下即可
以下为安装成功效果图:
nethunter 基础指令
- nethunter 启动 nethunter 会话
- nethunter kex passwd 配置 KeX 密码
- nethunter kex & 启动 KeX 会话
- nethunter kex stop 停止 KeX 会话
proot
proot可以帮助你在termux上面运行各种各样的linux发行版
proot-distro
termux官方出的基于proot
的快速安装脚本
1 | pkg install proot-distro |
安装发行版
首先查看目前可安装的发行版列表
1 | proot-distro ls |
输出如下
1 | Supported distributions: |
找到你需要的发行版,在其中找到 Alias 这一栏,记住它
接着输入
1 | proot-distro install <alias> |
开始安装发行版
等一会,接着到最后输入
1 | proot-distro sh <alias> |
用上面方法进入proot容器
当然了,退出只需在容器里输入exit
即可
虚拟机/容器
termux 支持虚拟机以及一系列容器
Qemu
老牌开源的虚拟机,支持 KVM/Xen、VNC和多种架构模拟等功能
目前安卓上常用的Windows模拟器,Limbo、termux和bochs
Limbo是安卓qemu的前端
termux配合qemu运行模拟器
bochs它🐴是基于qemu
可见其厉害之处
安装
1 | # 如果要安装 32 位系统(如98/2k),执行下面指令 |
准备系统镜像
可以去下方各种贴吧寻找系统镜像
QEMU吧
上面提到了bochs基于qemu,所以可以去下面贴吧找镜像
Bochs吧
limbo是qemu前端,其实还是qemu,所以:
Limbo吧
启动
将下载好的镜像移动到termux
的Home
目录,举例
1 | # mv 格式:mv <文件路径> <要移到的文件夹路径> |
接着cd
到Home
目录,直接启动qemu,如下
1 | # 虚拟机为 64 位系统 |
启动参数解析
-hda winxp-img.qcow2
设置第一个虚拟磁盘,同时也是qemu启动时的磁盘,此处的虚拟磁盘为winxp-img.qcow2
-m 1024
设置虚拟机内存大小,单位默认为M
,可在数字后面输入K,M,G,T,E
-netdev user,id=user.0
创建网络,模式为User,id为user.0-device rtl8139,netdev=user.0
设置网卡,使用rtl8139,连接user.0-vga vmware
设置显卡,这里使用vmware
Docker
注意:
原生运行 Docker 需要Root以及编译好的安卓内核!
有关于编译安卓内核的内容请参考 本篇文章
家里没电脑的或者不想给自己的手机 Root 的,请跳过该节!
检测安卓内核功能查看进入 本链接 下载文件到termux目录中,然后使用sh check-config.sh
检测你的安卓内核有哪些未开启
在编译完安卓内核系统的手机上运行:
1 | pkg install root-repo |
折腾
这个区域用于你折腾,随便搞去吧
ssh
经典的远程终端运行工具
启动
没错,termux官方把这东西预装到里面了
1 | sshd |
连接
终端
sshd 监听8022端口,可不是22端口,因此输入
1 | ssh localhost -p 8022 |
JuiceSSH
安卓端可加插件的远程终端连接工具,它🐴居然要收费
由于本人使用汉化版本,连接如下:
点击连接 -> 右下角加号
新建一个连接昵称
随便填地址
为运行termux的设备的ip地址,如果是本机则输入127.0.0.1端口
填8022
其他无需领会,直接点击右上角的勾✓将回到上一个页面
最后点击你刚创建好的连接就可以了
公钥/密钥连接
此处准备两个设备,一台客户端(用于连接到termux)和一台termux设备
首先在客户端生成密钥
1 | ssh-keygen |
执行后一直回车使用默认配置,完成生成后会在~/.ssh
中生成三个文件
1 | id_rsa id_rsa.pub known_hosts |
id_rsa.pub
为公钥文件
将在客户端中生成的公钥文件放置在termux设备中的/data/data/com.termux/files/home/.ssh
中
回到termux设备,cd ~/.ssh
后,把公钥拷贝到验证文件中,即
1 | cat id_rsa.pub > authorized_keys |
最后关闭密码验证
1 | vim $PREFIX/etc/ssh/sshd_config |
接着重启一下sshdpkill sshd && sshd
aria2
一个很牛x的开源终端下载器,支持 http 链接、BitTorrent 种子、磁力链接等下载
Aria2-Termux
脚本仓库:Aria2-Termux
1 | bash -c "$(curl -L https://raw.githubusercontent.com/RimuruW/Aria2-Termux/master/install.sh)" |
执行上方命令后,根据脚本进行操作即可
通过脚本安装完成后,之后都可输入atm
进入脚本
脚本允许配置 Aria2 和 RPC 选项,所以通过安装脚本的可以跳过下方的配置一节
键盘纯撸
1 | pkg install aria2 |
完事了
注意事项
Aria2 更多是用于作为服务器一直挂在终端的,允许任何的局域网设备去执行 Aria2 终端
Aria2 有一个本地网络浏览器后台,这就是 ziahamza/webui-aria2
了,这个后面会说它的安装方法
配置
在 ~/.config/aria2
中新建三个文件,没有就mkdir ~/.config/aria2
1 | touch aria2.conf |
接着用 vim aria2.conf
编辑该文件,将下方配置文件粘贴到本配置文件
1 | ##===================================## |
启动服务器
1 | aria2c --conf-path="~/.config/aria2/aria2.conf" -D |
此时 Aria2 将挂在后台运行
如果出现运行中途挂掉的情况,那么可以设置好alias
短命令
1 | alias start-aria2c='aria2c --conf-path="~/.config/aria2/aria2.conf] -D' |
开启自启动与挂掉快速启动可以参考配置termux - 自启动
和配置termux - 短命令
这两节
webui-aria2
1 | # 安装依赖 |
执行上述指令后,将在局域网内启动一个 Aria2 浏览器后台
浏览器输入http://<手机ip>:8888
便可进入后台
黑客
你想当黑客吗?
上文提到的 linux发行版 - Kali Nethunter
可以帮助你在手机上面装一个完整的 Kali Linux
但termux本身支持python
,所以基于python的一些黑客工具可以在其上面运行!
让我们来试一试吧
注意
由于国外的社交媒体平台有太多的脚本小子了,所以termux的源移除了hashcat
hydra
metasploit
和sqlmap
这四个包的封装。所以目前情况下想要安装这些只能自行编译或者拉取git
Metasploit
全球公认 10 大黑客常用的设备渗透工具,安全从业者的第一选择
m-wiz 脚本
1 | pkg install git |
进入脚本菜单后按下1
安装
安装过程漫长,因为metasploit需要很多的依赖,请慢慢等待
最后安装完成会自动启动 metasploit
快速启动
此处创建软连接
1 | ln -s $HOME/metasploit-framework/msfconsole $PREFIX/bin/msfconsole |
创建完成后,便可直接使用msfconsole
等命令
Nmap
端口扫描工具,上文有展示过 nmap 的安装
1 | pkg install nmap |
Netcat
网络安全界的瑞士军刀,简单有用
1 | # 安装 |
目前已集成到nmap
,如果安装了nmap
就无需进行安装了
Hashcat
世界最快的密码破解速通工具,支持多平台和多算法
编译安装
之前仍可通过 unstable-repo
安装 hashcat,但 termux 后面将 unstable-repo
丢掉了,将其包替换成了apt
。所以只能自己编译
1 | # 拉取仓库 |
接下来需要进行修改文件
src/affinity.c 第174行pthread_setaffinity_np
修改成 sched_setaffinity
deps/unrar/ulinks.cpp 第39行lutimes
修改成 utimes
src/Makefile
在第324行之后添加一行 LFLAGS_NATIVE += -liconv
修改完成,接下来进行编译安装
1 | # 编译 |
Hydra
黑客组织 THC 的开源暴力破解工具
1 | # 克隆项目 |
SQLmap
经典的 SQL 数据库检测和注入漏洞的开源工具
目前sqlmap支持pip
安装
1 | pip install sqlmap |
Exiftool
图片元数据修改和查看工具
其实你的自拍在拍下来之后,会在元数据里保存你的GPS位置,这个可以看到你的GPS位置(即经纬度和位置)
1 | pkg install exiftool |
使用
1 | exiftool <你要查看元数据的图片路径> |
应用/插件
无聊
发🐔温的时候可以来这里看看
Hollywood
一个没啥用纯装b的仪表盘
1 | pkg install hollywood |
cmatrix
《黑客帝国》同款代码雨
1 | pkg install cmatrix |
cowsay
让动物说话
1 | pkg install cowsay |
列出所有动物名
1 | $ cowsay -l |
简单的让牛说话
1 | $ cowsay "hello" |
一整条命令
1 | cowsay -f <动物名> <要说的话> |
配合 fortune
执行下面命令前请先安装fortune
1 | fortune|cowsay -f dragon |
fortune
随机一条文案或者tips
1 | apt install fortune |
执行
1 | fortune |
自然就会有一条新的文案或者tips随机出现
toilet
一个输出 ascii 文字的程序
1 | pkg install toilet |
1 | toilet <文字> # 正常输出 |
neofetch
简单也有用的命令行设备信息查看工具
1 | pkg install neofetch |
1 | neofetch |
手持战神a5(
nyancat
彩虹猫 🐱🌈
1 | pkg install nyancat |
按下Ctrl+C
退出彩虹猫
sl
有时候打ls
一不小心打了个sl
,于是你可以装个sl
来娱乐一波
1 | pkg install sl |
直接执行sl
后,会出来个移动的火车
二维码
终端二维🐴,核心qrenco.de
1 | echo "<url链接>" |curl -F-=\<- qrenco.de |
其他页面
有关于termux
的一些文章会放在此处并跳转,如果你对部分内容感兴趣,可以点击下面的链接跳转到相对应的页面
以下链接跳转的文章部分教程适用于linux
,但基本操作一致
termux 全局/整合
Termux 高级终端安装使用配置教程 | 国光
Termux Wiki
本文大部分参考了上面两个页面
termux | 镜像站使用帮助 | 清华大学开源软件镜像站
Vim
Nano
Linux 之 nano 编辑器的使用详细 - CSDN博客
发行版
Nethunter Rootless | Kali Linux Documents
移动端termux安装kali - 王翔9980 - 博客园
Termux:从0到1安装桌面系统(proot-distro)
开发环境
Development Environments - Termux Wiki
菜鸟教程 - 学的不仅是技术,更是梦想!
Termux安装Node.JS及网页版文档查看与修改器wcode - 知乎
网站环境
termux一键安装nginx和ui面板
手机端做服务器部署nginx搭建前端网站
安卓Termux搭建Web服务器【公网远程手机Android服务器】
最小termux的nginx+php配置
在termux上运行mysql | SWorker
【建网】Termux部署Hexo - 程源の小站
折腾
Remote Access - Termux Wiki
Termux 上运行SSH Server - 知乎
Android 一键安装配置 Aria2 - 清絮的博客
Termux - code-server Docs
只需一部安卓手机,让全功能VSCode登陆iPad - 知乎
一篇利用box64和termux在安卓手机上游玩矮人要塞的教程
使用安卓手机无成本搭建 Minecraft 基岩版服务器(BDS)
安卓手机安卓Alist以及配置 – 学少何Blog - GitHub Pages
文章总结
(本文章未完成)
相对来讲,国外的termux交流氛围比我们这里国内的termux交流氛围是特别好的了。发个 youtube 就火了
这篇文章我自己也是一时兴起,只是1.118.1
版本更新才有的兴趣写的
最后,感谢你仔细阅读该文章!
希望通过该文章可以帮助完善你的termux!