求幫神器之遠程實時終端
當你寫代碼時遇到問題了,如果大佬離你比較近,你可以拿著筆記本電腦去現場請教,如果比較遠呢?你可能會視頻聊天,然后讓大佬遙控你,但是這樣就存在一個問題,大佬需要用語言來表達他要進行的操作,非常低效。
不如直接發個 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 工具,比如你可以對自己的電腦用于遠程控制。
本文轉載自微信公眾號「Python七號」,可以通過以下二維碼關注。轉載本文請聯系Python七號公眾號。