远程手机搭建Termux环境,并通过ssh连接Termux

news2024/9/20 18:33:01

背景

  • 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连接了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1437574.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

51 -25 Scene as Occupancy 3D占用作为场景表示 论文精读

本文阅读的文章是Scene as Occupancy,介绍了一种将物体表示为3D occupancy的新方法,以描述三维场景,并用于检测、分割和规划。 文章提出了OccNet和OpenOcc两个核心概念。 OccNet 3D占用网络是一种以多视图视觉为中心的方法,通过…

ArcGIS的UTM与高斯-克吕格投影分带要点总结

UTM(通用横轴墨卡托投影、等角横轴割椭圆柱投影)投影分带投影要点: 1)UTM投影采用6度分带 2)可根据公式计算,带数(经度整数位/6)的整数部分31 3)北半球地区&#xff0…

《PCI Express体系结构导读》随记 —— 第II篇 第4章 PCIe总线概述(9)

接前一篇文章:《PCI Express体系结构导读》随记 —— 第II篇 第4章 PCIe总线概述(8) 4.2 PCIe体系结构的组成部件 PCIe总线作为处理器系统的局部总线,其作用与PCI总线类似,主要目的是为了连接处理器系统中的外部设备&…

【iOS分类、关联对象】如何使用关联对象给分类实现一个weak的属性

如何使用关联对象给分类实现一个weak的属性 通过关联对象objc_setAssociatedObject中的策略policy可知,并不支持使用weak修饰对象属性: typedef OBJC_ENUM(uintptr_t, objc_AssociationPolicy) {OBJC_ASSOCIATION_ASSIGN 0, //assignOBJC_ASSOCIATION…

Java基于微信小程序的医院挂号系统

文章目录 1 简介2 技术栈3 系统目标3.2 系统功能需求分析3.2.1 功能需求分析 4 系统模块设计4.1 数据库模块设计 5 系统的实现5.1 微信小程序个人中心5.2 科**室内容查看的实现**5.3 预约挂号的实现5.4 后台管理界面实现5.5 医生预约管理5.6 医生信息管理 参考文献7 推荐阅读8 …

Cocos creator 3.x 刚体组件碰撞无效

Cocos creator 3.x 刚体组件碰撞无效 问题描述:只有一个circleCollider2D时,可以在碰撞时正确输出结果,但是当我在外围加了一个circle之后,期望character进入圆圈范围时就触发方法,此时原代码失效 import { _decorat…

java SpringBoot2.7整合Elasticsearch(ES)7 进行文档增删查改

首先 我们在 ES中加一个 books 索引 且带有IK分词器的索引 首先 pom.xml导入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-elasticsearch</artifactId> </dependency>applicatio…

Asp .Net Core 集成 NLog

简介 NLog是一个基于.NET平台编写的日志记录类库&#xff0c;它可以在应用程序中添加跟踪调试代码&#xff0c;以便在开发、测试和生产环境中对程序进行监控和故障排除。NLog具有简单、灵活和易于配置的特点&#xff0c;支持在任何一种.NET语言中输出带有上下文的调试诊断信息…

正确入市时机3秒抓住,WeTrade众汇无偿实例分享

在上篇文章中&#xff0c;WeTrade众汇无偿分享如何3秒抓住正确入市的时机&#xff0c;今天让我们通过一个例子来验证这个策略的正确性。 对于突破策略&#xff0c;WeTrade众汇用了同样的图表来演示挤压交易。蓝色箭头表示变窄的区域&#xff0c;红色箭头表示烛台穿过下层。当它…

代码随想录 Leetcode46. 全排列

题目&#xff1a; 代码&#xff08;首刷自解 2024年2月6日&#xff09;&#xff1a; class Solution { private:vector<vector<int>> res;vector<int> path; public:void backtracking(vector<int>& nums, int depth, vector<bool>& us…

三月济南举办2024第八届生物饲料高质量发展论坛

饲料工业发展空间大&#xff0c;产量持续增长&#xff0c;品质与质量也在不断提高&#xff0c;饲料工业是支撑现代畜牧水产养殖业发展的基础产业&#xff0c;是关系到城乡居民动物性食品供应的民生产业。“十四五”时期是我国由全面建设小康社会向基本实现社会主义现代化迈进的…

Python中的包模块引用成员的方法

在Python中&#xff0c;包&#xff08;package&#xff09;和模块&#xff08;module&#xff09;是组织和管理代码的重要方式。将代码分成不同的模块或包可以更好地组织代码结构&#xff0c;使代码更易于维护和管理。说的通俗点&#xff0c;就是将代码整理成一块一块&#xff…

计算机服务器中了mkp勒索病毒如何解密,mkp勒索病毒解密流程

随着网络技术的不断发展与应用&#xff0c;越来越多的企业走向数字化办公模式&#xff0c;计算机极大地方便了企业的正常生产运营&#xff0c;但网络威胁的手段也不断增加。近期&#xff0c;云天数据恢复接到很多企业的求助&#xff0c;企业的计算机服务器遭到了mkp勒索病毒攻击…

js中的事件模型详解

文章目录 一、事件与事件流二、事件模型原始事件模型标准事件模型IE事件模型 一、事件与事件流 javascript中的事件&#xff0c;可以理解就是在HTML文档或者浏览器中发生的一种交互操作&#xff0c;使得网页具备互动性&#xff0c; 常见的有加载事件、鼠标事件、自定义事件等 …

红外避障模块

目录 一、模块原理 二、模块使用说明 三、材料准备 四、代码 五、实验效果 实验效果 自动灯效果&#xff1a; 避障模块-CSDN直播 一、模块原理 红外避障模块利用光反射原理&#xff0c;模块前端拥有一个红外发射管和一个红外接收管。模块通电后红外发射管向前方不断发射…

ES监控方法以及核心指标

文章目录 1. 监控指标采集1.1 部署elasticsearch_exporter1.2 prometheus采集elasticsearch_exporter的暴露指标1.3 promethues配置告警规则或者配置grafana大盘 2. 核心告警指标2.1 es核心指标2.2 es容量模型建议 3. 参考文章 探讨es的监控数据采集方式以及需要关注的核心指标…

Linux--文件

文件的基本信息 文件是计算机系统中存储数据的一种单位。 它可以是文本、图像、音频、视频等信息的载体。文件通常以特定的格式和拓展名来表示其内容和类型。 在计算机系统中&#xff0c;文件使用文件名来唯一标识和访问。文件可以被创建、读取、写入、复制、移动、删除等操作…

《Java程序设计》实验报告(二)之面向对象编程基础

实验内容及步骤&#xff1a; 编写不带构造函数的类并测试。&#xff08;学生类、圆类&#xff09;&#xff08;1&#xff09;代码&#xff1a; class Student { String name"张三"; int age20; String sex"男";//gender String getName(){…

鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之RichText组件

鸿蒙&#xff08;HarmonyOS&#xff09;项目方舟框架&#xff08;ArkUI&#xff09;之RichText组件 一、操作环境 操作系统: Windows 10 专业版、IDE:DevEco Studio 3.1、SDK:HarmonyOS 3.1 二、RichText组件 鸿蒙&#xff08;HarmonyOS&#xff09;富文本组件&#xff0c;…

鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之Video媒体组件

鸿蒙&#xff08;HarmonyOS&#xff09;项目方舟框架&#xff08;ArkUI&#xff09;之Video媒体组件 一、操作环境 操作系统: Windows 10 专业版、IDE:DevEco Studio 3.1、SDK:HarmonyOS 3.1 二、Video媒体组件 用于播放视频文件并控制其播放状态的组件。 子组件 无 接口…