Termux 是一款能够为 Android 手机提供 Linux 环境的应用,支持 pkg 包管理来安装 python, nodejs,golang 等程序,是闲置手机废物利用的好助手。
安装 ssh 服务端
要知道使用传统键盘敲命令行的体验可是 Android 键盘不能比拟的,这里介绍下远程链接 Termux 的两种方式
pkg install openssh
安装完成后会在/data/data/com.termux/files/usr/etc/ssh/
目录下生成几种常见的公钥/密钥对,以及sshd_config
和ssh_config
安装好之后,我们需要手工启动 sshd,注意 sshd 监听的是 8022 端口而不是 22 号端口
# 启动
sshd
密码登陆
说明下 Termux 的 sshd 可以通过密码登陆的,不要相信网上的破教程,一个登陆搞这么麻烦
先说明下网络环境,我的电脑和手机都是连接的同一个 WIFI,手机的 IP 是 192.168.1.105
# 获取用户名
whoami
# 重置密码
passwd
切换到电脑,使用 ssh 命令登入,简单点也可以使用图形化的 xshell
# 这里使用任意用户名都可以登陆进去
# 因为Termux是单用户的,所以说上面的whoami没什么用处
ssh -p 8022 root@192.168.1.105
# 提示输入密码
密钥登陆
使用ssh-keygen
命令生成公钥和私钥,默认参数会在~/.ssh
目录下生成id_rsa
和id_rsa.pub
这两个文件
主要的难度就是怎么把公钥给拷到电脑上,把公钥复制到 SD 卡然后找到文件通过 QQ 发给电脑就行了
另外 sshd_config 已经打开了密钥登录功能,无需再配置
# 申请SD卡读写权限
termux-setup-storage
cd ~/.ssh
# 服务器上安装公钥
cat id_rsa.pub >> authorized_keys
# 权限
chmod 600 authorized_keys
chmod 700 ~/.ssh
# 拷贝密钥到SD卡,顺便重命名了下
cp id_rsa /storage/emulated/0/Download/id_rsa_termux
切换到电脑,复制id_rsa_termux
到C:\Users\用户名\.ssh
下
ssh -i C:\Users\tmaize\.ssh\id_rsa_termux -p 8022 root@192.168.1.105
如果你嫌命令太长,可以在C:\Users\用户名\.ssh
下新建config
文件,内容如下
Host termux
HostName 192.168.1.105
Port 8022
IdentityFile C:/Users/tmaize/.ssh/id_rsa_termux
PreferredAuthentications publickey
User root
然后直接ssh termux
就行了
包管理
下面是包管理的常用命令
pkg search <query> 搜索包
pkg install <package> 安装包
pkg uninstall <package> 卸载包
pkg reinstall <package> 重新安装包
pkg update 更新源
pkg upgrade 升级软件包
pkg list-all 列出可供安装的所有包
pkg list-installed 列出已经安装的包
pkg shoe <package> 显示某个包的详细信息
pkg files <package> 显示某个包的相关文件夹路径
基本使用
速度慢的话可以换成国内源,注意有梯子话推荐使用默认源,不然可能会有一些奇怪的 bug
vi $PREFIX/etc/apt/sources.list
# 修改为
# deb https://termux.net stable main
deb https://mirrors.tuna.tsinghua.edu.cn/termux/termux-packages-24 stable main
vi $PREFIX/etc/apt/sources.list.d/science.list
# 修改为
# deb https://dl.bintray.com/grimler/science-packages-21 science stable
deb https://mirrors.tuna.tsinghua.edu.cn/termux/science-packages-24 science stable
vi $PREFIX/etc/apt/sources.list.d/game.list
# 修改为
# deb https://dl.bintray.com/grimler/game-packages-21 games stable
deb https://mirrors.tuna.tsinghua.edu.cn/termux/game-packages-24 games stable
安装常用工具
pkg update
pkg install curl wget git unzip golang nodejs
开启访问外置存储
# 运行完成后会在家目录生成 storage 目录
# 会把 SD 卡下常用几个目录给链接进去
# 当然也可以使用绝对路径去访问,一般是/storage/emulated/0/
termux-setup-storage
当锁屏后,使用ssh远程连接输命令会特别卡,使用下面命令可以解决
termux-wake-lock
目录结构说明
# 这个相当于根目录
echo $PREFIX
/data/data/com.termux/files/usr
# 这个就是用户目录
echo $HOME
/data/data/com.termux/files/home
由于没有 root 权限,cd / ls
这个命令肯定是执行不了的,对此可以使用下面的命令来模拟
pkg install proot
termux-chroot # 一个新的用户登入,exit退出
cd /
ls -l # 看看有什么变化^o^
可以做什么
目前常见的就是做离线下载用了
常见的语言都是支持的,python,nodejs,golang 等,也可以安装其他二进制包但是注意要是 arm 版本的,所以几乎是可以做任何事情
另外在 windows 上交叉编译 golang 到 android 上运行可以使用下面的参数
set GOOS=linux
set GOARCH=arm
另外如果想公网访问可以使用 Ngrok 等服务