python-websocket-shell

webshell
授权协议 MIT
开发语言 PHP Python JavaScript HTML/CSS
所属分类 Web应用开发、 WebSocket开发包
软件类型 开源软件
地区 国产
投 递 者 窦英武
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

通过websoket执行服务器命令,增强安全性,用户分级,方便部署让普通用户在未获得linux账号的前提下执行一些linux或mac上的shell

通过config.json配置可执行命令和用户权限

Websocket Shell

web目录可以部署在任意的http服务器上,打开页面的浏览器需要跟server.py运行服务器在一个内网,因为他们需要建立socket链接 客户端的JavaScript通过websocket跟服务端的python建立链接,发送命令的id,服务端寻找id对应的命令然后执行 执行的结果实时回显在客户端的页面上

本项目从下面的项目修改而来

https://github.com/Pithikos/python-websocket-server.git

之前一直想让普通用户在未获得linux账号的前提下执行一些linux或mac上的shell

如服务器更新,app发布,配置数据更新等

此前的做法一直是winscp或putty脚本来实现,缺点是不安全,账户和密码都在明文的脚本里边放着

本项目解决了这个问题,普通用户通过点击网页就可以完成执行命令的操作了

用法说明:

  1. 将python-websocket-shell/web目录设置为网站的根目录

  2. 修改web/config.json的列表和账号为你自己的

  3. 修改web/config.json对应的列表id和脚本路径

  4. 修改web/config.json的adrress为server.py监听的ip和端口

  5. ./start.sh 启动websocket的服务端

  6. 修改nginx的配置不允许访问config.json

web目录为root的nginx配置写法如下,location后面的位置是从web的根目录开始的

location =/config.json{ 
    return 404; 
}

apache的配置请自行百度

之所以没选择数据库来配置只是为了让网站更容易配置,本项目的初衷就是为了更方便的让普通用户访问脚本

image

  • 以前,很多网站使用轮询实现推送技术。轮询是在特定的的时间间隔(比如1秒),由浏览器对服务器发出HTTP request,然后由服务器返回最新的数据给浏览器。轮询的缺点很明显,浏览器需要不断的向服务器发出请求,然而HTTP请求的header是非常长 的,而实际传输的数据可能很小,这就造成了带宽和服务器资源的浪费。 Comet使用了AJAX改进了轮询,可以实现双向通信。但是Comet依然需要发出请求,

  • 官方教程:https://channels.readthedocs.io/en/latest/tutorial/part_1.html 官方教程给出了一个聊天室的例子,主要应用了channel_layer,也就是组的概念。   1、简介 不同于HTTP请求,WebSockets协议使用双向直接通信,也就是说不需要客户端发送请求,服务器端就可以向发送数据。 HTTP协议中,只有客户端可以发送请求和接

  • 今天一个同事用Python做了一个关于机器视觉的处理,他希望处理的视频结果能够在H5页面上实时呈现出来,方便客户通过浏览器查看。折腾了一天终于搞定,现总结方法如下: 需求 Python读视频流进行处理,处理结果呈现在H5网页上,要求延时不能大于0.5秒。 分析 Python处理每一帧的图片,处理好以后发送到前端呈现,所以前端最好使用canvas或img标签呈现图片,通过实时更改canvas或img

  • 最近在搞 websocket, 服务端是用 python 写的,所以,我需要用python 控制 can 去传输相关信息。 python-can 模块就是 python 控制 can 的模仿。 利用 buildroot 去生成 python-can 模块 cd $BUILDROOT_PATH make menuconfig Target packages ---> Interpreter lang

  • 随着互联网的发展,即时通信的需求越来越多,比如实时聊天,扫码登录,远程调用等,如果需要用网页操作,我们肯定需要使用websocket,现在服务端很多现成的,但是本着卷死同行的目的,我们肯定要研究一下websocket协议的深层原理,然后自己写个websocket服务端 先研究一下websocket协议 首先是握手 handleshake GET /chat HTTP/1.1

 相关资料
  • Python websockets库是用于在Python中构建WebSocket服务器和客户端的库。 如果可能,应该使用最新版本的Python。如果使用的是旧版本,请注意,对于每个次要版本(),仅官方支持最新的错误修复版本()。 为了获得最佳体验,应该从以上版本。在Python 3.4和3.6之间做了很大的改进。 注意:本文档是为编写的。 安装websockets 基本的例子 下面是一个WebSo

  • WebSockets是Web应用程序的下一代双向通信技术,可在单个套接字上运行,并通过HTML 5兼容浏览器中的JavaScript接口公开。 一旦与Web服务器建立Web Socket连接,就可以通过调用send()方法将数据从浏览器发送到服务器,并通过onmessage事件处理程序从服务器接收数据到浏览器。 以下是创建新WebSocket对象的API。 var Socket = new Web

  • 我正在编写自己的websocket服务器和客户端。我成功地处理了握手并建立了联系。 现在我正在编写send_message函数,它创建了一个合适的框架。下面的例子只是为了这个问题,它不是我最终打算写的,这只是我尝试给我相同的结果的许多方法中的一种。 输入:以上函数应发送 第一个字节 第一位设置为1-,表示这是消息的最后一帧 第二、第三和第四个-所有的零,对于这个例子来说是不相关的 以下四位-000

  • webSockets 是一种创建持久性的连接,并进行双向数据传输的 HTTP 通信协议。Weex 提供了 webSockets 模块方便用户在 H5/iOS/Android 环境下与服务端创建 webSockets 链接进行通信。 注意 h5 提供 WebSockets 的 protocol 默认实现,iOS 和 Android 需要自定义实现,Android 可参考: DefaultWebSoc

  • WebSocket 服务基于现有 swoole ws server 上的进一步封装实现。即开启 websocket 服务的同时可以处理 http 请求。 安装 Composer 安装 composer require swoft/websocket-server Git 仓库 Github https://github.com/swoft-cloud/swoft-websocket-server

  • Swoole框架提供了WebSocket协议的实现。具体代码可以参考 examples/websocket_server.php和examples/websocket_client.hml。 如何使用 应用程序代码只需要继承 Swoole\Network\Protocol\WebSocket,并实现onMessage方法即可。onMessage方法在服务器端收到客户端消息时回调。Swoole框架已