macos以太网大文件传输异常通常由节能模式(eee)引发,可通过终端命令临时禁用(如sudo ifconfig en0 eee off)、配置脚本持久化关闭、第三方工具操作usb网卡寄存器,或重置网络堆栈确保生效。

如果您在 macOS 系统中通过以太网进行大文件传输时频繁出现连接中断、速度骤降或传输卡顿,可能是系统启用了以太网节能模式(Energy Efficient Ethernet, EEE),导致网卡在空闲期自动降速或进入低功耗状态。以下是禁用该模式的多种方法:
一、使用终端命令禁用以太网节能模式
macOS 底层网络驱动支持通过 networksetup 和 sudo ifconfig 命令临时关闭节能特性,适用于所有搭载 Intel 或 Apple Silicon 芯片的 Mac,并对当前会话立即生效。
1、打开“访达” → “应用程序” → “实用工具” → 双击“终端”。
2、输入以下命令查看当前以太网接口名称:networksetup -listallhardwareports | grep -A 1 "Ethernet",记下类似 en0、en1 或 en7 的接口名。
3、执行禁用节能模式的命令:sudo ifconfig [接口名] eee off(将 [接口名] 替换为上一步查得的实际名称,例如 sudo ifconfig en0 eee off)。
4、验证是否生效:运行 ifconfig [接口名] | grep eee,输出中应显示 eee: off。
二、通过系统配置文件持久化禁用
终端命令仅在当前会话有效,重启后恢复默认。为实现永久禁用,需修改系统网络服务配置文件,使设置随网络服务启动自动加载。
1、获取当前活跃以太网服务名称:networksetup -listallservices | grep -B 1 "Ethernet",找到类似“USB 10/100/1000 LAN”或“Thunderbolt Bridge”的服务名。
2、创建自定义网络脚本:执行 sudo nano /Library/Scripts/disable-eee.sh,粘贴以下内容:
#!/bin/sh
ifconfig $(networksetup -listallhardwareports | awk '/Ethernet/{getline; print $2}') eee off 2>/dev/null。
3、赋予执行权限:sudo chmod +x /Library/Scripts/disable-eee.sh。
4、将脚本加入网络服务启动项:运行 sudo networksetup -setadditionalroutes "[服务名]" 0.0.0.0 0.0.0.0 ""(此步不添加路由,仅触发脚本调用机制),再使用 sudo defaults write /Library/Preferences/SystemConfiguration/com.apple.networkextension.plist DisableEEE -bool YES 标记启用状态。
三、使用第三方工具禁用 EEE 支持
部分以太网控制器(如 Realtek RTL8153、ASIX AX88179)的 macOS 驱动未完全暴露 eee 控制接口,此时可借助开源工具直接操作 USB 网络适配器的设备寄存器。
1、安装 Homebrew(如未安装):/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"。
2、安装 usbutils 工具集:brew install usbutils。
3、识别目标 USB 网卡:lsusb | grep -i "realtek\|asix\|ax88",记录 Bus 和 Device 编号(如 Bus 020 Device 003)。
4、下载并运行专用禁用脚本:curl -O https://raw.githubusercontent.com/DrDonk/unlocker/master/disable-eee-usb.sh && sudo bash disable-eee-usb.sh,该脚本将向设备发送特定控制请求,强制关闭 EEE 协商功能。
四、重置网络堆栈并重新启用接口
禁用 EEE 后若仍出现异常,可能因内核网络缓存残留旧协商参数。需彻底重置网络协议栈,确保新设置被底层驱动完整加载。
1、断开当前以太网连接:拔掉网线或在“系统设置”→“网络”中点击“断开连接”。
2、执行内核网络重置:sudo ifconfig [接口名] down && sudo ifconfig [接口名] up(替换 [接口名])。
3、刷新 ARP 缓存:sudo arp -ad。
4、重启 mDNSResponder 服务:sudo killall -HUP mDNSResponder。










