求幫神器之遠(yuǎn)程實(shí)時(shí)終端
當(dāng)你寫(xiě)代碼時(shí)遇到問(wèn)題了,如果大佬離你比較近,你可以拿著筆記本電腦去現(xiàn)場(chǎng)請(qǐng)教,如果比較遠(yuǎn)呢?你可能會(huì)視頻聊天,然后讓大佬遙控你,但是這樣就存在一個(gè)問(wèn)題,大佬需要用語(yǔ)言來(lái)表達(dá)他要進(jìn)行的操作,非常低效。
不如直接發(fā)個(gè) url 給他,他打開(kāi)后,可以看到一個(gè)終端,和你看到的終端一模一樣,他的操作你完全可以看到,就像終端是共享的一樣,如下視頻所示:
這個(gè)工具就是 termpair,1 分鐘就可以完成安裝和使用,需要 Python3.6 以上,不過(guò)僅支持 Linux 和 MacOS,畢竟 Windows 那不叫 terminal。
GitHub 鏈接: https://github.com/cs01/termpair
安裝
- pip install termpair
啟動(dòng)
先啟動(dòng)服務(wù)
- termpair serve
你會(huì)看到服務(wù)已經(jīng)啟動(dòng):
然后在需要共享的終端里面執(zhí)行:
- termpair share
即可生成一個(gè) url:
然后將這個(gè) url 發(fā)給大佬,他和你就共享這個(gè)終端了,是不是一個(gè)求幫助的神器啊,他的操作對(duì)你完全可見(jiàn),你的操作對(duì)他也完全可見(jiàn):
如果不是局域網(wǎng)呢,那么就需要公網(wǎng)訪問(wèn)本地的服務(wù)了。要是你本來(lái)就在自己的服務(wù)器上搞開(kāi)發(fā),有自己的公網(wǎng) IP,那就不存在這個(gè)問(wèn)題了。
公網(wǎng)訪問(wèn)
這里推薦一個(gè)免費(fèi)的工具---花生殼,可以把自己的電腦映射為一個(gè)域名,這樣自己電腦的服務(wù),就可以通過(guò)互聯(lián)網(wǎng)訪問(wèn)了。
下載花生殼:
https://hsk.oray.com/download
然后按照這個(gè)教程進(jìn)行配置即可:
https://service.oray.com/question/1360.html
特性
1、實(shí)時(shí)分享 unix 類(lèi)終端。
2、無(wú)論是在終端輸入還是瀏覽器輸入,都是同步更新的。
3、多個(gè)瀏覽器也是同步的。
4、瀏覽器可以設(shè)置只讀權(quán)限。
5、服務(wù)端并不能讀取終端里的數(shù)據(jù),因?yàn)槭褂昧?128 位的 AES(Advanced Encryption Standard,縮寫(xiě):AES)加密算法。
6、可以潛入網(wǎng)站中,輸入 terminal id 和 key 即可連接,比如像這樣:
技術(shù)棧
fastapi,websockets, aiofiles,uvicorn 對(duì)其實(shí)現(xiàn)感興趣的可以去研究下源碼:
https://github.com/cs01/termpair
最后的話
其實(shí)現(xiàn)原理就是 terminal 和 termpair 服務(wù)端通過(guò) websocket 加密通信,然后 termpair 服務(wù)端再和瀏覽器通過(guò) websocket 加密通信。除了遠(yuǎn)程協(xié)助之外,也是一個(gè)很不錯(cuò)的 terminal 工具,比如你可以對(duì)自己的電腦用于遠(yuǎn)程控制。
本文轉(zhuǎn)載自微信公眾號(hào)「Python七號(hào)」,可以通過(guò)以下二維碼關(guān)注。轉(zhuǎn)載本文請(qǐng)聯(lián)系Python七號(hào)公眾號(hào)。