
[开源] 服务器智能风扇调速工具
项目介绍
FanX 是一款基于 .NET 8 和 Blazor 的风扇控制与监控平台,主要用于戴尔服务器(支持 BMC 的理论上应该也可以用),能够实时监控设备运行状态,并根据自定义或智能规则动态调节风扇转速,确保系统温度和功率在安全范围内可以降低一定的噪音。
仓库地址: https://github.com/SwaggyMacro/FanX
玩法
比如你可以设置一个智能规则,规则如下图,可实现内容:
- 当 CPU1 > 80度 给 123号风扇 80% 转速, 当 CPU2 > 80度 给 456号风扇 80% 转速
- 当 CPU1 > 70度 给 123号风扇 50% 转速, 当 CPU2 > 70度 给 456号风扇 50% 转速
- 当 CPU1 > 60度 给 123号风扇 30% 转速, 当 CPU2 > 60度 给 456号风扇 30% 转速
- 当 CPU1 > 50度 给 123号风扇 20% 转速, 当 CPU2 > 50度 给 456号风扇 15% 转速
- 因为我这 CPU1 温度会比 CPU2 高,所以我设置了在 CPU1 侧的123号风扇转速更高
- 当 CPU1 < 50度 给 123号风扇 10% 转速, 当 CPU2 < 50度 给 456号风扇 10% 转速
同时你也可以根据进风口温度和出风口温度来设置风扇转速,或者根据功率来设置风扇转速。
也支持当某个风扇转速超过设定阈值就自动降速
对比服务器自带的自动调速会更加灵活
核心功能
-
实时监控:
- 功率(Power)
- 风扇转速(Fan Speed)
- CPU 温度
- 主板进出口温度(Inlet/Outlet Temperature)
-
自定义规则通知:
- 当温度或转速达到设定阈值时,触发通知
- 支持单个或多个风扇目标监控和通知
- 通知渠道支持:企业微信机器人、Webhook、Telegram 机器人、邮箱
-
智能风扇控制:
- 根据温度自动调整一个或多个风扇的转速
- 规则示例:当 CPU 温度 ≥ 70℃ 时,将风扇 A 转速设置为 80%,风扇 B 转速设置为 60%
- 支持多级温度—转速映射曲线,精细化控制
-
IPMI 接口支持(Linux/Windows):
- 通过 ipmitool 与 BMC 通信(Windows 环境自带 ipmitool,Linux 需手动安装),获取传感器数据或下发控制指令
- 支持 Red Hat、Ubuntu 等常见发行版一键安装依赖(Linux)
-
日志与历史数据:
- 支持日志保留天数设置和传感器数据保留策略
- 可视化历史曲线展示温度、转速和功率变化趋势
-
用户及权限管理:
- 管理员与普通用户分级权限
- 支持注册、登录、重置密码等功能
-
多语言支持:
- 支持中文和英文界面切换
-
深色/浅色主题切换
-
支持 Docker 部署
快速上手
从 Release 下载
- 前往 Release 页面 下载最新版本的压缩包。
- 解压缩下载的文件。
- 运行应用程序:
Linux 用户可以使用以下命令运行:
Windows 用户可以直接双击dotnet FanX.dll # 或者 ./FanX
FanX.exe
运行。 - 在浏览器中访问以下地址,使用管理员账号登录并开始配置:
- http://localhost:5136
- 默认管理员账号:
- 账号:
admin
- 密码:
admin123
- 账号:
Docker 部署
你可以使用项目中提供的 docker-compose.yml 文件进行 Docker 部署,这样可以在容器化环境中运行 FanX,所有依赖都将自动管理。
或者你也可以直接使用 Docker 命令部署:
docker run -d --name fanx -p 5136:5136 -v /docker/FanX/data:/app/data -v /docker/FanX/logs:/app/logs realswaggymacro/fanx:latest
克隆并运行
- 克隆仓库:
git clone https://github.com/SwaggyMacro/FanX.git cd FanX
- 安装依赖(Linux):
# Ubuntu/Debian sudo apt-get update && sudo apt-get install -y ipmitool # RHEL/CentOS/Fedora sudo dnf install -y ipmitool
- 无需手动编辑配置文件,系统提供默认配置并支持在界面中调整通知和数据库连接等设置。
- 编译并运行:
dotnet build dotnet run --project FanX/FanX.csproj
- 在浏览器访问以下地址,使用管理员账号登录并开始配置:
- http://localhost:5136
- 默认管理员账号:
- 账号:
admin
- 密码:
admin123
- 账号:
如何使用
- 登录后,您可以在
/ipmi-config
页面配置 BMC(iDrac) 地址、用户名和密码。 - 在
/fan-control
页面定义自定义或智能风扇控制规则。 - 在
/notifications
页面配置通知渠道和规则,包括企业微信机器人、Webhook、Telegram 机器人、邮箱等。 - 在
/settings
页面设置日志保留天数、传感器数据保留策略等。(默认30天)
如果你需要手动调控风扇,可以在
/fan-control
页面设置为手动控制,然后前往/debug
页面手动调节风扇转速,支持单个风扇手动调节。
配置说明
/ipmi-config
页面:配置 BMC(iDrac) 地址、用户名、密码/fan-control
页面:定义自定义或智能风扇控制规则/notifications
页面:配置通知渠道和规则,包括企业微信机器人、Webhook、Telegram 机器人、邮箱等/settings
页面:设置日志保留天数、传感器数据保留策略等
界面截图
- 感谢你赐予我前进的力量
赞赏者名单
因为你们的支持让我意识到写文章的价值🙏
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 Swaggy Macro
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果