使用电脑连接(挂载)手机上Termux中的文件系统
本文最后更新于:2024年2月16日星期五下午3点57分
背景
事情背景是这样的:之前在Termux里安了个Kali系统(就是前面那些文章所写的“Nethunter”),为了操作方便,就用vncviewer在电脑上同时操作两个系统(一个是平板上装的Kali,一个是电脑自身的Ubuntu),再结合VScode的连接服务器功能,可以很好的实现打代码和查资料分离(不然我的电脑本身的内存不太够用hhh)。在电脑上查好东西,立刻切换到Nethunter上的VScode打码。但还是有点缺陷:有些时候要传一些图片作为数据处理对象,若还用vscode会显得功能混杂,于是想到了用sshfs进行挂载文件系统的操作。开始折腾。
Termux上的配置
由于在Termux中装Nethunter系统本身的权限不足,无法打开Nethunter中的sshd服务,于是我们需要转而打开Termux的sshd服务,步骤如下:
在Termux中安装openssh服务:
pkg install openssh
如图为”pkg search openssh”的搜索结果配置密钥以及设置密码(由于我之前已经配过了这里就不展示了)
获取当前用户名称以及更改密码:
由于用户名是Termux赋予的,我们需要用命令whoami来获取当前的用户名,以便后面sshfs连接。

如图,可能Termux赋予的用户名都是u0开头的,假设这里是u0_z666,接着输入passwd u0_z666来更改用户密码,也是后面sshfs要用的。此时打开sshd服务:用命令
sshd即可(如上图)。输入之后没有什么提示,这时我们去到电脑端进行sshfs连接。
电脑端的sshfs配置
首先在电脑上使用命令
sudo apt install sshfs安装sshfs下一步是创建映射文件夹,具体来说有两种情况
将文件夹映射到/mnt/下,在指定目录创建文件夹,如:
sudo mkdir /mnt/Termux构建映射:
sudo sshfs -o follow_symlinks -o reconnect -o allow_other -p 8022 [email protected]:/data/data/com.termux/files/home /mnt/Termux(其中’-o follow_symlinks’表示使用软链接,从而可以通过Termux直接访问手机内存;
‘-o reconnect’表示自动重连,经过测试好像在意外断网的情况下可以尽量避免挂载了该目录的文件管理器卡死情况出现;
‘allow_other’为允许其他用户使用,此选项只有在用sudo时才需要用到;
‘-p 8022’即为sshfs指定服务端的端口号,这里由于Termux开放的ssh端口为8022,故填入8022,该端口号可用命令nmap 192.xxx.xxx.xxx查到,其中’192.xxx.xxx.xxx`’为你的Termux的ip地址,一般来说Termux好像都是这个端口;
‘-p 8022 u0_z666@192.xxx.xxx.xxx:/data/data/com.termux/files/home ‘这段其实和ssh命令是类似的,意思就是先连接到‘u0_z666@192.xxx.xxx.xxx‘上然后把其下的目录’/data/data/com.termux/files/home’映射到本电脑中的’ /mnt/Termux’)将文件夹映射到普通目录(更加简洁)在指定目录创建文件夹,如:
mkdir ~/Termux然后建立映射,命令为:
sshfs -o follow_symlinks -o reconnect -p 8022 [email protected]:/data/data/com.termux/files/home ~/Termux(注意此处不用sudo对应也不用加’-o allow_other’,其它参数都是和上面一样的意思。)
建立完映射后即可在文件管理器中打开Termux的文件系统。
如图,现在Termux中的文件已在电脑上呈现了:

进一步地,我们可以点进到对应的手机图像等存储位置:
- 要取消挂载,若之前是用
sudo进行操作的,则此处使用命令如sudo fusermount -u /mnt/Termux;若之前是以普通用户身份进行操作,则直接使用如fusermount -u ~/Termux即可(注:此处电脑环境为Ubuntu,其他系统请自行进行查找)