嵌入式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