在Android上使用Termux之前,有几点需要注意
- Termux是一个命令行模拟器应用,运行在Android系统上,目前要求Android7+,自带最小Linux环境(Debian/Ubuntu)。
- 由于它是一个APP,所以当它被关掉时,其上运行的所有服务或应用全部会被杀掉!
- 可以使用openssh远程连接
- 可以安装Python/Java/PHP/Ruby/C/Nginx/Apache环境
- 可以使用crontab
- 手机休眠时间过长时,Termux上的服务会停止,所以需要保持手机唤醒
- Termux可以说是一个Linux发行版,但没有使用标准的FHS,所以其目录以外的文件没有权限访问
- 使用Proot可以模拟root文件系统并使用Debian/Ubuntu/Fedora等Linux发行版,但功能受限,玩玩还行。
- 所有可以运行在Termux的包基本都是重新编译过的,虽然基于Debian,但直接安装Debian仓库上的包多半是不行的。
- 可以添加自启,但需要安装
Termux:Boot
应用 $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和站点均可。
Termux可以通过密码远程ssh,不是必须使用证书认证。
谢谢指正!