nsurlsessiond占用了全部带宽

26

enter image description here

我正在尝试寻找一种解决方案,以防止nsurlsessiond占用我所有的带宽。它每天使用2GB的数据。我也尝试了下面的链接。由于这个问题,我无法完成公司的工作。请问有谁能帮忙吗?

  1. https://forums.macrumors.com/threads/nsurlsessiond-heavy-network-usage.2027130/
  2. https://forums.macrumors.com/threads/nsurlsessiond-process-going-crazy-on-catalina.2228994/
  3. https://forums.macrumors.com/threads/nsurlsessiond-downloading-data.1785204/
  4. https://discussions.apple.com/thread/6605949

我在点击nsurlsessiond时遇到了这个问题。

enter image description here


如果您关闭模拟器,它是否停止使用带宽? - Phillip Mills
@PhillipMills,不,它没有停止。 - Rahul Parikh
请检查此网址:https://www.swiftdevcenter.com/nsurlsessiond-keep-downloading-and-consuming-all-bandwidth-xcode/ - Ashish Chauhan
1
如果是Mac用户,请在Apple Podcasts应用程序中禁用播客的自动下载。不客气。;-) - Ewan
8个回答

26

我通过禁用软件更新来解决这个问题。

前往“系统偏好设置” -> “软件更新”

点击“高级选项...”,取消选择“检查更新”

输入图像描述

编辑

我最近又遇到了这个问题,但只有在打开iOS模拟器时才会出现。我不知道问题在哪里,但模拟器将使用大约500MB的互联网流量,然后恢复正常。 你可以等到模拟器停止下载,或者按照@Lutze的说明阻止该URL使用防火墙。


1
你是我的英雄 :) - Kamlesh
我花了好几天试了很多方法,但只有这个答案有所帮助。非常感谢! - Prilaga
谢谢你的帮助。我正在访问一个数据费用比原来贵20倍的新国家。我的Mac电脑像吸果汁一样不断消耗着所有的数据,让我感到非常头疼。 - Abdul Saleem
非常感谢!我关闭Mac后它会冷静下来。 - undefined

3
主要问题是任何应用程序都可以将传输委托给NSURLSession Daemon。作为解决方法,您可以使用应用程序防火墙(例如Little Snitch)来检测和阻止流量来源的特定域。
在我的情况下,占用大量带宽的是"osxapps.itunes.apple.com"。 Little Snitch阻止的域的屏幕截图

1

最佳解决方案:

您可以创建一个脚本,每当创建nsurlsessiond时运行并自动停止它,您可以使用launchd,这是macOS上的内置系统服务,用于管理进程并在特定间隔或响应特定事件时运行脚本。

以下是创建监视nsurlsessiond并自动停止它的launchd脚本的步骤:

1- 在MacBook上打开终端应用程序。

2- 运行以下命令创建新的launchd配置文件:

nano ~/Library/LaunchAgents/com.example.nsurlsessiond-monitor.plist

这将打开nano文本编辑器并在LaunchAgents目录中创建一个名为com.example.nsurlsessiond-monitor.plist的新文件。

3- 将以下XML代码粘贴到nano文本编辑器中:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
  <dict>
    <key>Label</key>
    <string>com.example.nsurlsessiond-monitor</string>
    <key>ProgramArguments</key>
    <array>
      <string>/bin/bash</string>
      <string>-c</string>
      <string>while true; do
          if pgrep nsurlsessiond > /dev/null; then
            killall nsurlsessiond
          fi
          sleep 5
        done</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
    <key>KeepAlive</key>
    <dict>
      <key>SuccessfulExit</key>
      <false/>
    </dict>
  </dict>
</plist>

这段代码定义了一个launchd配置文件,该文件运行一个bash脚本,每5秒检查一次是否正在运行nsurlsessiond,如果是则停止它。 KeepAlive键确保脚本始终在运行,并且SuccessfulExit键确保如果脚本以错误退出,则重新启动脚本。

4-保存文件并通过按Control+O,然后Enter,然后Control+X退出nano。

5-通过运行以下命令加载launchd配置文件:

launchctl load ~/Library/LaunchAgents/com.example.nsurlsessiond-monitor.plist

这将注册launchd作业并开始运行脚本。

现在,每当创建nsurlsessiond时,脚本将自动停止它。如果您想手动停止脚本,可以通过运行以下命令卸载launchd配置文件:

launchctl unload ~/Library/LaunchAgents/com.example.nsurlsessiond-monitor.plist

1

我曾经遇到相同的问题,然后我用这种方式修复:

系统设置 > Apple ID > iCloud > iCloud Drive > 关闭

重要提示:在此过程完成后,您的数据可能无法与iCloud同步。

iCloud Settings


0

如果 Nsurlsessiond 导致高 CPU 和带宽使用率,请执行以下步骤:

1 - 打开活动监视器,找到trustd进程。

2 - 从PID列中复制其PID

3 - 启动终端并运行# sudo kill -9 [trustd PID] 命令结束父级 trustd 进程。

Note: Replace [trustd PID] with the PID you just copied.

4 - 运行# ls -la /var/folders/zz | grep nsurlsessiond命令以查找特定的“随机名称”目录。您需要此信息来执行下一个命令。

5 - 然后,运行# sudo rm -fr /var/folders/zz/[随机名称]命令以删除nsurlsessiond临时目录。

Note: Replace [randomized name] with the name you previously found.

来源


6 - 跟随这个解决方案


0
launchctl unload /System/Library/LaunchAgents/com.apple.nsurlsessiond.plist
sudo launchctl unload /System/Library/LaunchDaemons/com.apple.nsurlsessiond.plist
sudo launchctl unload /System/Library/LaunchDaemons/com.apple.nsurlstoraged.plist

这对我有效。


1
虽然这段代码可能会解决问题,但最好加上为什么/如何运作的背景。这可以帮助未来用户学习并最终将该知识应用于自己的代码。当解释了代码时,您还有可能获得其他用户的积极反馈/点赞。 - Amit Verma

0

这个问题困扰了我几天 - 我安装了一直悬而未决的11.3.1版本,问题似乎得到了解决。


-2

我使用了 Cloudflare Warp 应用程序,它阻止了 nsurlsessiond 的下载。

在我的 MacBookPro 上使用 Big Sur 操作系统,这对我很有效 :)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接