使用ttyd为你的Anroid设备提供web版控制台

嵌入式Android设备,众所周知要调试要开adb,涉及到安全问题通常要走一系列流程,非常复杂,对于维护人员要求比较高。因此考虑有没有一个方便的调试手段。

此外,我们还需要考虑x86的嵌入式设备的方案,最好有类似的方案


1 基本使用

核心组件ttyd (大小约1.5M):
https://github.com/tsl0922/ttyd
支持执行终端本地命令行,并提供web页面供使用者交互。

可选附加组件Trzsz-go(大小约10M,放置到系统执行目录下即可):
https://github.com/trzsz/trzsz-go

./ttyd.arm -W -t enableTrzsz=true -S -C /sdcard/cert.pem -K /sdcard/private.key sh

这样就可以访问设备的网页地址https://192.168.1.100:7681进行测试了。
可以浏览器端直接拖拽上传文件/文件夹,命令行中输入tsz XXX,就可以下载XXX文件或文件夹。

效果演示:

在这里插入图片描述


2 与反向代理集成

在生产环境中,肯定不能这样直接暴露使用,一般都会部署一个nginx作为反向代理入口。

这样的话就不需要对外监听,同时复用反向代理的https即可

./ttyd.arm -i lo -W -t enableTrzsz=true -b /webterminal sh

对应修改nginx.conf,增加以下内容

  location /webterminal {proxy_pass http://127.0.0.1:7681;proxy_http_version 1.1;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection "Upgrade";proxy_request_buffering off;}

可以根据需要增加auth_request和auth_request_set,进行认证拦截。
这样的话访问 https://192.168.1.100/webterminal/ 即可正常访问。

3 扩展

根据ttyd的特性,对于x86,sh改成bash即可;如果使用zsh,那就改成zsh

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

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

相关文章

四、C语言数据类型和变量

目录 1. 数据类型介绍 1.1 字符型 1.2 整型 1.3 浮点型 1.4 布尔类型 1.5 各种数据类型的长度 1.5.1 sizeof 操作符 1.5.2 数据类型长度 2. signed 和 unsigned 3. 数据类型的取值范围 4. 变量 4.1 变量的创建 4.2 变量的分类 5. 算术操作符:、-、*、…

SpringBoot——Quartz 定时任务

优质博文&#xff1a;IT-BLOG-CN 一、Scheduled 定时任务 【1】添加Scheduled相关依赖&#xff0c;它是Spring自带的一个jar包因此引入Spring的依赖&#xff1a; <dependency><groupId>org.springframework</groupId><artifactId>spring-context-su…

MySQL图书管理系统(49-94)源码

-- 九、 子查询 -- 无关子查询 -- 比较子查询&#xff1a;能确切知道子查询返回的是单值时&#xff0c;可以用>&#xff0c;<&#xff0c;&#xff0c;>&#xff0c;<&#xff0c;!或<>等比较运算符。 -- 49、 查询与“俞心怡”在同一个部门的读者的借…

诊所小程序开发,需要包含哪些功能,有什么注意事项?

开发一个诊所预约小程序&#xff0c;可以提高口腔诊所的服务效率和客户体验。那么&#xff0c;一般小程序的流程和功能包含哪些内容&#xff1f; 注册登录&#xff1a;用户可以快速授权并登录(可定制多种登录方式) 预约挂号&#xff1a;用户可以选择科室、医生、日期和时段进行…

为什么不能用System.currentTimeMillis()计算执行时间?

1. 前提概要 System.currentTimeMillis()是系统时间&#xff0c;系统时间修改、闰秒会导致跳动。System.nanoTime()仅用于计算耗时&#xff0c;和系统时间没有强关联。System.nanoTime()单位是纳秒&#xff0c;但不保证有纳秒的精度&#xff0c;但保证精度至少比System.curren…

Unity中Shader指令优化(编译后指令解析)

文章目录 前言一、我们先创建一个简单的Shader二、编译这个Shader&#xff0c;并且打开1、编译后注意事项2、编译平台 和 编译指令数3、顶点着色器用到的信息4、顶点着色器计算的核心部分5、片元着色器用到的信息6、片元着色器核心部分 前言 我们先读懂Shader编译后代码&#…

Linux命令与shell脚本编程大全【读书笔记 + 思考总结】

Linux命令与shell脚本编程大全 第 1 章 初识Linux shellLinux的组成及关系结构图是什么&#xff1f;Linux系统内核的作用是什么&#xff1f;内核的主要功能是什么&#xff1f;&#xff08;4点&#xff09;物理内存和虚拟内存是什么关系&#xff1f;内核如何实现虚拟内存&#x…

php轻量级性能分析工具 xhprof

windows版本 下载xhprof 选择最新的DLL版本&#xff0c;我写的时候最新的DLL版本是 2.3.5&#xff0c;将里面的 php_xhprof.dll 文件复制到php的扩展目录ext中。下载tgz版本&#xff0c;在同一个位置下载最新版本的即可&#xff0c;主要原因是dll版本中缺少 xhprof_html 和 xh…

Swagger各版本访问地址

2.9.x 访问地址: http://ip:port/{context-path}/swagger-ui.html 3.0.x 访问地址: http://ip:port/{context-path}/swagger-ui/index.html 3.0集成knife4j 访问地址: http://ip:port/{context-path}/doc.html

Ubuntu中MySQL安装与使用

一、安装教程&#xff1a;移步 二、通过sql文件创建表格&#xff1a; 首先进入mysql&#xff1a; mysql -u 用户 -p 回车 然后输入密码source sql文件&#xff08;路径&#xff09;;上面是sql语句哈&#xff0c;所以记得加分号。 sql文件部分截图&#xff1a; 创建成功后的部…

【android开发-04】android中activity的生命周期介绍

1&#xff0c;返回栈 android中使用任务task来管理activity&#xff0c;一个任务就是一组存放在栈里的活动的集合&#xff0c;这个栈被称为返回栈。栈是一种先进先出的数据结构。当我们启动一个新的活动&#xff0c;他会在返回栈中人栈&#xff0c;并处以栈顶的位置&#xff0…

浮点运算误差

输出所有形如aabb的4位完全平方数&#xff08;即前两位数字相等&#xff0c;后两位数字也相等&#xff09; 解决这个问题首先需要表示aabb这个变量&#xff0c;只需要定义一个变量n存储即可&#xff0c;另一个问题就是如何判断n是否为完全平方数&#xff1f; 第一种思路是先求出…

【python学习】Python 线程编程(类内多线程编程)

Python线程编程&#xff08;类内多线程编程&#xff09; 文章目录 Python线程编程&#xff08;类内多线程编程&#xff09;多线程编程的函数Function级多线程编程class级多线程编程进阶 类内多线程 多线程可以同时执行一段代码的多个程序。使用多线程可能使程序运行速度更快。 …

前端常见Linux操作命令

压缩文件 压缩 dist文件为dist.tar.gz tar -czvf dist.tar.gz dist 解压文件 tar -xzvf dist.tar.gz 列出目前工作目录所含的文件及子目录 ls 显示当前目录中的所有文件和目录&#xff0c;包括隐藏文件 ls -a 显示文件和目录的详细信息 它以长格式显示目录内容&#xff0c;包…

【Python表白系列】无限弹窗,满屏表白代码来啦(完整代码)

文章目录 满屏表白代码环境需求完整代码详细分析系列文章 满屏表白代码 环境需求 python3.11.4PyCharm Community Edition 2023.2.5pyinstaller6.2.0&#xff08;可选&#xff0c;这个库用于打包&#xff0c;使程序没有python环境也可以运行&#xff0c;如果想发给好朋友的话需…

TypeScript 的安装与使用

npm i typescript -g依赖会安装 tsc 命令 tsc -v初始化 配置 tsc --init生成 tsconfig.json tsconfig.json 配置 要支持 import 模块语法的话 rollup的配置 target 选项需要设置 ES5 module 选项需要改成 es2015 esbuild 的配置 target: ESNext module: ESNext moduleReso…

rust中动态数组Vec的简单使用

在Rust中&#xff0c;Vector&#xff08;简称Vec&#xff09;是一个动态数组数据结构&#xff0c;它可以动态地增加或减少其容量。Vec是Rust标准库中的一个常见类型&#xff0c;非常适合用于存储和操作一系列相同类型的值。 Vec其实是一个智能指针&#xff0c;用于在堆上分配内…

2022年1月14日 Go生态洞察:Go 1.18 新教程探索

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页——&#x1f405;&#x1f43e;猫头虎的博客&#x1f390; &#x1f433; 《面试题大全专栏》 &#x1f995; 文章图文…

绩效考核管理项目|记录2

给界面添加筛选条件并且把搜索功能实现 这段代码写入搜索方法里面就能实现功能。 private void bingdgv(){//筛选项&#xff1a;用户名、职位代码、是否辞职string userName txtUserName.Text.Trim();int baseTypeId (int)base_cbx.SelectedValue;bool isStop isdel_ckb.Che…

苍穹外卖--订单状态定时处理

通过定时任务每分钟检查一次是否存在支付超时订单&#xff08;下单后超过15分钟仍未支付则判定为支付超时订单&#xff09;&#xff0c;如果存在则修改订单状态为“已取消”通过定时任务每天凌晨1点检查一次是否存在“派送中”的订单&#xff0c;如果存在则修改订单状态为“已完…