200字
使用SSH连接Android上的Termux
2025-12-03
2026-03-15

使用SSH连接Android上的Termux

Termux是安卓系统上的一个Linux终端模拟器,通过SSH连接Termux可实现电脑对手机Linux环境的远程操作。下面将详细说明SSH连接Termux的完整流程。

一、必备工具与环境

操作前需准备相关工具,确保软硬件环境满足要求,常规安卓设备与电脑即可完成配置。

  • Termux应用:这是核心工具,建议从官方渠道(https://termux.dev/)、Google Play商店、Github或F-Droid下载,避免第三方渠道的修改版以保障安全性和稳定性。

  • 网络环境:如果是局域网连接,手机和电脑需处于同一局域网络;如果是远程连接,手机需要能正常访问互联网。

  • 工具准备:Windows系统推荐使用Windterm(免费开源)或系统自带的PowerShell(Windows 10及以上版本已内置SSH客户端);macOS和Linux系统自带终端,直接支持SSH命令,也可使用Windterm;远程连接若采用Zerotier,需准备安卓端Zerotier APK及电脑端Zerotier客户端。

二、Termux配置:开启SSH服务

Termux默认未安装SSH服务,需先在Termux中安装并配置openssh,操作均在Termux应用内完成:

1. 更新软件源并安装openssh

打开Termux后,先执行更新命令确保软件源最新,避免安装依赖冲突:


apt update && apt upgrade -y

命令中的“-y”参数表示自动确认所有安装提示,无需手动输入“y”确认。更新完成后,安装openssh:


apt install openssh -y

2. 查看Termux用户名

Termux默认用户名为随机字符串,先执行whoami命令查看当前默认用户名;


whoami

执行完成后,可以在控制台看到自己当前的用户名。

3. 启动SSH服务并设置密码

SSH服务需要密码验证(默认不允许空密码登录),所以首先要为当前用户设置密码:


passwd

执行命令后,会提示你输入新密码并确认,输入时密码不会显示,输完按回车即可,建议设置一个复杂度适中且容易记忆的密码。

密码设置完成后,启动SSH服务:


sshd

该命令无输出,无报错即表示SSH服务启动成功。Termux重启后SSH服务会停止,需重新执行“sshd”命令启动。

4. 获取安卓设备的IP地址

在Termux中执行ifconfig命令(若执行ifconfig提示“command not found”,需先安装net-tools):


~ $ ifconfig
Warning: cannot open /proc/net/dev (Permission denied). Limited output.
lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  txqueuelen 1000  (UNSPEC)

rmnet_data2: flags=65<UP,RUNNING>  mtu 1432
        inet 10.239.98.137  netmask 255.255.255.252
        unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  txqueuelen 1000  (UNSPEC)

tun0: flags=81<UP,POINTOPOINT,RUNNING>  mtu 2800
        inet 192.168.193.67  netmask 255.255.255.0  destination 192.168.193.67
        unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  txqueuelen 500  (UNSPEC)

wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.49.144.75  netmask 255.255.255.0  broadcast 10.49.144.255
        unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  txqueuelen 3000  (UNSPEC)

~ $ 

上述命令输出了设备当前所有网络接口的信息,各项网络含义及对应IP用途说明如下:

  1. lo(回环接口):本地回环网络,IP为127.0.0.1,仅用于设备内部程序间通信,无法用于SSH连接。

  2. rmnet_data2(移动数据接口):手机开启移动数据时的网络接口,IP为10.239.98.137(示例),属于运营商内网IP,仅可用于移动数据环境下的远程连接(需配合公网穿透)。

  3. tun0(虚拟隧道接口):此处为Zerotier创建的虚拟网络接口,IP为192.168.193.67(示例)。Zerotier在不同系统的实现方式有差异:在安卓系统中,需安装Zerotier APK并授予VPN权限,通过VPN模式创建该虚拟接口;在Linux系统(如Termux或电脑Linux)中,安装Zerotier客户端后会直接创建虚拟网络接口,无需依赖系统VPN框架,但本质均为构建虚拟局域网。该接口的IP属于虚拟局域网IP,可用于跨网络SSH连接。

  4. wlan0(无线局域网接口):手机连接WiFi时的网络接口,IP为10.49.144.75(示例),即局域网IP,是同一WiFi环境下SSH连接的核心IP地址。

根据连接场景选择对应IP:局域网连接优先使用wlan0的IP;远程连接可使用rmnet_data2(移动数据)或tun0(Zerotier虚拟网)的IP。

三、电脑端连接

Windows、macOS、Linux系统的SSH连接核心命令一致,仅客户端启动方式略有差异,具体操作如下:

1. 客户端启动方式

  • Windows系统:打开PowerShell或Windterm(推荐,界面更直观);

  • macOS/Linux系统:打开系统自带终端或Windterm。

2. 统一连接命令与操作

在启动的客户端中执行以下命令,根据连接场景替换对应参数:


ssh 用户名@目标IP -p 8022

参数说明

  • 用户名:通过Termux中whoami命令获取的用户名(如luka);

  • 目标IP:根据场景选择(局域网用wlan0的IP,Zerotier远程用tun0的虚拟IP);

  • -p 8022:指定Termux的SSH默认端口。

示例

局域网连接(用户 luka, 局域网 IP 192.168.3.105):


ssh luka@192.168.3.105 -p 8022

Zerotier远程连接(用户 luka,虚拟IP * 192.168.193.67*):


ssh luka@192.168.193.67 -p 8022

通用验证步骤

  1. 首次连接会提示“Are you sure you want to continue connecting (yes/no/[fingerprint])?”,输入“yes”并回车;

  2. 输入Termux中设置的用户密码(输入时无显示,输完回车);

  3. 连接成功之后会显示以下信息


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. 

Report issues at https://termux.dev/issues 
~ $  

四、SSH服务自启

1. SSH后台运行与自启配置

关闭Termux或断开会话后,SSH服务会默认终止。可通过Termux支持的tmuxnohup工具实现SSH后台运行:

以用tmux为例

tmux为终端复用工具,可创建独立会话,实现SSH服务在关闭Termux后持续运行,且支持断线重连。


# 1. 安装tmux(若未安装)
apt install tmux -y
# 2. 创建并进入命名为sshd的会话
tmux new -s sshd
# 3. 在tmux会话内启动SSH服务(默认监听8022端口)
sshd

执行上述命令后,按下组合键Ctrl + B,松开后按D(Detach),即可脱离会话并保持SSH后台运行。

后续管理命令

  • 重新连接会话:tmux attach -t sshd

  • 查看所有会话:tmux ls

  • 停止SSH服务:重新连接会话后按Ctrl + C,或执行pkill sshd

  • 删除无用会话:tmux kill-session -t sshd

评论