下载地址
https://www.zhengdianxue.com/wp-content/uploads/skills/user_8b8cfa59--mac-network-diagnostic.zip将提示词发送给你的 AI 安装该 skills
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_8b8cfa59/mac-network-diagnostic。Mac电脑网络修复技能简介 一句话概括 macOS 网络诊断与修复技能 —— 用系统化的分层排查流程,快速定位并修复 Mac 网速慢、Wi-Fi 不稳定、频繁掉线等网络问题。 适用场景 当用户反映以下问题时使用: 网速慢、下载慢 Wi-Fi 不稳定、网络卡顿 频繁掉线、连不上网 需要网络诊断、检查网络 macOS 12 及以上版本 核心能力 五阶段分层诊断:从内网到外网逐层排查 Phase 1:收集网络基本信息(接口状态、Wi-Fi 信号、DNS、MTU、代理) Phase 2:Ping 路由器,区分内网/外网问题 Phase 2b:包大小阈值测试(核心亮点)—— 定位 Wi-Fi 大包丢弃 Phase 3:外网连通性测试 Phase 4:真实下载测速 Phase 5:后台进程与蓝牙干扰检查 隐蔽问题识别:能识别常规诊断容易遗漏的问题 Wi-Fi 大包丢弃(小包正常、大包丢包导致下载极慢) 蓝牙/Wi-Fi 共存干扰 信道拥塞 MCS 链路质量降级 六种修复方案:根据诊断结果对症下药 降 MTU(解决大包丢弃) 关闭蓝牙(解决共存干扰) 忘记并重连 Wi-Fi 重置 Wi-Fi 守护进程(airportd) 删除 Wi-Fi 偏好设置(终极手段) 更换信道(解决信道干扰) 更换信道(解决信道干扰)
阅读全文 (展开查看完整说明)
概述
Mac Network Diagnostic
Overview
系统化的 macOS 网络诊断流程,从内网链路到外网连通性逐层排查。核心方法论:通过不同大小的数据包 Ping 路由器来检测 Wi-Fi 链路的帧丢失阈值——这是常规诊断最容易遗漏的隐蔽问题。小包不丢但大包丢,会导致 Ping 看似正常但实际下载极慢。
Diagnostic Workflow
按以下顺序执行诊断。每个步骤的命令直接复制运行,根据输出结果决定是否继续下一步。
Phase 1: Basic Network Info
收集网络基本信息,了解当前连接状态。
# 网络接口状态
ifconfig en0 | grep -E "inet |status|mtu"
# Wi-Fi 连接详情(信号、信道、速率、MCS)
system_profiler SPAirPortDataType 2>/dev/null
# DNS 配置
networksetup -getdnsservers Wi-Fi
# 当前 MTU
networksetup -getMTU en0
# 系统代理(排除代理干扰)
scutil --proxy
# VPN/代理软件检查
ps aux | grep -iE "clash|surge|v2ray|shadowsocks|trojan|wireguard|openvpn" | grep -v grep关键指标解读:
- Signal (RSSI): -30~-50 极好, -50~-60 良好, -60~-70 较差, <-70 差
- Noise: 越低越好(-90 以下为佳)
- SNR = Signal – Noise: >30dB 良好, >20dB 可接受, <20dB 差
- MCS Index: 802.11ac 理想值 8-9,低于 6 说明链路质量已降级
- PHY Mode: 802.11ac/ax (5GHz) 理论更快,802.11n (2.4GHz) 穿墙更稳
Phase 2: Internal Network Test (Router)
Ping 路由器是判断问题在内网还是外网的关键。获取路由器 IP 后执行:
# 获取路由器 IP
networksetup -getinfo Wi-Fi | grep Router
# 标准小包 Ping(56 bytes)
ping -c 10 -i 0.2 <router_ip>
# 大包 Ping(1400 bytes,接近 TCP MSS)
ping -c 10 -i 0.2 -s 1400 <router_ip>判断逻辑:
- 小包和大包都 0% 丢包 + <5ms 延迟 → 内网正常,问题在外网或 ISP
- 小包 0% 但大包丢包 → Wi-Fi 大包丢弃问题(核心隐蔽故障,进入 Phase 2b)
- 小包就丢包 → Wi-Fi 信号严重不足或路由器问题
- "No route to host" → Wi-Fi 连接间歇性断开
Phase 2b: Packet Size Threshold Test (Critical)
当 Phase 2 发现大包丢包时,必须执行此测试定位丢包阈值。
# 逐步增大包大小,找到 0% → 丢包的临界点
for size in 56 300 500 800 1200 1400; do
echo "=== Packet size: $size ==="
ping -c 5 -i 0.2 -s $size <router_ip> 2>&1 | tail -3
done典型结果模式:
- 全部 0% 丢包 → 不是包大小问题,查其他原因
- ≤500B 0% 丢包,≥800B 开始丢包 → 确认 Wi-Fi 链路帧丢失问题
- 丢包率随包大小递增 → 典型的信号质量/MCS 降级症状
Phase 3: External Network Test
# 国内 DNS(阿里)
ping -c 10 -i 0.2 223.5.5.5
# 国际 DNS(Google,可选)
ping -c 10 -i 0.2 8.8.8.8判断逻辑:
- 内网正常但外网高延迟/丢包 → ISP 问题或外网路由问题
- 内网和外网都丢包 → 内网问题(Wi-Fi 或路由器)
Phase 4: Download Speed Test
# 下载测速(跟随重定向,超时 20s)
curl -L -o /dev/null -w "速度: %{speed_download} B/sn时间: %{time_total}snHTTP: %{http_code}n大小: %{size_download}n" -s --connect-timeout 10 --max-time 20 "https://download.jetbrains.com/idea/ideaIC-2024.1.4.dmg"注意:测速 URL 必须支持大文件下载且需要 -L 跟随重定向。不要用返回 404 的 URL,会得到错误的速度数据。
Phase 5: Background Process & Interference Check
# 检查蓝牙状态(蓝牙和 Wi-Fi 共用 Broadcom 芯片时可能干扰)
system_profiler SPBluetoothDataType 2>/dev/null | grep -A2 "Controller"
# 检查网络流量 Top 进程(关注 re-tx 列)
nettop -P -L 1 -t wifi 2>/dev/null | head -20
# 检查网络接口错误统计
netstat -i | grep en0Common Fixes
根据诊断结果选择对应修复方案。所有需要 sudo 的命令需用户在终端手动执行。
Fix 1: Lower MTU (Wi-Fi Large Packet Loss)
当 Phase 2b 确认大包丢弃时,降低 MTU 是最直接的缓解方案。
# macOS 最小 MTU 为 1280
sudo networksetup -setMTU en0 1280
# 验证
networksetup -getMTU en0
# 恢复默认
sudo networksetup -setMTU en0 1500原理:TCP 默认 MSS 为 1460 字节(MTU 1500 – 40 头部),如果 Wi-Fi 链路在大包时丢包,降低 MTU 会强制 TCP 使用更小的段,避开丢包区间。代价是 TCP 吞吐效率略降(更多头部开销),但比 40% 丢包好得多。
Fix 2: Turn Off Bluetooth (BT/Wi-Fi Coexistence)
Broadcom BCM4387/4388 等芯片同时处理 Wi-Fi 和蓝牙,蓝牙活动可能干扰 Wi-Fi。在系统设置中关闭蓝牙后重新测速,如果改善则确认共存干扰。
Fix 3: Forget and Rejoin Wi-Fi
清除缓存的错误连接参数,让 Wi-Fi 重新协商速率:
- 系统设置 → Wi-Fi → 选中网络 → 点击「i」
- 选择「忘记此网络」
- 重新搜索并连接,输入密码
Fix 4: Reset Wi-Fi Daemon
不需要重启系统,软重启 Wi-Fi 守护进程:
sudo killall airportd或者关闭再打开 Wi-Fi:
networksetup -setairportpower en0 off
sleep 2
networksetup -setairportpower en0 onFix 5: Delete Wi-Fi Preferences (Nuclear Option)
sudo rm /Library/Preferences/com.apple.wifi.plist
sudo rm /Library/Preferences/com.apple.wifi.messaging-tracker.plist
# 然后重启 MacFix 6: Check Wi-Fi Channel Interference
如果周围有多个 Wi-Fi 网络使用相邻信道,会造成干扰。从 Phase 1 的system_profiler SPAirPortDataType 输出中查看 "Other Local Wi-Fi Networks",如果同一信道或相邻信道有强信号网络,建议更换信道(需路由器端操作)。
5GHz 推荐信道:149, 153, 157, 161(干扰较少)2.4GHz 推荐信道:1, 6, 11(互不重叠)
Diagnostic Script
skill 内置一键诊断脚本 scripts/network_diagnostic.sh,可自动执行Phase 1-4 的所有测试并输出结构化报告:
bash scripts/network_diagnostic.sh脚本会自动检测路由器 IP 并执行全量测试,包括不同包大小的丢包阈值扫描。
Decision Tree
用户反映网速慢/Wi-Fi 问题
│
├─ Phase 1: 收集网络基本信息
│
├─ Phase 2: Ping 路由器(小包 + 大包)
│ ├─ 都正常 → Phase 3: 测外网
│ │ └─ 外网也正常 → 可能是特定应用/网站问题
│ │ └─ 外网异常 → ISP 问题,建议联系运营商
│ │
│ ├─ 小包正常,大包丢包 → Phase 2b: 包大小阈值测试
│ │ └─ 确认大包丢弃 → Fix 1 (降MTU) + Fix 2 (关蓝牙)
│ │
│ └─ 小包也丢包 → 信号严重不足
│ └─ Fix 3 (忘记重连) + Fix 4 (重置Wi-Fi) + 检查物理位置
│
├─ Phase 4: 下载测速验证
│
└─ Phase 5: 后台进程/干扰检查