Termux On Android

在Android上使用Termux之前,有几点需要注意

  1. Termux是一个命令行模拟器应用,运行在Android系统上,目前要求Android7+,自带最小Linux环境(Debian/Ubuntu)。
  2. 由于它是一个APP,所以当它被关掉时,其上运行的所有服务或应用全部会被杀掉!
  3. 可以使用openssh远程连接
  4. 可以安装Python/Java/PHP/Ruby/C/Nginx/Apache环境
  5. 可以使用crontab
  6. 手机休眠时间过长时,Termux上的服务会停止,所以需要保持手机唤醒
  7. Termux可以说是一个Linux发行版,但没有使用标准的FHS,所以其目录以外的文件没有权限访问
  8. 使用Proot可以模拟root文件系统并使用Debian/Ubuntu/Fedora等Linux发行版,但功能受限,玩玩还行。
  9. 所有可以运行在Termux的包基本都是重新编译过的,虽然基于Debian,但直接安装Debian仓库上的包多半是不行的。
  10. 可以添加自启,但需要安装Termux:Boot应用
  11. $HOME变量同~,路径是/data/data/com.termux/files/home$PREFIX则是/data/data/com.termux/files/usr

文件访问

默认情况下,在Termux下有很多文件是没有权限的,只能操作Termux所在的目录,但是访问文件系统也是可以做到的。

执行

termux-setup-storage

允许Termux访问手机存储,执行成功后会在~下生成storage目录,其下是下载、音乐电影、相册等目录的符号链接,这些目录能被Termux访问,但也仅限于这几个目录。

SSH

apt install openssh

Termux下的SSH可以通过密钥访问,安装完成后会自动生成几个密钥对,需要先将设备公钥放置在Android设备的sshd服务的授权登录列表中,然后通过私钥校验的方式登录。具体来说:

# 将设备公钥添加都授权登录列表中
cat ssh_host_ecdsa_rsa.pub >> $HOME/.ssh/authorized_keys
# 开启ssh服务
sshd

私钥文件需要自己从手机里拷出去,SSH连接命令

ssh -i /path/to/private_key -p 8022 ecdsa@192.168.0.110

sshd的默认端口是8022

update 2022.1.4

经评论区指正,也可以通过账号密码的方式登录。先通过whoami查看当前登录的用户,然后通过passwd对其重置密码后就可以登录了。

保持唤醒

方式1:手机打开开发模式,勾选屏幕常亮。

方式2:

termux-wake-lock

权限

由于Termux毕竟只是一个APP,局限于Android授予它的权限,同一个软件在其上运行和在Android系统上运行,获得的不是一种权限!

Termux更像是一个沙箱。

Proot

pkg install proot
termux-chroot

作为公网服务器

Android手机连上WiFi后,获得的是内网地址,并不能直接在公网上访问。

但是好在有frp,可以反向代理内网。SSH和站点均可。

2 thoughts on “Termux On Android”

Leave a Comment

豫ICP备19001387号-1