Как выяснить, какое приложение отправляет/получает огромные объемы данных на iPhone?

У меня есть iPhone, который внезапно (последние два месяца) начал превышать тарифный план на 200 МБ, на котором он был. До этого предела не было даже близко.

Единственная информация, которую предоставляет мне телефонная компания (AT&T), — это суммы и время (насколько я понимаю, это просто время выставления счетов за сгруппированный объем данных). Вот пример:

08/23  12:07 AM  Sent  198679KB
08/22  12:07 AM  Sent  6070KB
08/21  12:06 AM  Sent  13757KB
08/20  12:06 AM  Sent  5993KB
08/19  12:54 AM  Sent  64947KB
08/17  10:05 PM  Sent  165247KB
08/17  12:02 AM  Sent  12707KB
08/16  12:02 AM  Sent  90KB
08/15  12:42 AM  Sent  23581KB
08/14  12:10 AM  Sent  35819KB

И помимо огромного количества подключений к 3G, этот телефон очень мало времени проводил вне сети Wi-Fi.

Есть ли способ (без джейлбрейка!) узнать, какое приложение может передавать столько данных? В настоящее время AT&T не будет или не может предоставить мне разбивку по направлениям трафика. Даже если бы это было возможно, я хотел бы получить ответ, который находится в телефоне, в качестве проверки того, что измеряет оператор, если это возможно.

Похоже, что многие из комментаторов в этой ветке комментариев столкнулись с той же проблемой.
Вы не можете проксировать 3G-трафик, как TCP/IP-трафик. По крайней мере, не проксируйте его и изучайте. Он зашифрован. Если бы вы могли построить 3G-мост, с которым ваш телефон мог бы легко общаться и видеть дейтаграммы через этот мост, отслеживание сетей на основе 3G стало бы пугающе простым. Лучше всего наблюдать за трафиком, когда он находится в сети Wi-Fi.
Я внес довольно важное изменение в свой ответ: когда ваш телефон находится в спящем режиме, он использует 3G, а не WiFi. 3G-радио является энергоэффективным, поэтому Apple решила использовать его, когда устройство находится в спящем режиме. Вам нужно отключить сотовые данные на телефоне с помощью моей методики. Фактически, вы можете отключить использование сотовых данных, чтобы спасти себя, пока вы разбираетесь с этим.
Я, конечно, надеюсь, что это не что-то, что загружает данные камеры на серверы. bits.blogs.nytimes.com/2012/02/28/…

Ответы (8)

После нескольких тщательных прочтений вашего вопроса кое-что выделилось:

И помимо огромного количества подключений к 3G, этот телефон очень мало времени проводил вне сети Wi-Fi.

Ваш iPhone, когда он находится в спящем режиме, отключает радиомодуль WiFi для экономии заряда аккумулятора . Поэтому, если у вас есть приложения, требующие больших объемов данных, которые делают что-то в фоновом режиме, когда ваш телефон спит/заблокирован, они делают это через 3G. Обратите внимание, что поведение WiFi-off-in-sleep-mode несколько непоследовательно. Но вы можете гарантировать, что 3G никогда не будет использоваться вашим телефоном, пока вы выполняете эти тесты, отключив сотовые данные. Таким образом, когда он спит, он будет продолжать использовать Wi-Fi, а не 3G для данных, и вы будете уверены, что захватите весь трафик в вашей сети мониторинга.


Вы можете собрать воедино несколько технологий, которые могут помочь вам отследить преступника.

В качестве быстрого первого прохода вы можете попробовать отслеживать телефон, когда он находится в сети Wi-Fi, используя mitmproxy. Из этого отличного сообщения в блоге mclov.in вы можете настроить прокси для своего телефона на своем Mac и фильтровать через него весь трафик http/s:

  1. Загрузите инструмент mitmproxy и настройте его, перейдя в папку mitmproxy и запустив sudo python setup.py install. Если все пойдет хорошо, mitmproxy должен быть доступен в вашем $PATH.
  2. Запустите mitmproxy, запустив mitmproxy.
  3. Получите IP-адрес вашего компьютера, запустив ifconfig en1 (или любой другой интерфейс, который вы используете).
  4. Установите прокси на вашем iPhone, перейдя в настройки беспроводной сети, установив для прокси значение «Вручную», и установите IP-адрес как IP-адрес вашего компьютера, а порт как 8080.

Если вы настроите mitmproxy на запись вызовов http/s в файл, вы сможете проанализировать его через некоторое время и найти тенденции. Вы также сможете проверить полезные данные в вызовах http/s, чтобы таким образом вы могли обнаружить необычно большие запросы.

Конечно: этот подход предполагает, что преступник использует http/s для связи. Если это не так, вы не увидите проблему через mitmproxy и вам придется прибегнуть к решению более низкого уровня.

Вам необходимо отслеживать весь трафик в сети Wi-Fi, которой вы управляете, чтобы помочь вам найти хотя бы конечные точки для передачи данных. Мониторинг пропускной способности настроить несложно, но вести журнал для каждого IP-адреса и конечной точки действительно сложно на оборудовании потребительского уровня, поскольку это может быть ОГРОМНЫЙ объем данных. Каждый пакет должен проверяться на предмет происхождения, назначения, регистрироваться на предмет времени и размера — это очень быстро складывается.

Но вы можете получить приличные цифры и сузить пространство поиска, чтобы это было что-то потенциально понятное для человека.

Во-первых: вам нужно настроить сеть с мониторингом пропускной способности на уровне каждого IP-адреса. Для этого я рекомендую Wi -Fi-маршрутизатор потребительского уровня Linksys WRT54GL с Tomato и надстройкой TeamanIPTraffic для отслеживания пропускной способности на уровне IP.

Второе: настройте свой DNS на роутере на использование OpenDNS . В вашей учетной записи OpenDNS для отслеживания запросов DNS:

  • Войдите на https://dashboard.opendns.com/
  • Перейдите на вкладку «Настройки».
  • Щелкните IP-адрес сети, связанной с вашим маршрутизатором.
  • Нажмите «Статистика и журналы» слева.
  • Убедитесь, что установлен флажок «Включить статистику и журналы», и нажмите кнопку «Применить».

Теперь любой поиск DNS, выполненный в вашей сети, будет регистрироваться.

Назначьте своему телефону статический IP-адрес в этой сети, чтобы его было легче отслеживать.

И... ждите и наблюдайте.

Вы собираетесь отслеживать активность IP-адреса, назначенного вашему телефону, в таблицах активности каждого IP-адреса вашего маршрутизатора. Когда активность данных для этого IP-адреса резко возрастет, вы перейдете к своей консоли OpenDNS и просмотрите статистику и журналы ваших запросов DNS за период времени, когда движение данных было высоким для вашего телефона.

Это должно дать краткий список [так в оригинале] имен хостов, которые разрешались в то время. И, вооружившись этим списком, вы сможете сузить его до приложения.

Это именно то, на что я надеялся - подробности о том, как проксировать данные. Я покопаюсь в этом и посмотрю, есть ли у меня еще вопросы. Отличные ссылки и работайте над этим.
У меня есть улучшение этого подхода, если у вас также есть Mac. Я напишу это через некоторое время, когда у меня будет время отладить идею.

На вашем месте с моими скудными знаниями я бы просто выбрал пару хороших кандидатов и удалил их с iPhone с помощью iTunes. Это должно привести к огромной потере свободного места, и iTunes может это показать.

Другой менее сложный метод — просто отключить их, дважды щелкнув кнопку «Домой» и удерживая ее, пока не появится значок «x».

Вероятно, это всего лишь одно приложение, но его разборка займет время и деньги, пока вы его не найдете.

Вероятно, есть лучшие способы, которые предложат другие, но это то, с чего стоит начать.

Интересная идея, я подключу и попробую. Я просто предположил, что данные, вероятно, все равно не записываются на диск.
Отличное предложение для другого косвенного способа измерения изменений. И, если хранилище не меняется, то использование данных может быть более надежно связано с ошибкой или потоковой передачей чего-либо, а не загрузкой чего-либо для постоянного использования на устройстве.

Есть несколько приложений, которые могут помочь вам отслеживать использование данных приложений:

  • Комбинация NetStat и Data Usage : первая позволит вам узнать обо всех соединениях в определенный момент времени. Последний утверждает, что работает с любым провайдером беспроводной связи и может предоставлять отчеты об использовании данных беспроводной сети и WiFi. Приложение также утверждает, что « отслеживает приложение для сбора данных , проверяя счетчик с момента последнего запуска». Это поможет в процессе поиска исключения, чтобы потенциально исключить или в некоторых приложениях пользователей данных.

  • Onavo ( рассмотрено здесь ): обеспечивает сжатие данных для iPhone и создает отчеты об объеме использования данных по приложениям/категориям. Ограничения - в настоящее время работает только с AT&T для пользователей из США, не может сжимать потоковое видео. Также могут быть риски для безопасности, поскольку ваши данные проходят через серверы Onavo.

Я также нашел этот список известных приложений для отслеживания данных iOS, которые могут удовлетворить ваши потребности.

Предостережение : я лично не использовал эти приложения, но отзывы кажутся многообещающими.

Я посмотрю на Onavo, но, похоже, мне не так нужна компрессия, как метр, который я могу контролировать. Возможно, нет службы только для измерения ...

Начиная с iOS 7, вы можете зайти в «Настройки» -> «Мобильные данные» и просмотреть список всех приложений вместе с объемом использованных данных (с момента последнего сброса статистики) каждым из них. Вы также можете отключить мобильные данные для каждого приложения в том же месте.

Если вы наблюдаете необъяснимое высокое использование мобильных данных, попробуйте отключить Wi-Fi Assist на том же экране настроек; он позволяет вашему телефону использовать мобильные данные, даже если у него есть соединение Wi-Fi, если он считает, что это соединение не соответствует требованиям.

Я считаю, что есть некоторые приложения для iPhone, которые позволяют вам регистрировать и контролировать использование ваших данных. Лично я ими не пользовался, но погуглил и обнаружил, что ребята, разработавшие NetUse для Mac, планируют сделать аналогичное приложение для iPhone. Я также нашел эту ветку , которая, по сути, задает тот же вопрос; может быть, там есть какие-то ответы.

Возможно, вы могли бы использовать это, когда оно выйдет, или поискать в iPhone App Store, чтобы увидеть, существует ли что-то подобное :)

Я бы порекомендовал потратить несколько часов, чтобы систематически просматривать ваши приложения одно за другим. Во-первых, закройте все свои приложения. Запишите время, когда вы открываете приложение и время, когда вы его закрываете (конечно, удаляя его с панели многозадачности). Повторите со следующим приложением. Когда вы увидите отчет AT&T, вы сможете определить по времени, какое приложение использует сеть так много.

Отличается ли это от августовского ответа, в котором предлагался процесс исключения и попытка косвенно определить использование, измеряя то, чем оно не является? яблоко.stackexchange.com/a/23017/5472
@bmike Это очень похоже на вторую половину этого ответа, но в нем несколько неясно, как именно это можно определить с помощью этого метода. Похоже, они думают, что простое удаление неиспользуемых в данный момент приложений из панели многозадачности решит проблему. Скорее всего, это так, но это не помогает найти виновное приложение.

Я удивлен, что это не было упомянуто... Но ОБЯЗАТЕЛЬНО проверьте настройки ЭЛЕКТРОННОЙ ПОЧТЫ. Есть варианты для...

  1. Нажать? (больше пропускной способности)
  2. Настройка предварительного просмотра сообщения? (больше пропускной способности, я бы предположил)
  3. Загрузить изображения? (больше пропускной способности)
  4. Получить время? (ниже = больше пропускная способность)
  5. Несколько аккаунтов?

И в зависимости от настроек вашего календаря/контактов, фотографий, частоты изменений... Это также может повлиять на это. Кроме того, в последнее время у вас включен iCloud или функция «Найти мой iPhone»… Это наверняка могло повлиять на ваши показатели использования…

Хотя это практически незначительно... Вы также можете включать и выключать уведомления для второстепенных приложений.. Чтобы устранить один дополнительный (маловероятный) источник проблемы.

Я перешел на свой iPad через месяц - и изменение моих агрессивных настроек проверки электронной почты все исправило для меня ... Но вскоре после того, как это произошло ... Я также включал его в режим полета / Wi-Fi, когда это было возможно. Я предполагаю, что вы используете сотовую сеть для телефонных звонков (чего я не делал), так что эта мера предосторожности может оказаться неуместной... Но если вам нужно сделать то, что вам нужно сделать , чтобы убедиться, перейти .. Это вариант.

Меня больше беспокоит измерение того, что происходит, чем достижение произвольного предела. Я хочу знать , что это почта, не обязательно выполнять процесс исключения, упомянутый в августе прошлого года . Я ценю предположение, что это может быть почта, однако мой телефон не настроен для push-уведомлений, и почта не доставляется, пока я не коснусь значка утром. (Этого не было в исходном вопросе, поэтому узнать это невозможно :-)
Я не упомянул об этом в исходном вопросе, но я уверен, что большие объемы отправляемых данных происходили в фоновом режиме. Как я уже упоминал, это было огромное увеличение по сравнению с предыдущими счетами (тот же телефон, те же настройки), что нельзя было объяснить стандартным использованием приложений.

Что ж, вы можете отключить его, закрыв все свои приложения, которым требуются данные, затем перейдите в «Настройки» -> «Основные» -> «Сеть» и переведите переключатель сотовых данных в положение «Выкл.».

Я думаю, что идея здесь состоит в том, чтобы продолжать использовать данные, но определить, какие приложения (будь то передний план или фон, системные или сторонние) используют какую часть общих данных. Как только мы сможем измерить его, легко выбрать, использовать больше или меньше в зависимости от ситуации.