Termux

官方文档:https://wiki.termux.com/

清华源:https://mirrors.tuna.tsinghua.edu.cn/help/termux/

App简介

Termux是一个适用于 Android 的终端模拟器,其环境类似于 Linux 环境。 无需Root或设置即可使用。

Android 应用都是在沙盒中运行的,每个应用都有自己的Linux用户id和SELinux标签。Termux也不例外,Termux中的所有程序都使用和Termux同样的用户id运行,用户id也许是 u0_a2319这种格式,并且不能更改。

同时 ftpd, httpd 和 sshd 的默认端口也分别被修改为 8021, 8080 和 8022 。

Termux安装系统要求: 安卓版本 7.0 - 12.0 (经验证鸿蒙手机系统2.0也是可以的) CPU架构: AArch64, ARM, i686, x86_64 最少200兆的存储空间。

Termux并不是一个Linux发行版。但是通过Termux,我们仍然可以使用安卓手机进行一些通常认为是在linux主机上进行的工作:

  • 自动化程序
  • 学习Linux
  • 局域网内的服务器
  • 同步和备份文件
  • Ngrok、Serveo、Localtunnel等内网穿透服务将其放到公网
  • ......

安装和配置

直接在GitHub里搜索它的仓库名,最好下载一个稳定的版本,手机一般为arm架构,所以选择arm64的apk安装包下载安装即可

安装时可能会说安装包签名有问题,这个我也不清楚是什么愿意,修改设置再安装就好

将存储读写权限,网络权限,应用手动开关设置开启,方便后续操作

Termux Vs Linux

  1. 目录和结构不同:不同于Linux,termux没有像其他发行版一样的系统目录结构。但Termux有$HOME和$PREFIX环境变量,两个特殊目录相当于,home和user目录
  2. 包管理器pkg基于apt
  3. 使用proot工具

    可以有Linux一样的系统目录

    #安装
    pkg install proot
    #运行
    termux-chroot
    #效果
    $ ls /
    bin  data  dev  etc  home  lib  proc  root  sbin  share  storage  system  tmp  usr  var  vendor
    $ ls /usr
    bin  etc  include  lib  libexec  share  src  tmp  var

    查看一下树

    tree ~/.termux

    退出proot

    由于proot是基于termux的又一层虚拟,故可以这样退出

    logout

SSH连接Termux

想要使用设备ssh连接termux那就先得配置好termux

pkg install openssh
#查看沙盒termux用户id
whoami
#ip地址(如果是局域网内路由器连接看最下面int后面的IP,流量看最上面的ip)
ifconfig
#设置ssh连接密码
passwd

启动ssh

sshd

电脑端ssh连接

ssh username@ip -p 8022
*如果使用路由器局域网(也就是WiFi)可能会出现路由器防火墙没开的情况
C:\Users\86153>ssh u0_a293@192.168.0.105 -p 8020
ssh: connect to host 192.168.0.105 port 8020: Connection timed out

尝试修改termux的ssh连接端口配置

运行以下命令以编辑 SSH 配置文件:

bash
nano $PREFIX/etc/ssh/sshd_config

如果您尚未安装 nano,您可以使用 pkg install nano 安装它。

在配置文件的末尾添加以下行:

Port 2222

请确保将端口号(例如 2222)更改为路由器防火墙开放的端口号且没有被占用一般被占用的有:

  • 80端口:用于HTTP通信
  • 443端口:用于HTTPS通信
  • 21端口:用于FTP通信
  • 25端口:用于SMTP通信
  • 110端口:用于POP3通信
  • 143端口:用于IMAP通信
  • 53端口:用于DNS通信

按下 Ctrl + X 保存更改,然后按 Y 确认,最后回车确认名称

重启 SSH 服务,以使更改生效:

bash
pkill sshd
sshd
最后连接成功
u0_a293@192.168.43.1's password:
Welcome to Termux!

Docs:       https://termux.dev/docs
Donate:     https://termux.dev/donate
Community:  https://termux.dev/community

Working with packages:

 - Search:  pkg search <query>
 - Install: pkg install <package>
 - Upgrade: pkg upgrade

Subscribing to additional repositories:

 - Root:    pkg install root-repo
 - X11:     pkg install x11-repo

For fixing any repository issues,
try 'termux-change-repo' command.
设置ssh连接开termux自启

sshd 命令添加到 Shell 配置文件中即可,比如我使用的是 zsh ,那么就添加到 ~/.zshrc 中。如果是 bash ,那么就添加到 ~/.bashrc

echo "sshd" >> ~/.zshrc
echo "sshd" >> ~/.bashrc
恭喜你!完成这一步后基本上手机已经变成了一台局域网服务器,你可以去寻找更多玩法,也可以接下来了解继续学习解锁更高级的玩法

Termux访问文件

如果不做任何设置,termux在手机上的默认目录为/data/data/com.termux/files/home,且与手机文件管理器中的目录不同

访问常用文件

termux-setup-shorage
tree shorage

访问部分根目录文件,/sdcard但是需要root

tree /sdcard

安装Ubuntu

Ter­mux 毕竟不是一个完整的 Linux 环境,安装一个Linux发行版本是有必要的,我个人比较喜欢使用Ubuntu,接下来附上官方安装教程。

https://wiki.termux.com/wiki/PRoot#Installing_Linux_distributions

安装完成后

% proot-distro login ubuntu
root@localhost:~# ssh root@yujie95.top
root@yujie95.top's password:

root@localhost:~#

结尾

你有没有坐在公共汽车上想知道 tar 到底接受了哪些参数?将重要文件备份存储在您的远程服务器上?这些你都可以实现,下期我将使用国产内网穿透工具Cpolar来将termux进行公网ssh连接。我将会从反向代理等原理讲起,再到实践ssh,最终用手机做到一个云服务器应有的功能。