1100 字
3 分钟
DELL 服务器风扇控制器 WebUI
DELL 服务器风扇控制器 WebUI
楼主前天晚上睡觉的时候,嫌风扇太吵就想起床把风扇转速调小一点,楼主就打开了 Mac 远程进了 Windows ,直接上网搜了 DELL 风扇控制,下载安装一气呵成然后就提示
需要安装.NET Framework 4.5 或更高版本(楼主的 PC 上是有这个工具的,懒得再打开了就直接睡了),第 2 天起床突然有个想法,我可以做个 WebUI 啊,然后就有了这个项目。下载连接:dell-fans-webui.tar.gz(约 16 KB)。
项目介绍
这个项目的前身是 zzccchen/DellEmcFansController 一个 C# 编写的 Windows GUI 工具,版本迭代经历了三位作者:
cw1997 (v1.0.0) → jiafeng5513 (v1.0.1) → zzccchen (v1.0.2)v1.0.2 新增了独立风扇控制(可以对不同风扇分别设转速),在 GitHub 上获得了 70+ Star。
但它有几个限制:必须在 Windows 桌面才能操作。于是就有了 Web 版重写——保留核心 IPMI 控制逻辑,用 Python Flask + Docker 重新实现,把操控入口从 Windows 桌面搬到了浏览器。
我做了什么?
简单来说:打开浏览器就能控制 Dell 服务器的风扇。
主要功能一览:
| 功能 | 说明 |
|---|---|
| 🔄 手动 / 自动模式切换 | 一键从 iDRAC 接管风扇控制权,或交还给 iDRAC |
| 🎚 转速滑块调节 | 0% ~ 100%,步进 5%,也有快捷按钮(10/20/30/50/100%) |
| 🌡 实时温度监控 | 实时监控 |
| 📊 风扇 RPM 显示 | 显示各风扇当前转速 |
| 🔐 登录鉴权 | 首次启动自设密码 |
| 🎨 明亮 / 暗黑 / 跟随系统 | 明暗切换 |
| ⚙ 在线修改 iDRAC 连接 | 无需进容器改配置,设置页直接换地址/账号/密码并即时生效 |
| 📱 响应式布局 | 手机 / 平板 / 桌面浏览器都能用 |
| 🐳 Docker 一键部署 | 容器化管理 |
怎么用?
前置条件
- 一台能跑 Docker 的 Linux 主机(比如 Debian / Ubuntu),与服务器 iDRAC 在同一网络可达
- 被控服务器的 iDRAC 已开启 「启用 IPMI over LAN」(设置路径:
iDRAC 设置 → 连接 → 网络 → IPMI 设置)
三步部署
# 1. 进入 webapp 目录cd webapp
# 2. 构建并启动docker compose up -d --build
# 3. 浏览器打开 http://<你的主机 IP>:9090然后:
- 首次进入会跳转到密码设置页,设一个登录口令(至少 6 位)才可以进入控制台。
- 进入后点右上角 ⚙ 齿轮,在 iDRAC 连接设置页里直接填服务器地址、用户名、密码,还支持先「测试连接」验证再保存,改动即时生效,不用重启容器。
日常操作
- 控速:先点”手动控制”接管风扇,再拖动滑块设转速(20%~30% 通常是一个安静又安全的区间),点”应用转速”
- 恢复:点”自动控制”交回 iDRAC,风扇回归系统温控策略
- 改连接:点右上角 ⚙ 齿轮进入设置页,改 iDRAC 地址/账号/密码,支持”测试连接”先验证再保存
- 监控:页面每 5 秒自动刷新温度和风扇数据,连接灯绿表示通信正常
架构一览
浏览器 ──HTTP:9090──> [Docker 容器 dell-fans-web] │ gunicorn (2 worker, --preload) │ Flask (app.py) │ 调用 ipmitool (子进程) │ IPMI/lanplus :623 ──> [服务器 iDRAC] │ 风扇 / 温度传感器核心技术栈:
| 层 | 技术选型 |
|---|---|
| Web 框架 | Python Flask 3.0 |
| WSGI 服务器 | gunicorn 22.0(--preload 避免多 worker 密钥不一致) |
| 底层通信 | ipmitool(Dell raw 命令) |
| 密码存储 | werkzeug 哈希(auth.json 持久化在 Docker 卷里) |
| 容器化 | Docker + docker-compose |
用到的 Dell IPMI raw 命令
# 切换手动控速ipmitool raw 0x30 0x30 0x01 0x00
# 切回自动控速ipmitool raw 0x30 0x30 0x01 0x01
# 设定转速 N%(例:30% → 0x1e)ipmitool raw 0x30 0x30 0x02 0xff 0x1e
# 读取温度ipmitool sdr type temperature
# 读取风扇ipmitool sdr type fan⚠️ 安全提醒
- 手动锁定转速后,风扇不会随温度自动加速——高负载时 CPU 可能过热。建议把日常转速设在 20%~35%,并留意温度曲线;跑重负载前切回”自动控制”。
- 请只在内网使用,不要将 9090 端口暴露到公网。当前版本有 WebUI 登录认证,但仍建议配合反向代理 + HTTPS 使用。
- 该 Dell raw 命令在 R620 / R630 / R640 / R720 / R730 / R740 等 12/13/14 代机型上验证可用。极旧或极新机型若命令不生效,切回自动模式即可,不会损坏硬件。
相关链接
- 🔗 zzccchen/DellEmcFansController(C# .NET,v1.0.2,含独立风扇控制)
- 🔗 Dell IPMI raw 命令参考:Dell Fan Noise Control
最后更新:2026-05-30
DELL 服务器风扇控制器 WebUI
https://blog.patlabor.cn/posts/4-dell-服务器风扇控制器-webui/dell-服务器风扇控制器-webui/ 部分信息可能已经过时