为什么我要自己写一个 Mac 风扇控制工具
风扇起飞时菜单栏什么都看不到。找不到一款同时免费、开源、常驻菜单栏的工具,于是自己写了 FanBar。
一、起因:风扇响了,我却只能干瞪眼
前阵子半夜赶一个 Xcode 打包,MacBook 的风扇突然起飞,嗡嗡声在安静的房间里格外刺耳。我下意识去看菜单栏——什么都没有。温度多少?转速多少?要不要紧?全凭感觉猜。
macOS 在这方面一向“优雅但冷漠”:系统自己会调风扇,但不告诉你它在干什么。想看清状况、想手动干预,就得靠第三方工具。市面上有几款可选,但跟我想要的都不完全重合(细说见下一节),干脆自己写了一个,叫 FanBar。
二、为什么不用 Macs Fan Control / iFan?
先说结论:这两款我都试过,都挺好,但跟我想要的不完全重合。
Macs Fan Control 是这个领域的老前辈,Intel 和 Apple Silicon 都支持,温度监控(连第三方硬盘的 S.M.A.R.T. 都能读)、自定义转速、按传感器联动,功能上没得挑。代价是完整功能要买 Pro(约 $15),而且闭源——风扇这种直接碰硬件的东西,我个人更希望代码是公开可审计的。
iFan(国内 Better365 出品)跟我的需求画像最接近:原生支持 M 系列和 Intel,有一键最大转速、手动调单个风扇、按温度设策略,版本也在持续更新。缺点同样是闭源商业软件。
所以我的需求清单其实很短,就三条:免费、开源、常驻菜单栏。三条同时满足的没找到,就自己动手了。
| FanBar | Macs Fan Control | iFan(Better365) | |
|---|---|---|---|
| 价格 | 免费 | 基础免费,Pro 版约 $15 | 官网未标价(直接下载 .pkg) |
| 开源 | ✅ 开源 | ❌ 闭源 | ❌ 闭源(商业公司出品) |
| 芯片 | Apple Silicon + Intel | Intel + Apple Silicon | 原生支持 Apple M 系列 + Intel |
| 风扇控制 | 4 预设 + 自定义温度→转速曲线 | 自定义 RPM / 按传感器联动 + 预设 | 一键最大转速 / 手动单风扇调速 / 自定义温度策略 |
| 温度监控 | CPU/GPU/SSD/电池 + 十分钟曲线 | 实时监控,支持 S.M.A.R.T. 第三方硬盘 | CPU/GPU/硬盘/电池/无线网卡实时监测 |
| 菜单栏常驻 | ✅ | ✅ | 未明确(以独立 App 形态为主) |
| 安全兜底 | 退出/异常自动交还系统控制 | 退出时恢复 Auto | 未公开说明 |
| 签名公证 | Developer ID 签名 + 公证 | ✅ | .pkg 分发(Better365 系正规厂商) |
| 语言 | 中英双语 | 多语言 | 中文为主 |
| 维护状态 | 活跃开发 | 活跃(商业公司) | 活跃(当前版本 1.1.3) |
三、FanBar 长什么样

FanBar 常驻在菜单栏,平时就显示 CPU 温度和风扇转速两个数字,扫一眼心里就有数。点开之后是一个小面板:CPU、GPU、SSD、电池的实时温度,下面还有一条十分钟的滚动温度曲线,刚才那波风扇起飞到底是因为什么,一目了然。

风扇控制有四个预设,分别对应四种真实场景,而不是四个抽象档位:
- 写代码、编译、转视频 → 切「性能」或「极速」:优先把温度压下去,风扇吵一点没关系,重活跑完再切回来
- 深夜赶工、开会、图书馆 → 切「静音」:转速压到最低,但温度曲线依然兜着,真热起来了风扇还是会转,不会为了安静让机器硬扛高温
- 日常使用 → 「均衡」,不用管,它自己看着办
每个预设都可以自己画温度–转速曲线——比如 60°C 以下保持 2500 转,75°C 拉到 4500 转,85°C 直接顶满。曲线是可视化拖的,不用记什么 SMC key。


另外还有几个我自己天天在用的小功能:温度超过 90°C 可选推送通知;macOS 14 以上可以在桌面放个小组件,不用点菜单栏也能看到;中英文界面一键切换。
四、写的时候,我最在意的三件事
风扇控制是直接碰硬件的事,写得糙了轻则吵、重则有风险。所以有三件事我从一开始就定了死规矩。
第一,权限隔离:App 本体永远不直接碰硬件。
FanBar 分成两部分:菜单栏 App 只负责读数据、画界面、存配置;真正读写 AppleSMC 的是一个独立的 root 权限 Helper。两者之间通过 XPC 通信,而且 Helper 只接受“把 N 号风扇设到 X 转”这种很窄的指令。App 就算出 bug,也够不着不该碰的东西。
第二,安全兜底:风扇永远不会“失控”。
Helper 只在硬件上报的转速范围内调速,不会写出离谱的值。更重要的是退出机制:你退出 App、或者 Helper 异常崩掉,控制权会自动交还给 macOS,回到系统默认的温控策略。最坏的情况就是“跟没装一样”,而不是风扇狂转或者停转。这是我写这个工具的底线。
第三,签名公证:下载即装,不用折腾系统。
GitHub Releases 里的 DMG 都是 Developer ID 签名、经过 Apple 公证的。安装不需要关 SIP,不需要绕过 Gatekeeper,拖进 Applications 就能用。一个碰硬件的工具如果还要你先把系统保护关掉,那本身就不值得信任。
顺带一提实现上的坑:M 系列和 Intel 的 SMC 在风扇控制上的表现不太一样,手动模式的进入时序、key 的命名都有差别,调试的时候吃了不少苦头。代码都开源在仓库里,对 AppleSMC 那部分实现感兴趣的可以去翻。
五、能用在哪,怎么拿
支持 macOS 11 及以上,Apple Silicon 全系可用;Intel 机型需要机器能读到 AppleSMC 的风扇数据(大部分 2016 年后的机型都没问题)。
FanBar 免费、开源,地址在这里:
https://github.com/helson-lin/FanBar
目前预设的四条曲线是我按自己的 MacBook 调的,不同机型散热表现差很多。如果你是 Intel 机主,或者手里有 Mac mini、iMac 这类机器,欢迎装上试试、提 issue 告诉我实际表现——曲线这部分,我还想继续调得更准。
最后祝大家中秋快乐!