一处配置,全校生效-ClassislandControlHub,把几十间教室的大屏管理收进一个网页
面向智教联盟社区投稿 · 产品介绍 / 亮点 / 适用场景 / 实拍截图
项目地址:1sIancl/ClassislandControlHub(GPL v3 开源)
先说三个很多电教老师都遇到过的场景
场景一:作息表改了。
教务处说下周起早读提前 10 分钟。于是你拿着一份改造后的时间表,从一楼走到五楼,一间一间教室点开 ClassIsland 改一遍——四十间教室,改完一上午就没了,而且改到第 30 间时你已经不确定前面那 29 间改的对不对。
场景二:某间教室的大屏“不对劲”。
班主任说“我们班的屏幕时间比别的班慢两分钟”“课表好像还是上周的”。你在办公室看不到现场,只能走过去;到了教室发现机器正常,回来又被叫去另一间。
场景三:新装了两间教室。
要把课表、作息、科目、主题挨个配一遍,稍不留神就漏了某个设置,学生一看就发现“这个班的屏幕和隔壁不一样”。
ClassIsland 集控(ClassislandControlHub)就是为这三件事做的。 它的目标只有一句话:一处配置,全网生效——把教室大屏上原本要逐台操作的设置,收拢到一个网页里统一管理。
一、它是什么:A 端 + B 端,一个网页管全校
ClassIsland 集控是面向 ClassIsland 2.x(.NET 10) 的教室大屏集中管理系统,分两端:
| 部分 | 装在哪 | 干什么 |
| A 端 · 集控服务器 | 学校内网一台电脑/服务器(Windows、Linux 都行) | 自带可视化 Web 管理界面:课表、时间表、科目、外观的统一下发与设备管理 |
| B 端 · 集控接收端 | 每间教室大屏的 ClassIsland 里(插件形式) | 自动连上 A 端,接收并应用下发的课表、时间表、科目与自定义设置 |
两者之间用 HTTP + JSON 通信,支持 UDP 局域网一键自动发现——教室端不用手输 IP,点一下就能找到服务器。
┌──────────────────────────────┐
│ A 端 · 集控服务器(Web 管理) │
│ ASP.NET Core + SQLite + UI │
└──────────┬───────────┬───────┘
HTTP+JSON │ │ UDP 广播(自动发现)
┌──────────┴───┐ ┌───┴──────────┐
│ B 端 · 教室大屏 │ │ B 端 · 教室大屏 │ ……
│ ClassIsland+插件│ │ ClassIsland+插件│
└──────────────┘ └──────────────┘
数据不出校,所有数据都存在学校自己的机器上(单文件 SQLite),不经过任何云服务;管理界面、课表与设备数据都由学校自己掌握。

二、三步上手,门槛比想象的低
第一步,起服务端。
Linux 服务器一条命令(脚本自动装 .NET 10、编译发布、注册 systemd 服务开机自启);Windows 上解压双击即可,也能一键注册成 Windows 服务(开机自启、崩溃自动重启)。
第二步,生成注册码。
A 端「设备管理 → 生成注册码」,设使用次数与有效期(整班批量部署可以设“不限次数”)。
第三步,教室端填码。
在教室电脑的 ClassIsland 里安装集控插件(插件市场搜「ClassislandControlHub集控接收端」即可,或放 .cipx 到插件目录),填入注册码 →「立即同步」。设备随即出现在管理端,配置几秒内自动生效。
两种 A 端安装包可以互换: 同一个版本会发布「框架依赖」与「自带运行时(约 48 MB,解压即跑)」两种包,功能完全一致。换包时保留 data/ 目录即可,设备无需重新注册。不想在服务器上装 .NET 的学校直接用后者。
(此处插图 2:仪表盘 —— 设备总数、在线率、待同步数量与最近事件一屏看全)
三、核心亮点
1. 配置只改一次,全院生效(而且你看得见“谁还没同步”)
- 配置档案:时间表 / 课表 / 科目 / 自定义设置打包成档案,按「设备单独指定 → 所属楼层 → 所属楼栋 → 全局默认」逐级回退下发。给楼栋绑定档案,整栋教室跟着走;某一层要单独特例就在楼层上指定。
- 版本化同步 + 待同步可视化:全局配置版本号 + 每设备推送世代号,管理端直接告诉你「哪些设备还没取到最新配置」,不用挨间教室确认。
- 定向下发:按楼栋/楼层/设备精准推送,不影响其他班级。
- 下发前差异预览:会列出“新增 / 删除 / 修改”的具体项,改错了在点下去之前就能看见。
2. 教室大屏排障,不必再跑到教室门口
- 远程诊断:可让教室端抓取主界面画面并自动上传(每台保留最近 5 张,网页里能看大图、下原图)、回传前台进程与窗口快照、回传诊断数据包(系统环境、版本、运行状态与最近日志)。
- 远程指令:统一广播或单台执行命令行并回报输出;远程查看/启停插件;向大屏发提醒(支持语音播报)。
- 外观统一下发:主题、强调色、第二色、字体、字号、圆角、背景不透明度、界面缩放、背景材质等 11 类外观一次推给全校,留空的项不会改动教室现有设置。
关机 / 重启这类指令会延迟 15 秒派发,右下角出现倒计时提示条,点「撤销」即刻取消——延迟未到点的指令根本不会发给客户端,撤销是真实生效的。所有指令都是一次性派发、超 2 小时自动作废。
3. 日常通知与临时换课,手机就能做
- 定时提醒:按「日期 + 时间 + 重复规则」自动推送到指定教室/楼栋/全部在线教室,附触发历史。
- 临时换课:某天某节要换课,可以只换一天、也可以持续到手动撤销,还能限定星期几;不改动档案本身,到期自动恢复;「预览当天课表」能直接看到那天实际会上什么。
- 多选批量操作:设备列表里勾选多间教室,一次性下发、发通知、重启 ClassIsland、关机/重启/睡眠。
- 响应式界面:900px / 700px 断点适配,手机上可以查看课表与在线状态、发通知、下发配置、看诊断截图。
4. 安全与权限:按岗位给权限,操作全程留痕
- 多账号 + 按模块权限(档案/设备/下发/远程/提醒/审计/备份/设置/账号逐项勾选),服务端对每条接口强制校验、未声明权限的路由一律拒绝;并有「不能授予自己没有的权限」「至少保留一个超级管理员」等提权防护。
- 岗位模板一键套用(教务管理员 / 通知发布员 / 设备运维 / 只读观察员)。
- 两步验证(TOTP)、密码到期提醒、登录失败锁定、管理端来源 IP 白名单、安全响应头、API 访问日志与追踪 ID。
- 开放 API 密钥:给脚本或第三方用的凭据,服务端只存哈希(明文只在创建时显示一次),可限定只读、可设期限、可随时撤销。
- 完整审计日志:谁在什么时候做了什么,可按操作者/动作/来源 IP/时间筛选并导出。
5. 可靠、可观测、可回滚
- 课表历史版本:每次保存档案前自动留快照(每档案最近 20 份),改坏了「一键回滚」,回滚前还会再备份当前内容,可以再滚回来。
- 备份与恢复:手动/自动备份,保留最近 16 份,可下载 zip、可就地恢复。
- 分级健康检查(
/live、/ready、/deep)与 Prometheus 指标 /metrics(设备在线/离线/待同步、数据库体积、磁盘余量),方便接学校已有的监控。
- Webhook 外部通知:设备掉线、设备恢复、配置应用失败、指令失败、登录失败预警,可推送到企业微信 / 钉钉(支持加签)/ 飞书或自建端点;带投递明细(成功/失败/跳过 + 原因),失败原因会写成「超时 / 无法连接 / 接收端错误码 93000」这类能直接处置的话。
- 时间统一:A 端从标准 NTP 授时,教室端自动对时,全校大屏时钟一致(也能手动偏移)。
6. 规模不大不小,刚好一间学校
| 教室规模 | 建议配置 |
| ≤ 200 台 | 2 核 / 2 GB 足够 |
| 200 ~ 800 台 | 4 核 / 4 GB,瓶颈通常先在教室网络与上行带宽 |
| > 800 台 | 分校区多实例部署,或调大 OnlineTimeoutSeconds 降低心跳写入频率 |
仓库自带模拟客户端压测工具,可以在自己的机器上跑出真实数字再决定配置。空闲时每台设备只占「1 个挂起的异步请求 + 每 30 秒一次心跳写」,长轮询等待者共用同一个变更信号,不做轮询、不占线程。
四、适合谁用、用在什么场景
适用对象
- 中小学电教老师 / 信息中心:负责全校教室大屏的安装、配置与日常运维,人少事多,最需要“一处改、全校生效”。
- 教务处 / 教务干事:经常要调作息、临时换课、发通知,需要当天就能改完并且确信没漏教室。
- 多校区或多机房的学校:需要按楼栋/楼层分级管理,并且能看清每台设备的同步状态。
典型使用场景
| 场景 | 集控怎么帮你 |
| 开学前统一配置 | 建一份档案(时间表+课表+科目+外观),绑定楼栋,全校教室自动接收 |
| 作息调整 / 冬夏令时切换 | 改一次时间表 → 保存 → 各教室数秒内同步,管理端能看到还没取到的设备 |
| 临时换课、调课 | 用“临时换课”只改当天或某几天,不动档案,到期自动恢复 |
| 考试安排 | 为考试建一份专用档案(考试作息 + 无课表),考前下发、考后一键换回 |
| 新教室 / 新机房部署 | 生成注册码(可设不限次数)+ CSV 预注册:先把教室名、分组、档案录好,设备上线后按机器名自动认领 |
| 教室大屏故障 | 远程抓一张当前画面 + 拉诊断数据包,多数问题在办公室就能判断,少跑一趟 |
| 放学 / 停电前 | 批量选中教室,一键关机或重启 ClassIsland;误点还有 15 秒撤销窗口 |
| 给全校大屏发通知 | 定时提醒或远程通知(支持语音播报),手机上就能发 |
五、真实使用截图
以下截图取自实际运行的集控管理界面(一台普通内网主机 + 14 台教室终端在线,教学楼 A/B 两栋共三个楼层),未做界面美化处理。

图注:楼栋区块与在线概览在顶部,下面一层层楼层卡片排下来,教室就是卡片里的设备;楼栋/楼层带标识色,教室可拖拽换层。

图注:课表按「周一到周日 × 节次」网格排课,点格选课自动跳下一节,双击清空;时间表可被多张课表复用。支持 CSES 导入,也能把 Excel/网页里的课表文本交给 AI 自动整理。

图注:左侧选目标(教室/楼栋/全部在线),中间选指令;远程诊断抓回的教室画面可直接在大图里预览、下载原图。

图注:可按操作者、动作前缀、来源 IP、时间范围筛选,导出 CSV 默认脱敏 IP。

图注:账号与权限、邀请码、Webhook 外部通知、数据备份、品牌与界面个性化集中在这里。
不想记命令的话,用它把「起服务 + 打开管理界面」合成一次双击:自动识别本地进程 / Windows 服务 / 远程服务器三种模式,本机免登录只对回环地址生效,局域网访问仍需登录。
六、常见问题
Q:要花多少钱?
免费、开源(GPL v3),代码与文档都在 GitHub 上,可自行部署、修改、二次开发。
Q:服务器要什么配置?
一台内网机器就够:≤200 台教室用 2 核 / 2 GB;数据是单文件 SQLite,放在本地 SSD 即可,不需要单独装数据库。
Q:必须装 .NET 吗?
可以用“自带运行时”的包,解压就能跑,不用在服务器上装 .NET;Linux 一键脚本也会自动处理。
Q:和 ClassIsland 是什么关系?
ClassIsland 是教室里那套大屏软件;集控是它的外部管理系统——教室端通过插件接收集控下发的课表与设置,ClassIsland 本身的功能不受影响,不接集控也能单独用。
Q:数据安全吗?会不会传到外面?
全部数据存在学校自己的机器上,不经过任何第三方服务。管理端有按模块权限、两步验证、登录失败锁定、来源 IP 白名单、安全响应头与完整审计;设备注册码、邀请码与 Webhook 加签密钥也会以密文形式落库,密钥文件独立保管(随 1.3.5 版本发布)。
Q:手机上能用吗?
可以:查看课表与设备在线状态、发通知、下发配置、看远程诊断截图都行。但逐格排课、设备拖拽换层、账号权限配置这类精细操作,建议在电脑上做。
七、获取与上手
- 教室端插件:ClassIsland 插件市场搜索「ClassislandControlHub集控接收端」
- 文档:仓库
README.md(安装教程 / 核心特性 / 规模与部署建议)、USAGE.md(日常使用)、docs/(协议、部署、安全加固、常见问题)
如果你是第一次上手,建议这样开始:
- 先在一台闲置电脑上跑起 A 端,用「新建示例档案」生成一份标准作息 + 课表;
- 拿 1~2 间教室装上插件试跑一周,感受一下“改完几十秒全校生效”;
- 确认顺手之后,再用设备 CSV 把全校教室批量录入,一次性铺开。
写在最后
做这套东西的初衷很朴素:教室大屏是给老师和学生看的,不该让维护它的人把时间都花在“一间一间改”上。
欢迎试用与反馈,如果你也在为几十间教室的配置、换课、排障发愁,欢迎试试这款集控;用着哪里不顺手、缺什么功能,也欢迎到仓库提 Issue——教育场景里那些“看起来很琐碎”的需求,往往最值得做。
(本文截图均取自实际运行的集控管理界面,未做美化处理。)