大文件传输中断主要是 macOS 默认开启的以太网节能模式(EEE)与部分交换机或USB-C转接器协商失败所致;可通过 ifconfig 临时禁用或脚本永久禁用,并需验证物理层协商状态与错误计数。

为什么大文件传输会中断?其实是 EEE 在“省电”
MacOS 默认开启以太网节能模式(EEE,Energy Efficient Ethernet),它会在链路空闲时降低 PHY 层功耗。问题在于:某些交换机、USB-C 转接器(尤其是 Realtek RTL8153、ASIX AX88179)或老旧千兆交换机与 macOS 的 EEE 协商不一致,导致大文件持续传输几十秒后突然掉速、重协商失败甚至断连——ifconfig en0 | grep eee 显示 eee: on 就是根源。
临时禁用:终端一条命令立即生效
适合测试是否真由 EEE 引起,也适用于临时连接 NAS 或备份场景。注意:重启后失效。
- 先查接口名:
networksetup -listallhardwareports | grep -A 1 "Ethernet",记下类似en0或en7的名字 - 执行禁用:
sudo ifconfig en0 eee off(把en0换成你的真实接口) - 验证是否成功:
ifconfig en0 | grep eee,输出应为eee: off - ⚠️ 坑:别对
lo0或awdl0执行,只作用于物理以太网口;若提示Operation not supported,说明驱动不暴露该控制(见下一条)
永久禁用:绕过驱动限制的可靠写法
部分 USB 网卡(如常见绿联/贝尔金千兆适配器)的 macOS 驱动根本不响应 ifconfig xxx eee off。这时得用系统级启动脚本 + 网络服务钩子,确保每次插拔网线或唤醒后都重置。
- 创建脚本:
sudo nano /Library/Scripts/disable-eee.sh,粘贴以下内容(自动识别当前以太网口):#!/bin/sh iface=$(networksetup -listallhardwareports | awk '/Ethernet/{getline; print $2}') ifconfig "$iface" eee off 2>/dev/null - 赋权:
sudo chmod +x /Library/Scripts/disable-eee.sh - 绑定到网络服务:先用
networksetup -listallservices | grep -B 1 "Ethernet"找到服务名(如USB 10/100/1000 LAN),再运行:sudo networksetup -setadditionalroutes "USB 10/100/1000 LAN" 0.0.0.0 0.0.0.0 ""—— 这步不加路由,只是触发系统在服务启停时调用脚本 - ⚠️ 坑:不要手动编辑
com.apple.networkextension.plist,macOS 13+ 已弃用该方式;脚本路径必须是/Library/Scripts/,~/Scripts不生效
确认是否真解决了?别只看速度数字
禁用 EEE 后,传输中断消失 ≠ 链路已稳定。还要交叉验证物理层状态:
- 检查协商结果:
ifconfig en0 | grep "media:",应显示media: autoselect (1000baseT/Full),而非100baseTX/Half或反复跳变 - 观察日志:
log show --predicate 'subsystem == "com.apple.networking" && eventMessage contains "EEE"' --last 5m,无EEE disabled或negotiation failed才算干净 - 真实压测:用
rsync -av --progress /large-file.bin user@nas:/backup/持续传 2GB+,同时监控netstat -ib | grep en0的Ierrs和Oerrs是否归零 - ⚠️ 坑:有些雷电扩展坞在禁用 EEE 后反而无法唤醒,需搭配
sudo pmset -a tcpkeepalive 1补偿,否则休眠唤醒后首包延迟高

















