Termux
清华源: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
- 目录和结构不同:不同于Linux,termux没有像其他发行版一样的系统目录结构。但Termux有$HOME和$PREFIX环境变量,两个特殊目录相当于,home和user目录
- 包管理器pkg基于apt
使用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
Termux 毕竟不是一个完整的 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,最终用手机做到一个云服务器应有的功能。
[...]Cpolar内网穿透前置termux内容可见Termux内网穿透背景知识地址转换(NAT): 在大多数情况下,内网使用私有IP地址,而互联网使用公共IP地址。路由器通常会使用网络地址转换(NAT)将内网中的多个设备映射到一个公共IP地址上。当内网设备访问互联网时,NAT会动态地分配一个临时端口,以便响应的数据包能够正确返回到请求的设备。UPnP(通用即插即用)或端口映射: 内网设备通常是通过局域网[...]