求帮神器——远程实时终端
当你写代码时遇到问题了,如果大佬离你比较近,你可以拿着笔记本电脑去现场请教,如果比较远呢?你可能会视频聊天,然后让大佬遥控你,但是这样就存在一个问题,大佬需要用语言来表达他要进行的操作,非常低效。
不如直接发个 url 给他,他打开后,可以看到一个终端,和你看到的终端一模一样,他的操作你完全可以看到,就像终端是共享的一样,如下视频所示:
这个工具就是 termpair,1 分钟就可以完成安装和使用,需要 Python3.6 以上,不过仅支持 Linux 和 MacOS,毕竟 Windows 那不叫 terminal。
GitHub 链接: https://github.com/cs01/termpair
安装
pip install termpair
启动
先启动服务
termpair serve
你会看到服务已经启动:
然后在需要共享的终端里面执行:
termpair share
即可生成一个 url:
然后将这个 url 发给大佬,他和你就共享这个终端了,是不是一个求帮助的神器啊,他的操作对你完全可见,你的操作对他也完全可见:
如果不是局域网呢,那么就需要公网访问本地的服务了。要是你本来就在自己的服务器上搞开发,有自己的公网 IP,那就不存在这个问题了。
公网访问
这里推荐一个免费的工具---花生壳,可以把自己的电脑映射为一个域名,这样自己电脑的服务,就可以通过互联网访问了。
下载花生壳:
https://hsk.oray.com/download
然后按照这个教程进行配置即可:
https://service.oray.com/question/1360.html
特性
1、实时分享 unix 类终端。
2、无论是在终端输入还是浏览器输入,都是同步更新的。
3、多个浏览器也是同步的。
4、浏览器可以设置只读权限。
5、服务端并不能读取终端里的数据,因为使用了 128 位的 AES(Advanced Encryption Standard,缩写:AES)加密算法。
6、可以潜入网站中,输入 terminal id 和 key 即可连接,比如像这样:
技术栈
fastapi,websockets, aiofiles,uvicorn 对其实现感兴趣的可以去研究下源码:
https://github.com/cs01/termpair
最后的话
其实现原理就是 terminal 和 termpair 服务端通过 websocket 加密通信,然后 termpair 服务端再和浏览器通过 websocket 加密通信。除了远程协助之外,也是一个很不错的 terminal 工具,比如你可以对自己的电脑用于远程控制。
欢迎关注,回复「2048」领取精品资料,每天学习一个 Python 小技术。