相关原理
关键词:WebSocket
; SSH
; Ajax
; Docker
基于Web
的terminal
终端技术主要解决的问题包括:
- 一定程度上取代
xshell
,secureRT
,putty
等ssh
终端,方便运维。 - 一定程度上替代运维堡垒机,具备对运维人员的身份认证、对运维操作的访问控制和审计等功能。
- 方便使用,不受电脑环境影响,甚至可以在移动端使用。
针对下面找到的相关项目,可以总结出两种典型的设计思路:
-
浏览器直接访问每台远程服务器
以go-webconsole项目为例,其数据流向大概为:
浏览器<------>WebSocket------>SSH------>Linux OS
浏览器直接连接远程服务器,建立
WebSocket
连接,将相关认证信息和执行指令通过WebSocket
协议传递到服务器端执行,并接收返回的执行结果。 -
浏览器统一访问一台远程主机,该远程主机连接需要控制的所有远程服务器
wts架构图相比于第一种直接访问远程服务器,这种架构的优势在于安全限制,一般不直接登陆远程服务器,需要跳板机作为中转,可以在中间做好权限控制等功能。
以wts-monit项目为例,其分为两部分,其中
Monitor(wts-monit)
用于Web
端输入以及管理remote clients
, 客户端模块(wts-node
)用于处理monit
发来的指令。Monitor
基于Koa
启动一个WebServer
,再使用WebSocket
与前端实时互推数据。monit
和remote client
之间建立TCP
长连接,client
端掉线后会自动重连。
相关项目
-
语言:php
GitHub star:557
- wts-monit
-
语言:javascript
GitHub star:23+6
-
语言:python
GitHub star:1006
-
语言:java
GitHub star:1832
-
语言:go
GitHub star:7990
-
语言:go
GitHub star:194
-
语言:javascript
GitHub star:4502