参考资料
目录
- 一. 简介
- 二. 初始化配置
-
- 2.1 开启`Termux`开启存储
- 2.2 安装`termux-services`
-
- 2.2.1 `sv-enable` 与 `sv up`的区别
- 2.3 安装并开启ssh服务
- 2.4 查看用户名与设置密码
- 2.5 查看Termux的局域网ip
- 2.6 保持Termux唤醒
- 三. 免密登录配置
- 四. 电脑远程连接手机的Termux
- 五. 自定义ssh登录画面
- 六. 修改终端修饰符
一. 简介
⏹Termux 是 Android 上的 Linux 终端环境,它让手机变为一个迷你 Linux 服务器,可以在手机上直接运行:
-
Linux 命令(ls、cp、grep、ssh、rsync…)
-
各种编程语言(Python、Node.js、PHP、Go…)
-
各种服务器(SSH、SFTP、HTTP、代理服务器…)
-
包管理工具(pkg、apt)
Termux 的其本质是:把 Linux 用户空间带到安卓手机里,并且手机不需要 root。
⏹Termux还可以配合Termux:API访问手机硬件(需要另外安装Termux:API),安装后可以实现如下功能:
-
读写剪贴板
-
读取定位
-
发通知
-
震动
-
控制亮度
-
读取短信
-
打开相机
-
调用系统分享
⏹官网下载
- https://termux.dev/cn/index.html
- https://github.com/termux/termux-app/releases
二. 初始化配置
⏹安装之后,软件的启动页面如下所示

2.1 开启Termux开启存储
termux-setup-storage
2.2 安装termux-services
⏹默认情况下,Termux 的程序 只要离开终端(例如我们将手机锁屏)就会终止。 而安装 termux-services 后就可以让在Termux后台一直运行,termux-services,是一个 服务管理框架,可以在 Termux 中:
- 创建自己的后台服务
- 让服务在后台持续运行
- 使用简单命令管理服务(start/stop/restart)
- 服务不需要保持终端打开
pkg install termux-services
💥安装完成之后,需要重启Termux
⏹termux-services的主要命令
# 启用服务
sv-enable 服务名
# 禁用服务
sv-disable 服务名
# 启动服务
sv up 服务名
# 停止服务
sv down 服务名
# 重启服务
sv restart 服务名
# 查看服务状态
sv status 服务名
2.2.1 sv-enable 与 sv up的区别
- sv-enable → 【把服务加入后台管理体系 + 启动】
- sv up → 【启动服务(前提是已经被管理)】
⏹当我们通过sv-enable <服务名>启动服务时,termux-services会帮我们做两件事
- 把服务注册到 runit 管理中# 只有在 var/service 中的服务才会被 runit 管理。
$PREFIX/var/service/<服务名> → $PREFIX/etc/sv/<服务名> - 启动服务(让服务后台运行)# 相当于在后台执行下面的命令
sv up 服务名
⏹当我们通过sv up <服务名>启动服务时
- 前提:服务必须已 enable
- 只会启动已经被 runit 接管的服务,不会 enable,不会创建 symlink
- 如果服务在 $PREFIX/var/service 中不存在(未 enable),sv up 会报错或无效。
2.3 安装并开启ssh服务
⏹安装openssh
pkg install openssh
⏹通过termux-services启动 ssh-agent 后台服务
sv-enable ssh-agent
# 查看ssh-agent状态
sv status ssh-agent
# 停止ssh-agent服务
sv down ssh-agent
⏹通过termux-services启用sshd(SSH服务)自动启动 💥Termux 默认 SSH 端口是 8022
sv-enable sshd
# 查看sshd状态
sv status sshd
⏹当我们的服务安装完成之后,都存储在下面的路径中。
~ $ ls -l "$PREFIX/var/service"
drwx——. 4 u0_a362 u0_a362 3488 Nov 25 08:40 ssh-agent
drwx——. 4 u0_a362 u0_a362 3488 Nov 25 08:43 sshd
2.4 查看用户名与设置密码
⏹通过下面的命令查看当前的用户名
whoami
⏹设置当前用户名对应的密码
passwd
2.5 查看Termux的局域网ip
ifconfig
2.6 保持Termux唤醒
⏹通过下面的命令,防止Android 休眠导致网络断开,保持唤醒。
termux-wake-lock
⏹APP的通知栏中也提供了保持Termux唤醒的功能。

⏹还需要在TermuxAPP的启动管理设置中进行如下设置(不同手机的设置位置不同)
- 禁止手机对其自动管理
- 还需要设置app允许在后台运行
- 需要允许自启动
三. 免密登录配置
在这篇文章中,我介绍了 Linux ssh 免密登录配置 的方法,参照其配置后,可免密登录,此处只简单展示重点命令。
- 将本机(Windows)生成的公钥密钥传输到Termux中
- 由于生成密钥对之后,我将私钥单独放到了另外的文件夹中,所以下面的命令中使用-f指定强制只传输公钥,忽略私钥。
ssh-copy-id -f -i ~/.ssh/id_rsa.pub -p 8022 u0_a362@192.168.3.23
- 然后就可以在使用ssh命令的时候,指定私钥所在的路径,然后就可以实现无密码登录了。
ssh -p 8022 u0_a362@192.168.3.23 -i D:\\id_rsa
四. 电脑远程连接手机的Termux
⏹通过ssh命令,需要密码远程连接Termux
ssh -p 8022 u0_a362@192.168.3.23

⏹指定私钥后,免密登录。
ssh -p 8022 u0_a362@192.168.3.23 -i D:\\id_rsa

⏹每次都使用命令行去登录其实也很繁琐,可以对Windows的terminal进行配置,直接点击登录

五. 自定义ssh登录画面
⏹如果想个性化显示ssh登录画面的话,需要修改两个文件
~ $ ls -l $PREFIX/etc/motd ~/.bashrc
-rw——-. 1 u0_a362 u0_a362 671 Nov 30 19:54 /data/data/com.termux/files/home/.bashrc
-rw——-. 1 u0_a362 u0_a362 826 Nov 30 19:39 /data/data/com.termux/files/usr/etc/motd
⏹修改进入Termux后的Logo
cat > $PREFIX/etc/motd <<'EOF'
████████╗███████╗██████╗ ███╗ ███╗██╗ ██╗██╗ ██╗
╚══██╔══╝██╔════╝██╔══██╗████╗ ████║██║ ██║╚██╗██╔╝
██║ █████╗ ██████╔╝██╔████╔██║██║ ██║ ╚███╔╝
██║ ██╔══╝ ██╔══██╗██║╚██╔╝██║██║ ██║ ██╔██╗
██║ ███████╗██║ ██║██║ ╚═╝ ██║╚██████╔╝██╔╝ ██╗
╚═╝ ╚══════╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝
EOF
⏹显示系统信息
~ $ cat ~/.bashrc
# ===== Fancy Colorful Termux Info =====
RED='\\033[1;31m'
GREEN='\\033[1;32m'
YELLOW='\\033[1;33m'
CYAN='\\033[1;36m'
WHITE='\\033[1;37m'
NC='\\033[0m'
echo -e "${CYAN}=============== System Info ===============${NC}"
# Time
echo -e "${YELLOW}🕒 Time: ${WHITE}$(date +"%Y-%m-%d %H:%M:%S")"
# IP Address
WLAN=$(ifconfig 2>/dev/null | grep 'inet ' | awk '{print $2}' | grep -v 127.0.0.1)
echo -e "${YELLOW}📶 IP(WiFi): ${WHITE}${WLAN:-No WiFi}"
# Storage
STORAGE=$(df -h /storage/emulated/0 | awk 'NR==2 {print $3 "/" $2 " (" $5 ")"}')
echo -e "${YELLOW}💾 Storage: ${WHITE}${STORAGE}"
echo -e "${CYAN}=============================================${NC}"
⏹重启Termux之后,再次ssh连接到Termux后的效果如下

六. 修改终端修饰符
⏹Termux的终端提示符默认是 ~ $ ,没有用户名和主机IP显示。可以在~/.bashrc文件中进行配置
- 在该文件的最后一行添加下面的配置
- $WLAN 变量是在 五. 中介绍过的用户存储ip地址的变量
PS1="\\[\\e[32m\\]\\u\\[\\e[0m\\]@\\[\\e[36m\\]\\$WLAN\\[\\e[0m\\]:\\[\\e[33m\\]\\w\\[\\e[0m\\]\\$ "
⏹配置完成之后,再次登录Termux,可以看到如下效果






