项目概述
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、内存、磁盘信息
- 显示网络状态
- 显示系统运行时间
安全注意事项
重要提示!
此系统具有强大的远程控制功能,请注意以下安全事项:
- 仅在授权的环境中使用
- 确保服务器端口不对外开放或使用防火墙限制访问
- 为服务器启用HTTPS加密(生产环境必须)
- 更改默认配置,特别是安全密钥
- 实现适当的身份验证机制(建议添加)
未经授权使用此系统可能违反法律法规。
常见问题
可能的解决方案:
- 检查config.py中的SERVER_URL是否正确
- 确保服务器正在运行
- 检查防火墙设置是否允许5000端口流量
- 尝试在客户端使用ping命令测试服务器连通性
可能的解决方案:
- 确保已安装opencv-python库
- 检查客户端计算机是否有摄像头
- 确认摄像头未被其他程序占用
- 检查系统摄像头权限设置
可能的解决方案:
- 检查WebSocket连接是否正常
- 确保命令格式正确
- 尝试使用中断按钮,然后重新执行命令
- 重启客户端程序