說明
基於 python3.7 + django 2.2.3 實現的 django-webtelnet。有興趣的同學可以在此基礎上稍作修改集成到自己的堡壘機中。
項目地址:https://github.com/leffss/django-webtelnet
所需技術:
- websocket,django-channels 為 django 提供 websocket 支持
- xterm.js 前端模擬 shell 終端的一個庫
- telnetlib,python 自帶的一個 telnet 連接庫
如何將所需技術整合起來?
- xterm.js 在瀏覽器端模擬 shell 終端, 監聽用戶輸入通過 websocket 將用戶輸入的內容上傳到 django
- django 接受到用戶上傳的內容, 將用戶在前端頁面輸入的內容通過 telnetlib 建立的 telnet 通道上傳到遠程服務器執行
- telnetlib 將遠程服務器的處理結果返回給 django
- django 將 telnetlib 返回的結果通過 websocket 返回給用戶
- xterm.js 接收 django 返回的數據並將其寫入前端頁面
目前存在的問題
由於 telnetlib 庫的原因,終端無法顯示顏色已經動態改變大小
啟動
pip3 install -r requirements.txt
cd django-webtelnet/webtelnet/
python3 manage.py runserver 0.0.0.0:8000
預覽






