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

13

У меня есть 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 не дает или не может дать мне разбивку по направлениям трафика. Даже если бы это было возможно, я хотел бы получить ответ, который находится внутри телефона, чтобы проверить, что измеряет оператор, если это возможно.

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

Ответы:

10

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

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

Ваш iPhone, когда он находится в спящем режиме, отключает радио WiFi для экономии заряда батареи . Так что, если у вас есть приложения, требующие данных, которые работают в фоновом режиме, когда ваш телефон спит / заблокирован, они делают это через 3G. Обратите внимание, что поведение WiFi в выключенном состоянии несколько противоречиво. Но вы можете гарантировать, что 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-адресов. Для этого я рекомендую беспроводной маршрутизатор Linksys WRT54GL потребительского уровня, работающий под управлением Tomato, и дополнение TeamanIPTraffic для отслеживания пропускной способности на уровне IP.

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

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

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

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

И ... подожди и смотри.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

JBG
источник
0

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

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

Лейф
источник
0

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

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

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

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

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

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

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

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

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

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