CLAY 远程管理系统

功能强大的跨平台远程管理工具

项目概述

CLAY远程管理系统是一个基于Python和WebSocket技术开发的远程控制工具,允许您通过浏览器界面远程控制多台电脑。

此版本由水寒凌重构并维护,开源地址 github.com/itrfcn/Clay

主要功能
  • 远程执行终端命令
  • 实时输出反馈
  • 远程屏幕锁定
  • 远程系统关机
  • 实时获取屏幕内容
  • 远程摄像头监控
  • 多客户端管理
版本特色
  • 开机自启进程隐藏
  • 美观响应式Web控制界面
  • 低延迟命令执行和反馈
  • 控制端登录页面
  • 获取屏幕截图
  • 可打包为独立可执行程序
  • 心跳机制保证连接稳定

文件结构

项目包含以下核心文件和目录:

  • 📁 client/ - 客户端程序目录
    • client.py - 客户端主程序
    • config.py - 客户端配置文件
    • requirements.txt - 客户端依赖列表
  • 📁 server/ - 服务器端程序目录
    • app.py - 服务器主程序
    • config.py - 服务器端配置文件
    • requirements.txt - 服务器依赖列表
    • server.log - 日志文件
    • 📁 static/ - 静态资源目录
      • 📁 css/ - 样式文件
      • 📁 js/ - JavaScript文件
    • 📁 templates/ - HTML模板目录
      • index.html - 主界面模板
      • login.html - 登录界面模板

系统配置

服务器端配置

服务器端负责接收客户端连接,并提供Web控制界面。配置步骤如下:

步骤1: 安装Python环境(推荐Python 3.7+)
步骤2: 安装服务器依赖
pip install -r server/requirements.txt
步骤3: 修改服务器配置(可选)

打开 server/config.py 文件,可以根据需要修改以下参数:

  • SECRET_KEY - 更改为您自己的安全密钥
  • ADMIN_PASSWORD - 更改为您自己的登录密码
  • SERVER_HOST - 设置监听地址(默认0.0.0.0表示所有网络接口)
  • SERVER_PORT - 设置监听端口(默认5000)

客户端配置

客户端需要连接到服务器,并执行远程命令。配置步骤如下:

步骤1: 安装Python环境(推荐Python 3.7+)
步骤2: 安装客户端依赖
pip install -r client/requirements.txt
步骤3: 修改客户端配置

编辑 client/config.py 文件,修改服务器地址:

SERVER_URL = "http://你的服务器IP:5000"

运行系统

启动服务器

cd server
python app.py

服务器启动后,将在指定端口(默认5000)监听连接。

启动客户端

cd client
python client.py

客户端启动后将自动连接到配置文件中指定的服务器地址。

访问Web控制界面

打开浏览器,访问:http://服务器IP:5000

在Web界面中,可以看到所有连接的客户端,并对其进行管理操作。

打包成可执行文件

可以使用PyInstaller将客户端打包成独立的可执行文件(.exe),便于分发和使用:

步骤1: 安装PyInstaller
pip install pyinstaller
步骤2: 确保配置文件已正确设置

在打包前,确保client/config.py中的SERVER_URL已设置为正确的服务器地址。

步骤3: 执行打包命令
cd client
pyinstaller --onefile --noconsole --icon=YOURICON.ico client.py

注:--noconsole参数会隐藏控制台窗口,如需调试建议移除此参数;YOURICON.ico替换为您自己的图标文件路径

步骤4: 获取可执行文件

打包完成后,在dist目录下可以找到client.exe文件,这就是独立的可执行程序。

部署到服务器

方法一:直接在服务器上运行

步骤1: 将server目录上传到服务器
步骤2: 安装依赖
pip install -r requirements.txt
步骤3: 运行服务器
python app.py

对于生产环境,建议使用Gunicorn、uWSGI等WSGI服务器配合Nginx部署。

方法二:使用Docker部署(推荐)

创建Dockerfile:

FROM python:3.9-slim
WORKDIR /app
COPY server/ .
RUN pip install --no-cache-dir -r requirements.txt
EXPOSE 5000
CMD ["python", "app.py"]

构建和运行Docker容器:

# 构建镜像 docker build -t clay-server .
# 运行容器 docker run -d -p 5000:5000 --name clay-server clay-server

使用指南

Web控制台功能

终端控制

允许远程执行终端命令:

  • 支持所有系统命令
  • 实时显示命令输出
  • 支持目录导航(cd命令)
  • 内置常用命令快捷按钮
  • 命令执行中断功能
摄像头监控

远程访问客户端摄像头:

  • 一键获取当前画面
  • 支持图像缩放
  • 高清画质传输
  • 快速刷新功能
系统信息

查看客户端系统信息:

  • 通过 clay info 命令获取
  • 显示CPU、内存、磁盘信息
  • 显示网络状态
  • 显示系统运行时间
系统控制

控制客户端系统:

  • 远程锁定屏幕
  • 远程关机
  • 特殊Clay命令

安全注意事项

重要提示!

此系统具有强大的远程控制功能,请注意以下安全事项:

  1. 仅在授权的环境中使用
  2. 确保服务器端口不对外开放或使用防火墙限制访问
  3. 为服务器启用HTTPS加密(生产环境必须)
  4. 更改默认配置,特别是安全密钥
  5. 实现适当的身份验证机制(建议添加)

未经授权使用此系统可能违反法律法规。

常见问题

可能的解决方案:

  1. 检查config.py中的SERVER_URL是否正确
  2. 确保服务器正在运行
  3. 检查防火墙设置是否允许5000端口流量
  4. 尝试在客户端使用ping命令测试服务器连通性

可能的解决方案:

  1. 确保已安装opencv-python库
  2. 检查客户端计算机是否有摄像头
  3. 确认摄像头未被其他程序占用
  4. 检查系统摄像头权限设置

可能的解决方案:

  1. 检查WebSocket连接是否正常
  2. 确保命令格式正确
  3. 尝试使用中断按钮,然后重新执行命令
  4. 重启客户端程序