当前位置: 首页 > 后端技术 > Node.js

Node-Web-Console——基于Node.js的webshell

时间:2023-04-03 13:59:59 Node.js

Node-Web-Console(以下简称NWC)是一款基于Node.js开发的webshell应用。其思路来自于实验室SDN相关项目的一次小组会议讨论,需求大致是在网页中嵌入一个shell,然后直接从首页显示的网络拓扑中进入虚拟机节点进行简单管理.具体实现参考web-console,一个基于世界上最好的语言开发的项目。先来个界面截图吧:从使用体验来看,NWC和真壳没有太大区别。当然多亏了jquery.terminal插件的努力。从实现原理来看,NWC(和web-console)并不复杂,其底层通信是基于HTTP协议之上的JSON-RPC2.0规范实现的。JSON-RPC是一种无状态的轻量级远程过程调用(RPC)协议。不太了解的同学可以参考JSON-RPC2.0Specification或者中文翻译。NWC后台服务器收到用户输入的命令后,启动子进程并执行,然后返回结果。此外,NWC还具有以下特点:易于配置。NWC基于Node.js开发,安装依赖->启动服务器->完成!非常方便和移动友好。NWC部署后,支持移动设备访问和操作页面(当然需要牺牲自动补全等功能),随时随地访问真实服务器,易于扩展。项目基于Koa开发,尽量少用中间件。您可以轻松扩展它或将其集成到您自己的项目中,以获得高安全系数。NWC要求用户在使用前先登录,其页面被标记为不被搜索引擎索引。您还可以为您的服务器配置HTTPS以进一步提高安全系数。当然,NWC也存在一些问题,比如无法执行vi、ping等命令,需要等待用户输入或者无休止地执行一些操作。这是因为NWC当前版本底层通信的RPC是基于HTTP的,其特性决定了服务端只能被动响应客户端的请求,不能主动多次推送结果。下一次迭代将尝试通过用websockets替换HTTP来解决这个问题。最后,项目地址在这里:https://github.com/ChrisCindy...(也可以直接点我)。欢迎使用,欢迎拍砖。