macOS上限制单应用带宽有三种方法:一是用netman图形工具为指定.app设置上下行速率;二是用pfctl配合端口临时限速;三是通过路由器QoS按应用或端口全局限速。

你想让某个应用(比如迅雷、微信或视频会议软件)不抢光带宽,又不想彻底断网——这需要在 macOS 上对它的出站流量做速率限制,而非系统防火墙默认支持的入站拦截。
用网络限速工具 netman 实现单应用带宽控制
netman 是专为 macOS 设计的 Userland 网络管理工具,能识别进程并单独设定上传/下载上限,无需 root 权限即可生效。
第一步:访问 https://github.com/netman-dev/netman 下载最新 .dmg 安装包,双击挂载后拖拽 netman.app 到「应用程序」文件夹。
第二步:首次运行时,系统会提示“无法验证开发者”,点右键→“打开”,再点“打开”绕过 Gatekeeper 限制;随后在弹出的权限请求中勾选“网络监控”和“辅助功能”两项,点击“好”。
第三步:点击菜单栏 netman 图标 → “Preferences” → 切换到 “Rules” 标签页 → 点击左下角“+”号 → 在弹窗中选择目标应用(例如 【/Applications/WeChat.app】),注意必须选 .app 包本体,不能选别名或快捷方式。
第四步:在新添加的规则行中,分别设置“Download Limit (KB/s)”和“Upload Limit (KB/s)”,填入具体数值(如设为 512 即限制为 512KB/s);勾选“Enable Rule”启用该规则,关闭窗口即刻生效。
用终端命令配合 pfctl 临时限速(需管理员密码)
此方法不依赖第三方工具,但仅适用于已知应用使用的端口范围,且每次重启后规则失效,适合调试或临时压制某进程。
方法一:先查出目标应用当前占用的端口
打开终端,执行:lsof -iTCP -sTCP:ESTABLISHED -Pn | grep -i "weixin\|wechat",观察输出中 PID 对应的本地端口(如 51234)。
方法二:创建限速规则文件
执行 sudo nano /etc/pf.anchors/limit_app,粘贴以下内容(将 51234 替换为上一步查到的端口,100KB/s 可按需调整):
scrub on en0 all fragment reassemble<br>altq on en0 cbq bandwidth 100Mb queue { std, limit_q }<br>queue std bandwidth 99% cbq(default)<br>queue limit_q bandwidth 1% cbq(borrow)<br>match out on en0 proto tcp from any to any port 51234 set queue limit_q
方法三:加载规则
依次执行:sudo pfctl -e → sudo pfctl -f /etc/pf.conf → sudo pfctl -a limit_app -f /etc/pf.anchors/limit_app。此时该端口出站流量已被压至 1% 带宽,实际速率约等于总带宽 × 1%。
注意:en0 是多数 Mac 的主网卡名,若使用 Wi-Fi 但接口名为 en1,请同步替换所有 en0 为 en1。
通过路由器 QoS 功能间接限速(无需 Mac 端操作)
如果你的路由器支持 QoS(服务质量)策略,可直接在局域网层面限制该设备上特定应用的流量,对 macOS 无侵入性,且规则长期有效。
登录路由器后台(通常为 192.168.1.1 或 192.168.0.1),找到「QoS」或「带宽控制」页面。
添加新规则,类型选“应用识别”或“端口范围”,填写微信常用端口(如 TCP 80、443、8080、5222–5223)或迅雷的 8648、6881–6999。
设置上下行最大带宽(例如上传限 200Kbps,下载限 2Mbps),保存后重启路由器使策略生效。











