远程手机搭建Termux环境,并通过ssh连接Termux
背景
- Termux只能通过鼠标点击,无法使用电脑键盘,输入速度很慢,你想通过ssh 连接Termux,获得友好体验
- 搞了个云手机,想像普通手机那样充当服务器
- 想把自己的手机公开到局域网中供同事调试
- 想把自己的模拟器公开到局域网中供同事调试
step 1 搞一台云手机
先搞到一台云手机(也就是在线云机,远程云手机,云测手机),这些云手机通常都是跑在服务端的模拟器(也有真机)
step2 配置Termux
- 进入云机,安装Termux
- 打开Termux 安装sshd,命令
pkg install openssh - 生成ssh密钥,命令
ssh-keygen -A - 执行
whoami - 设置登录密码,命令
passwd,按提示输入 - 启动sshd服务,命令
sshd
至此,你的Termux控制台应该已经成功的启动了sshd服务,它运行的默认端口是:8022,不是通常的22端口
step 3 怎么连接到云机内网的Termux开启的ssh服务
完成setp2后,你会突然发现一个问题,这些云手机通常都不具备公网ip,她们位于服务器电脑的虚拟机中,所以,你无法直接通过公网连接到Termux。
怎么办?
关键点在于,既然我们能访问到处于内网的云机,所以,它必定和出网口机器存在通信。
这个通信方式通常是类似这样的实现:
- 云机模拟器所有网络请求走到服务器电脑上,服务器电脑代为发送
- 服务器电脑收到的所有网络请求,属于模拟器的,进行转发
这种技术,通常有端口转发、虚拟网卡等。
这时候,咦!你发现了哗点
-
那我去服务器电脑上,设置端口转发到云机模拟器系统的Termux 的ssh服务不就好了?
-
是的,你可以这么做,包括
个人电脑上的模拟器,你也可以这么进行操作,从而开放到局域网、公网上,使大家都可以访问到! -
然后你发现,你登录不到服务器对应的电脑(通常云机服务商,不会直接提供服务器登录),所以你颓然了。
但其实,获取还有一个办法
那就是adb调试
step 4 Adb的妙用
adb 是一个安卓开发工具,是安卓调试桥的缩写。它实现了一个通信协议(socket实现),能够连接到手机中,进行apk安装,发送系统广播,执行命令等,许多投屏软件如scrcpy、乃至云手机厂商等就是通过这个方式来投屏或传输信息以及前后台通信……
等等,执行命令,你突然一个鸡灵!如果,如果,能够连接adb,那这不就是任意命令执行权限了吗?而且云机通常开启了root,这……
是的,没错,具备adb连接方法的云手机,就是这么狂,就是这么猛,可以执行任意命令。
所以,你可以通过adb命令执行端口转发,将个人本机电脑的某个端口和云手机模拟器系统的8022端口关联起来,不需要登录到服务器电脑进行操作,adb帮你操作了。
step 5 如何获取adb调试地址
如果你是远程云机:
- 连接进入云手机。获取到云机的adb远程调试地址(部分云测厂商提供)
- 未提供的尝试抓包,看是否存在一个一直在交换数据的socket连接,然后获取到连接地址
如果你是本地真机:
- usb连接电脑,开启开发者调试模式
- adb devices
step6 ADB转发本机电脑端口上的网络请求到云手机内网端口8022
你得到了一个adb公网连接地址,如18.23.22.37:3200
- adb 连接云机,命令:
adb connect 18.23.22.37:3200 - adb 转发本机端口8021到云机端口8022,
adb -s 18.23.22.37:3200 forword tcp:8021 tcp:8022,如果你只连接了一个设备,可以省略-s 18.23.22.37:3200 ,否则不能忽略,因为adb不知道你要对那个设备进行操作 - 打开你的ssh连接工具,你可以登录到Termux了
连接地址:127.0.0.1(因为转发到自己的电脑上了)
端口:8021 (执行命令时设置的转发端口,不一定是8022)
用户:去Termux上执行命令获取:whoami
使用命令行登录:ssh -X 用户@127.0.0.1:8021
大功告成,贴图

step7 狗尾续貂
远程云机都成功公开出去了,真机、模拟器还不简单?
对于模拟器:
- 一般市面上的模拟器启动的时候,会自行占用一个端口,将本机电脑某个端口转发到模拟器端口
- 电脑开启防火墙
也有的模拟器不需要转发,它已经开启了wifi调式。
判断标准是,adb device,带有ip地址的一般可以直接连接了。
不带ip地址的,需要寻找其端口。如android官方的模拟器,一般叫做emulator-5554,那么其端口就是5555,电脑转发127.0.0.1:xxx端口到这个端口就行
对于真机:
- 打开调式模式连接到电脑
- 同样adb设置转发到真机
- 电脑开启防火墙,让外部请求进入电脑,局域网or公网的兄弟就能访问到你的手机了
当然,也可以不进行转发,因为通过wifi调式,真机在局域网内也是可以通信的:
adb -s 设备id tcpip 6666
其他人电脑上执行:
adb connect 手机pi:6666
然后其他兄弟就可以连接到你手机上进行apk调式,安装termux,最后ssh连接了
相关文章:
远程手机搭建Termux环境,并通过ssh连接Termux
背景 Termux只能通过鼠标点击,无法使用电脑键盘,输入速度很慢,你想通过ssh 连接Termux,获得友好体验搞了个云手机,想像普通手机那样充当服务器想把自己的手机公开到局域网中供同事调试想把自己的模拟器公开到局域网中…...
基于EdgeWorkers的边缘应用如何进行单元测试?
随着各行各业数字化转型的持续深入,越来越多企业开始选择将一些应用程序放在距离最终用户更近的边缘位置来运行,借此降低延迟,提高应用程序响应速度,打造更出色的用户体验。 相比传统集中部署和运行的方式,这种边缘应…...
【linux】校招中的“熟悉linux操作系统”一般是指达到什么程度?
这样,你先在网上找一套完整openssh升级方案(不是yum或apt的,要源码安装的),然后在虚拟机上反复安装测试,直到把他理解了、背下来。 面试的时候让你简单说说linux命令什么的,你就直接把这个方案…...
【CSS系列】常用容易忽略的css
user-select user-select 是一个 CSS 属性,用于控制用户是否可以选择文本。通过设置 user-select 的值,可以决定用户是否可以选择元素中的文本,以及如何选择文本。 auto:默认值。浏览器可以选择文本。none:用户不能选…...
Java 数据结构 二叉树(二)红黑树
目录 数据结构图-树 简介 规则 旋转 重新着色 红黑树构建过程 前言-与正文无关 生活远不止眼前的苦劳与奔波,它还充满了无数值得我们去体验和珍惜的美好事物。在这个快节奏的世界中,我们往往容易陷入工作的漩涡,忘记了停下脚步…...
React18-完成弹窗封装
弹框封装 用法 // 创建 userRef.current?.open(create) // 修改 userRef.current?.open(edit,values){/* 创建用户 */} <CreateUser mRef{userRef} update{} />组件暴露open方法 文档地址:https://react.dev/reference/react/useImperativeHandle useIm…...
蓝桥杯2024/1/31-----底层测试模板
和之前一样建好工程文件夹,里边包含User(放工程文件,mian.c)、Driver(存放底层文件如Led.c,Led.h等) 新建的工程先搭建框架,可以先书写底层函数(此次书写了四个函数并包含…...
蓝桥杯备战(AcWing算法基础课)-高精度-乘-低精度
目录 前言 1 题目描述 2 分析 2.1 关键代码 2.2 关键代码分析 3 代码 前言 详细的代码里面有自己的理解注释 1 题目描述 给定两个非负整数(不含前导 00) A 和 B,请你计算 AB 的值。 输入格式 共两行,第一行包含整数 A&a…...
C++设计模式-里氏替换原则
里氏替换原则定义了继承规范。(封装、继承、多态) 定义1:类型S对象o1,类型T对象o2,o1换成o2时程序意图不变,那么S是T的子类。 定义2:使用子类不破坏父类的意图。 注意:如果子类不…...
compose LazyColumn + items没有自动刷新问题
val dataLists by remember { mutableStateOf(datas) } 数据更改后列表不刷新问题。 val dataLists by remember { mutableStateOf(datas) } LazyColumn(modifier Modifier.padding(top 5.dp)) {items(dataLists) {....}} 可以将mutableStateOf 改为mutableStateListOf解决…...
Java八大常用排序算法
1冒泡排序 对于冒泡排序相信我们都比较熟悉了,其核心思想就是相邻元素两两比较,把较大的元素放到后面,在一轮比较完成之后,最大的元素就位于最后一个位置了,就好像是气泡,慢慢的浮出了水面一样 Jave 实现 …...
编程笔记 html5cssjs 075 Javascript 常量和变量
编程笔记 html5&css&js 075 Javascript 常量和变量 一、JavaScript 变量二、JavaScript 常量三、示例:小结: 在JavaScript中,变量和常量是用来存储数据的占位符。它们的主要区别在于可变性:变量的值可以改变,而…...
题目 1159: 偶数求和
题目描述: 有一个长度为n(n<100)的数列,该数列定义为从2开始的递增有序偶数(公差为2的等差数列),现在要求你按照顺序每m个数求出一个平均值,如果最后不足m个,则以实际数量求平均值。编程输出该平均值序…...
呼吸灯--FPGA
目录 1.breath_led.v 2.tb_breath_led.v 呼吸灯就是从完全熄灭到完全点亮,再从完全点亮到完全熄灭。具体就是通过控制PWM的占空比控制亮灭程度。 绘制PWM波的步骤就是,首先灯是在第一个时钟周期保持高电平熄灭状态,在第二个时钟周期保持1/1…...
MySQL数据库①_MySQL入门(概念+使用)
目录 1. 数据库的概念 1.1 数据库的存储介质 1.2 主流数据库 2. MySQL的基本使用 2.1 链接数据库 2.2 服务器管理 2.3 数据库,服务器和表关系 2.4 简单MySQL语句 3. MySQL架构 4. SQL分类 5. 存储引擎 本篇完。 1. 数据库的概念 数据库是按照数据结构来…...
虚幻UE 特效-Niagara特效实战-魔法阵
回顾Niagara特效基础知识:虚幻UE 特效-Niagara特效初识 其他四篇实战:UE 特效-Niagara特效实战-烟雾、喷泉、 虚幻UE 特效-Niagara特效实战-火焰、烛火、 虚幻UE 特效-Niagara特效实战-雨天、 虚幻UE 特效-Niagara特效实战-眩晕。 本篇笔记记录了使用空模…...
Qt多语言翻译
Qt多语言翻译概述 Qt提供了非常简单易用的多语言翻译机制,其核心类为QTranslator.概括来说就是利用Qt的lupdate工具将项目中所有tr函数包裹的字符串提取到.ts文件中,然后使用Qt Linguist由专门的翻译人员对提取的.ts文件进行逐个单词短语的翻译工作. 翻译…...
Latex学习记录
目录 1.Latex各种箭头符号总结 2.[Latex]公式编辑,编号、对齐 3.Latex公式编号: 多行公式多编号,多行公式单编号 4.LaTex中输入空格以及换行 1.Latex各种箭头符号总结 箭头符号 - ➚ (piliapp.com)https://cn.piliapp.com/symbol/arrow/Latex各种箭头…...
你在做绩效考核,还是绩效管理?二者有什么区别
绩效考核,为什么99%都失败,最后一地鸡毛?败在指标! 绩效管理,为什么大多数企业都能成功,而且越做越好?成在目标! 丢掉层层指标,人人制定目标,这是企业重新定…...
ele-h5项目使用vue3+vite+vant4开发:第四节、业务组件-SearchView组件开发
需求分析 展示切换动画搜索框输入文字,自动发送请求搜索结果展示搜索状态维护历史搜索展示,点击历史搜索后发送请求历史搜索更多切换动画效果 <script setup lang"ts"> import OpSearch from /components/OpSearch.vue import { ref } f…...
R语言AI模型部署方案:精准离线运行详解
R语言AI模型部署方案:精准离线运行详解 一、项目概述 本文将构建一个完整的R语言AI部署解决方案,实现鸢尾花分类模型的训练、保存、离线部署和预测功能。核心特点: 100%离线运行能力自包含环境依赖生产级错误处理跨平台兼容性模型版本管理# 文件结构说明 Iris_AI_Deployme…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院挂号小程序
一、开发准备 环境搭建: 安装DevEco Studio 3.0或更高版本配置HarmonyOS SDK申请开发者账号 项目创建: File > New > Create Project > Application (选择"Empty Ability") 二、核心功能实现 1. 医院科室展示 /…...
基于当前项目通过npm包形式暴露公共组件
1.package.sjon文件配置 其中xh-flowable就是暴露出去的npm包名 2.创建tpyes文件夹,并新增内容 3.创建package文件夹...
华为云Flexus+DeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建
华为云FlexusDeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建 前言 如今大模型其性能出色,华为云 ModelArts Studio_MaaS大模型即服务平台华为云内置了大模型,能助力我们轻松驾驭 DeepSeek-V3/R1,本文中将分享如何…...
学校时钟系统,标准考场时钟系统,AI亮相2025高考,赛思时钟系统为教育公平筑起“精准防线”
2025年#高考 将在近日拉开帷幕,#AI 监考一度冲上热搜。当AI深度融入高考,#时间同步 不再是辅助功能,而是决定AI监考系统成败的“生命线”。 AI亮相2025高考,40种异常行为0.5秒精准识别 2025年高考即将拉开帷幕,江西、…...
重启Eureka集群中的节点,对已经注册的服务有什么影响
先看答案,如果正确地操作,重启Eureka集群中的节点,对已经注册的服务影响非常小,甚至可以做到无感知。 但如果操作不当,可能会引发短暂的服务发现问题。 下面我们从Eureka的核心工作原理来详细分析这个问题。 Eureka的…...
SQL慢可能是触发了ring buffer
简介 最近在进行 postgresql 性能排查的时候,发现 PG 在某一个时间并行执行的 SQL 变得特别慢。最后通过监控监观察到并行发起得时间 buffers_alloc 就急速上升,且低水位伴随在整个慢 SQL,一直是 buferIO 的等待事件,此时也没有其他会话的争抢。SQL 虽然不是高效 SQL ,但…...
NPOI操作EXCEL文件 ——CAD C# 二次开发
缺点:dll.版本容易加载错误。CAD加载插件时,没有加载所有类库。插件运行过程中用到某个类库,会从CAD的安装目录找,找不到就报错了。 【方案2】让CAD在加载过程中把类库加载到内存 【方案3】是发现缺少了哪个库,就用插件程序加载进…...
MySQL 索引底层结构揭秘:B-Tree 与 B+Tree 的区别与应用
文章目录 一、背景知识:什么是 B-Tree 和 BTree? B-Tree(平衡多路查找树) BTree(B-Tree 的变种) 二、结构对比:一张图看懂 三、为什么 MySQL InnoDB 选择 BTree? 1. 范围查询更快 2…...
QT开发技术【ffmpeg + QAudioOutput】音乐播放器
一、 介绍 使用ffmpeg 4.2.2 在数字化浪潮席卷全球的当下,音视频内容犹如璀璨繁星,点亮了人们的生活与工作。从短视频平台上令人捧腹的搞笑视频,到在线课堂中知识渊博的专家授课,再到影视平台上扣人心弦的高清大片,音…...
