macOS中可通过四种方式实现带宽限制:一、用Network Link Conditioner进行系统级模拟限速;二、用pfctl配合dummynet做进程级防火墙限速;三、用Throttled工具动态控制指定应用速率;四、用Little Snitch通过延迟注入间接抑制吞吐。

如果您希望在 macOS 系统中对网络带宽进行精细控制,或针对特定应用程序实施上传/下载速率限制,则需借助系统内置命令行工具或第三方工具实现。以下是具体操作步骤:
一、使用 Network Link Conditioner 启用系统级带宽模拟与限制
Network Link Conditioner 是 Apple 官方提供的开发辅助工具,集成于 Xcode 开发者工具套件中,可模拟各类网络环境并施加固定带宽上限,适用于测试及临时限速场景。
1、打开 Xcode,点击菜单栏 Xcode → Open Developer Tool → More Developer Tools…,跳转至 Apple 开发者网站下载并安装 “Additional Tools for Xcode”。
2、安装完成后,在 /Applications/Xcode.app/Contents/Developer/Applications/ 目录下找到并启动 Network Link Conditioner.app。
3、点击右上角开关启用工具,选择预设配置(如 “Very Bad Network”)或点击 “Custom” 进入自定义模式。
4、在自定义界面中,分别设置 Input Bandwidth(下行) 与 Output Bandwidth(上行) 的 KB/s 值,勾选 “Enable” 并关闭窗口生效。
二、通过 pfctl 配置防火墙规则实现进程级限速
macOS 内置的 pf(Packet Filter)防火墙支持基于 UID 或进程名的流量匹配,并可结合 dummynet 模块实施带宽整形。该方法无需第三方软件,但需手动编写规则并启用内核模块。
1、创建限速配置文件:sudo nano /etc/pf.traffic.shaper,写入如下内容(以限制 Safari 浏览器上传速率为 512KB/s 为例):
2、执行 sudo sysctl net.inet.ip.dummynet.load=1 加载 dummynet 内核模块。
3、运行 sudo pfctl -f /etc/pf.traffic.shaper 加载规则,随后 sudo pfctl -e 启用 pf 防火墙。
4、验证规则是否生效:执行 sudo pfctl -s queue 查看当前队列状态及实时速率。
三、使用 Throttled 工具对指定应用进程动态限速
Throttled 是开源的 macOS 进程级带宽控制器,支持按 PID 或进程名实时调整网络吞吐,依赖 launchd 自动管理,适合长期运行的应用限速需求。
1、通过 Homebrew 安装:brew install throttled。
2、编辑配置文件:nano ~/Library/Application Support/throttled/config.json,添加目标应用条目,例如:
3、启动服务:brew services start throttled 或手动运行 throttled --config ~/Library/Application\ Support/throttled/config.json。
4、确认进程已受控:执行 throttled --list 显示当前被限速的进程及其设定速率。
四、借助 Little Snitch 创建基于连接规则的应用带宽策略
Little Snitch 是商业网络监控工具,虽不直接提供数值化限速滑块,但可通过“规则组+连接拦截+延迟注入”组合方式间接达成可控速率抑制效果,尤其适用于拒绝非关键应用抢占带宽的场景。
1、安装并启动 Little Snitch,点击菜单栏图标进入配置界面,选择 Rules → New Rule…。
2、在规则向导中,将“Process”设为指定应用(如 Zoom),将“Action”设为 Allow with latency。
3、输入延迟毫秒值(如 200ms),该延迟会叠加于每次 TCP 握手与数据包往返,显著降低有效吞吐率。
4、勾选 Apply to all connections of this process,点击 Save 完成规则部署。










