我们家里有 Wi-Fi 网络,至少有五台不同的设备(2 台 PC、2 部手机、1 台 Mac)可以访问。其中四台的互联网速度非常快,但在六个月前的 MacBook Air 上,互联网似乎在加载各种网页(在 Chrome 和 Safari 上)时会出现间歇性延迟(长达数分钟)。Mac 可以完美快速地执行所有与互联网无关的任务。奇怪的是,在进行速度测试(speedtest.net)时,Mac 上的性能似乎与其他设备相同(下载速度为 5mbps/上传速度为 3mbps)。
我不知道接下来该去哪里。
编辑:我是一名长期的 PC 用户,但是我对 Mac 的了解却非常有限。
答案1
您的问题听起来像是 DNS 查找停顿,而discoveryd
OS X Yosemite(OS X v10.10.x)中的新守护进程是许多这些问题的根源。
Yosemite 更新至 v10.10.4 已于今日 (2015-06-30 星期二) 发布,它将替换discoveryd
为更成熟且调试更好的更新版本mDNSResponder
。
对于大多数遇到 DNS 停滞的 Yosemite 用户来说,正确的答案是安装现已发布的 10.10.4 更新,而不是经历手动替换discoveryd
Mavericks(OS X v10.9.x)旧版本的麻烦mDNSResponder
。
编辑/更新:10.10.4 现已发布。
答案2
参见 Ars:为什么 OS X 10.10 中的 DNS 会损坏,以及如何修复它
解析 DNS 名称随机失败。这种情况很少见,但 Safari 偶尔会停止加载任何网站。原来是 OS X DNS 解析器停止工作了。(nslookup、host 或 dig 等命令行工具仍可工作,因为它们使用自己的 DNS 查找代码。)
从 Ars 文章中复制而来......
如果你敢的话,可以恢复 mDNSResponder
首先要提醒一下:如果出现问题,您的 Mac 可能无法启动。可以通过在单用户模式下启动并重新启用 discoveryd 来解决此问题(见下文)。请确保您有最近的备份以防万一,并且仅在您准备在需要时启动到单用户模式时才执行以下步骤。
您需要做的第一件事是找到 10.9 mDNSResponder、mDNSResponderHelper 及其 plist 文件的副本。在 10.9 系统上,它们分别位于 /usr/sbin/ 和 /System/Library/LaunchDaemons 中。这些终端命令会将它们复制到桌面,以便轻松复制到您想要安装它们的 10.10 系统:
cd ~/Desktop/
cp /usr/sbin/mDNSResponder .
cp /usr/sbin/mDNSResponderHelper .
cp /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist .
cp /System/Library/LaunchDaemons/com.apple.mDNSResponderHelper.plist .
获取 mDNSResponder 及其帮助程序的另一种方法是通过 Time Machine 备份。连接您的 Time Machine 驱动器或单击 (Time Capsule) 网络驱动器上的备份映像。接下来,导航到 10 月 16 日之前的备份,当时您仍在运行 OS X 10.9,如下所示:
cd /Volumes/Time Machine Backups/Backups.backupdb/
cd <my machine name>
ls
cd <date/time of backup>
cd Macintosh\ HD
cp usr/sbin/mDNSResponder ~/Desktop/
cp usr/sbin/mDNSResponderHelper ~/Desktop/
cp System/Library/LaunchDaemons/com.apple.mDNSResponder.plist ~/Desktop/
cp System/Library/LaunchDaemons/com.apple.mDNSResponderHelper.plist ~/Desktop/
完成这些准备后,您可以将 mDNSResponder 和帮助程序复制到 OS X 10.10 机器:
sudo cp mDNSResponder /usr/sbin/
sudo cp mDNSResponderHelper /usr/sbin/
sudo cp com.apple.mDNSResponder.plist /System/Library/LaunchDaemons/
sudo cp com.apple.mDNSResponderHelper.plist /System/Library/LaunchDaemons/
然后,停用 discoveryd 并激活 mDNSResponder。请记住,sudo 使命令以 root 或系统管理员权限执行,因此它会要求输入系统管理员密码。如果您收到“找不到指定的服务”的提示,请不要担心。
sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.discoveryd.plist
sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.discoveryd_helper.plist
sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist
sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.mDNSResponderHelper.plist
现在重新启动。
如果您希望重新激活 discoveryd,请使用以下命令。如果您的机器无法正常启动,请在按住 command-S 的同时重新启动以进入单用户模式,然后您就可以输入这些命令了。完成后输入“exit”。
sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist
sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.mDNSResponderHelper.plist
sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.discoveryd.plist
sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.discoveryd_helper.plist
您可能想知道,由于您使用的是如此重要的系统组件的旧版本,哪些新的 OS X 10.10 功能不再可用。据我们在短时间的测试中所知,所有主要功能都仍然存在 - Handoff 和 AirDrop 可以双向使用。享受您重新发现的网络稳定性。
- 没有保证!
- 如果您不能胜任,请找人帮忙。
- 请先备份。
- 确保您知道如何启动到单用户模式,以防这不起作用。
答案3
这可能完全没用,但由于我现阶段无法发表评论,因此该评论仅作为答案。
我最近在一台较旧的 MacBook Pro 上遇到了类似的问题,我绞尽脑汁想找出原因。霹雳总线/适配器/监视器等干扰了 wifi......
因此,如果你正在使用任何与雷电相关的产品,我建议你更换你的无线网络通道在您的路由器上(对我来说,通道 1 有效)。
高血压