Skip to content

网易基岩MC服务器的“遥控器”!为网易我的世界基岩版服务器,打造无需依赖第三方服务的网页端远程管理方案,实现对MC服务器的便捷远程操作。The 'Remote Controller' for NetEase Bedrock MC servers! It is designed for NetEase Minecraft Bedrock Edition servers, creating a web-based remote management solution that does not rely on third-party services, enabling convenient remote control of the MC server.

License

Notifications You must be signed in to change notification settings

fish123cn/DashCraft

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 

Repository files navigation

MC远程控制系统 DashCraft

一、整体总览

1. 系统定位与核心目标

本系统解决“无公网IP环境下,通过网页端远程控制网易版Minecraft客户端”的核心需求,适配Windows/Linux客户端,支持:

  • 网页端输入MC指令,客户端模拟键鼠执行(网易版无RCON权限适配);
  • 定时/手动查询服务器玩家数量+玩家名单,且用户指令优先级高于定时查询;
  • 全链路256位密钥身份验证,防止非法访问;
  • 客户端断连自动重连,保证通信稳定性。

2. 整体架构

graph LR
    A[用户网页端] -->|HTTP+256位KEY| B[公网PHP中转服务器]
    C[无公网Windows客户端] -->|长连接+256位KEY| B
    A -->|输入指令/配置查询间隔| B
    B -->|转发高优先级指令| C
    C -->|双队列+优先级执行| D[网易版MC]
    C -->|定时低优先级/list查询| D
    C -->|返回执行结果/玩家信息| B
    B -->|返回结果到网页| A
Loading

3. 核心特性

特性 实现方式
无公网IP通信 客户端主动连接公网PHP服务器(反向连接),无需端口映射
指令优先级 双队列(高优先级:用户指令;低优先级:定时/list)+ 互斥执行
高精度识别 PaddleOCR+图片预处理(二值化/降噪/放大),适配MC特殊字体
安全验证 256位SHA-256密钥全链路验证,仅合法请求可执行指令
可配置定时查询 网页端动态修改/list查询间隔(≥5秒),客户端实时生效
自动重连 客户端断连后自动重试,服务器定期清理失效连接
跨平台兼容 客户端适配Windows(Linux仅需微调窗口控制逻辑)

4. 技术栈与依赖

模块 核心技术/工具 前置依赖
公网PHP端 PHP Socket、HTTP接口、256位密钥验证 开启PHP socket扩展,放行9501(Socket)/80/443(网页)端口
Windows客户端 Python 3.8+、PaddleOCR、pyautogui 管理员权限、安装依赖库、MC窗口化运行、关闭中文输入法(MC窗口)
核心能力 键鼠模拟、OCR识别、线程安全队列、长连接 Windows:pyautogui/pygetwindow/paddleocr;Linux:wmctrl(窗口控制)

5. 运行流程

  1. 公网PHP服务器启动Socket长连接服务,监听客户端连接;
  2. Windows客户端以管理员身份运行,主动连接PHP服务器并完成密钥验证;
  3. 客户端启动3个线程:通信线程(接收服务器指令)、消费线程(处理指令队列)、定时查询线程(低优先级/list);
  4. 网页端发送指令/配置,PHP服务器转发到客户端高优先级队列;
  5. 客户端消费线程优先执行用户指令,空闲时执行定时/list查询;
  6. 客户端将执行结果/玩家信息返回PHP服务器,再由服务器推送到网页端展示。

二、PHP网页端(公网中转服务器)

1. 目录结构

/var/www/html/
├── config.php          # 全局配置(密钥/端口/临时文件)
├── socket_server.php   # Socket长连接服务(后台常驻,转发指令)
├── api.php             # 网页端接口(接收请求/返回结果)
└── index.php           # 前端操作界面(指令输入/查询配置/结果展示)

2. 配置文件(config.php)

3. Socket长连接服务(socket_server.php)

4. 接口文件(api.php)

5. 前端界面(index.php)

6. PHP端部署与启动步骤

  1. 环境准备
    • 公网服务器需安装PHP(7.4+)、开启socket扩展(修改php.ini:extension=socket.so,重启PHP服务);
    • 放行端口:在服务器防火墙/安全组中放行9501(Socket)、80/443(网页)端口。
  2. 文件部署
    • 将上述4个文件上传到服务器网页根目录(如/var/www/html);
    • 修改config.php中的SECRET_KEY为自己生成的256位密钥;
    • 修改index.php中的API_URL为服务器公网域名/IP。
  3. 启动Socket服务
    # 后台启动Socket服务,输出日志到socket.log
    nohup php /var/www/html/socket_server.php > /var/www/html/socket.log 2>&1 &
    # 验证服务是否启动(查看端口是否监听)
    netstat -tulpn | grep 9501
  4. 权限配置
    • /tmp目录赋权(确保PHP能写入临时文件,如果MySQL服务正常就不用):chmod 777 /tmp
    • 确保PHP进程对网页目录有读写权限。

三、Windows客户端(Python)

1. 依赖安装

管理员身份运行CMD,执行以下命令安装依赖:

# 核心依赖(键鼠模拟、窗口控制、OCR识别)
pip install pyautogui pygetwindow pillow paddleocr opencv-python numpy
# 可选:如果需要中文OCR更精准,安装paddlepaddle国内源
pip install paddlepaddle -i https://pypi.tuna.tsinghua.edu.cn/simple

2. 客户端配置与运行步骤

  1. 配置修改
    • 打开mc_client.py,修改SERVER_HOST为PHP服务器公网IP/域名;
    • 确认SERVER_PORT(9501)、SECRET_KEY与PHP端一致;
    • 确认MC_WINDOW_NAME为网易版MC窗口名称(默认“我的世界”,可通过截图工具确认)。
  2. 运行前准备
    • 启动网易版MC,登录并进入目标服务器;
    • 将MC窗口设置为窗口化模式(非全屏);
    • 关闭MC窗口的中文输入法(切换为英文);
    • 管理员身份打开CMD(右键CMD → 以管理员身份运行)。
  3. 启动客户端
    # 进入代码所在目录
    cd /d D:\mc_client
    # 运行客户端
    python mc_client.py
  4. 验证运行
    • 客户端日志显示“服务器连接成功,密钥验证通过”;
    • 网页端输入指令(如list),客户端日志显示“执行高优先级指令:exec_cmd”;
    • MC窗口自动执行指令,网页端返回玩家数量+名单。

4. 常见问题排查

问题现象 排查方案
无法找到MC窗口 确认MC窗口名称正确;MC已启动且未最小化;以管理员身份运行客户端
键鼠模拟无效果 MC窗口需为前台窗口;关闭MC全屏;切换为英文输入法;确认管理员权限
玩家数量识别失败 微调chat_box_rect坐标;检查OCR依赖是否安装完整;确保聊天框有/list返回结果
客户端无法连接服务器 检查服务器9501端口是否放行;确认SERVER_HOST/SERVER_PORT正确;密钥是否一致
定时查询不执行 检查高优先级队列是否有未执行的指令;确认查询间隔≥5秒;日志是否有报错

四、核心总结

1. 系统核心优势

  • 无公网IP适配:客户端主动连接公网服务器,无需端口映射;
  • 指令优先级:用户指令永远优先于定时查询,避免执行冲突;
  • 高精度识别:PaddleOCR+图片预处理,适配MC特殊字体;
  • 安全可靠:256位密钥验证,防止非法访问;
  • 易扩展:支持新增指令类型(如服务器状态查询、玩家踢出等)。

2. 关键注意事项

  • PHP端:Socket服务需后台常驻,确保临时文件目录有写入权限;
  • 客户端:必须管理员权限运行,MC窗口化+英文输入法;
  • 网络:确保客户端能访问公网服务器(测试ping 服务器IP);
  • 性能:定时查询间隔建议≥5秒,避免频繁操作影响MC运行。

3. 扩展建议

  • 增加指令白名单:限制危险指令(如/stop、/op);

  • 增加日志持久化:客户端/服务器日志写入文件,便于排查问题;

  • 支持多客户端:修改PHP端Socket服务,实现多客户端管理;

  • 前端优化:增加指令历史记录、玩家名单可视化等功能。

About

网易基岩MC服务器的“遥控器”!为网易我的世界基岩版服务器,打造无需依赖第三方服务的网页端远程管理方案,实现对MC服务器的便捷远程操作。The 'Remote Controller' for NetEase Bedrock MC servers! It is designed for NetEase Minecraft Bedrock Edition servers, creating a web-based remote management solution that does not rely on third-party services, enabling convenient remote control of the MC server.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published