Jak dowiedzieć się, która aplikacja wysyła / odbiera ogromne ilości danych na iPhone?

13

Mam iPhone'a, który nagle (w ciągu ostatnich dwóch miesięcy) zaczął znacznie przekraczać plan transferu danych o przepustowości 200 MB. Wcześniej nie było nawet blisko granic.

Jedyne informacje, które przekazuje mi firma telefoniczna (AT&T), to kwoty i czasy (z tego, co rozumiem, to tylko czas rozliczeniowy dla zgrupowanej ilości danych). Oto próbka:

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

Poza ogromnymi kwotami w 3G ten telefon spędził bardzo mało czasu poza Wi-Fi.

Czy istnieje jakikolwiek sposób (bez jailbreaking!), Aby dowiedzieć się, jakie aplikacja mogłaby ewentualnie przeniesienie to dużo danych? Obecnie AT&T nie podaje lub nie może przedstawić rozbicia miejsc docelowych ruchu. Nawet gdyby było to możliwe, chciałbym uzyskać odpowiedź, która leży w telefonie, w celu sprawdzenia, co przewoźnik mierzy, jeśli to możliwe.

Nicole
źródło
Wielu komentujących w tym wątku wydaje się mieć dokładnie ten sam problem.
Nicole
1
Nie można proxy ruchu 3G, tak jak ruch TCP / IP. Przynajmniej nie proxy i przestudiuj. Jest zaszyfrowany. Gdybyś mógł zbudować mostek 3G, z którym Twój telefon chętnie by rozmawiał, i byłby w stanie zobaczyć datagramy za pośrednictwem tego mostka, sprawiłoby, że szpiegowanie sieci opartych na 3G byłoby przerażające. Najlepiej jest obserwować ruch w sieci Wi-Fi.
Ian C.
Dokonałem dość ważnej zmiany w mojej odpowiedzi: gdy telefon jest w trybie uśpienia, korzysta z 3G, a nie WiFi. Radio 3G jest energooszczędne, więc Apple zdecydowało się z niego korzystać, gdy urządzenie śpi. Za pomocą mojej techniki musisz wyłączyć dane komórkowe w telefonie. W rzeczywistości możesz wyłączyć korzystanie z danych komórkowych, aby zaoszczędzić się, gdy to rozwiążesz.
Ian C.
Mam oczywiście nadzieję, że nie jest to coś, co przesyła dane z kamer do serwerów. bits.blogs.nytimes.com/2012/02/28/...
bmike

Odpowiedzi:

10

Po kilku uważnych lekturach pytania coś się wyróżniało:

Poza ogromnymi kwotami w 3G ten telefon spędził bardzo mało czasu poza Wi-Fi.

Twój iPhone, gdy jest w trybie uśpienia, wyłącza radio WiFi, aby oszczędzać energię baterii . Jeśli więc masz aplikacje wymagające dużej ilości danych, które działają w tle, gdy telefon śpi / jest zablokowany, robią to przez 3G. Należy pamiętać, że zachowanie trybu Wi-Fi w trybie uśpienia jest nieco niespójne. Ale możesz zapewnić, że 3G nie będzie używany przez telefon podczas wykonywania tych testów, wyłączając dane komórkowe. W ten sposób, gdy śpi, będzie nadal korzystać z danych WiFi, a nie 3G, i będziesz mieć pewność, że przechwycisz cały ruch w sieci monitorowania.


Możesz połączyć kilka technologii, które mogą pomóc w wytropieniu sprawcy.

W ramach pierwszego przejścia możesz spróbować monitorować telefon, gdy jest podłączony do sieci Wi-Fi za pomocą mitmproxy. Z tego doskonałego postu na blogu mclov.in możesz skonfigurować serwer proxy dla swojego telefonu na komputerze Mac i filtrować przez niego cały ruch http / s:

  1. Pobierz narzędzie mitmproxy i skonfiguruj je, przechodząc do folderu mitmproxy i uruchamiając sudo python setup.py install. Jeśli wszystko pójdzie dobrze, mitmproxy musi być dostępny w twojej ŚCIEŻCE $.
  2. Uruchom mitmproxy, uruchamiając mitmproxy.
  3. Uzyskaj adres IP swojego komputera, uruchamiając ifconfig en1 (lub inny używany interfejs).
  4. Ustaw proxy na swoim iPhonie, przechodząc do ustawień bezprzewodowych, ustawiając proxy na „Ręcznie”, i ustaw IP na IP twojego komputera i port na 8080.

Jeśli ustawisz mitmproxy na rejestrowanie wywołań http / s do pliku, możesz go przeanalizować po pewnym czasie i poszukać trendów. Będziesz także mógł sprawdzić ładunki połączeń http / s, aby w ten sposób można było wykryć niezwykle duże żądania.

Oczywiście: takie podejście zakłada, że ​​winowajca używa http / s do komunikacji. Jeśli tak nie jest, nie zobaczysz problemu za pośrednictwem mitmproxy i musisz skorzystać z rozwiązania niższego poziomu.

Musisz monitorować cały ruch w kontrolowanej sieci Wi-Fi, aby pomóc w wytropieniu przynajmniej punktów końcowych transferu danych. Monitorowanie przepustowości nie jest trudne do skonfigurowania, ale prowadzenie dziennika adresów IP i punktów końcowych jest naprawdę trudne w przypadku sprzętu klasy konsumenckiej, ponieważ może to być MASYWA. Każdy pakiet musi zostać sprawdzony pod kątem pochodzenia, miejsca docelowego, zarejestrowany pod względem czasu i rozmiaru - dodaje się bardzo szybko.

Ale możesz uzyskać przyzwoite liczby i zawęzić przestrzeń wyszukiwania, aby było to potencjalnie możliwe do przeanalizowania przez człowieka.

Po pierwsze: musisz skonfigurować sieć z monitorowaniem przepustowości na poziomie IP. W tym celu polecam konsumencki router WiFi Linksys WRT54GL z systemem Tomato oraz dodatek TeamanIPTraffic do śledzenia przepustowości na poziomie IP.

Po drugie: ustaw DNS na routerze, aby korzystał z OpenDNS . Na koncie OpenDNS do śledzenia wyszukiwań DNS:

  • Zaloguj się do https://dashboard.opendns.com/
  • Kliknij kartę „Ustawienia”
  • Kliknij adres IP sieci powiązanej z routerem
  • Kliknij „Statystyki i dzienniki” po lewej stronie
  • Upewnij się, że opcja „Włącz statystyki i dzienniki” jest zaznaczona, a następnie kliknij przycisk „Zastosuj”

Teraz wszystkie wyszukiwania DNS wykonywane w sieci będą rejestrowane.

Przypisz telefonowi statyczny adres IP w tej sieci, aby łatwiej go było śledzić.

I ... czekaj i patrz.

Będziesz monitorować aktywność adresu IP przypisanego do telefonu w tabelach aktywności routera dla poszczególnych adresów IP. Gdy aktywność danych dla tego adresu IP gwałtownie wzrośnie, przejdziesz do konsoli OpenDNS i spojrzysz na statystyki i dzienniki wyszukiwania DNS dla okresu, w którym ruch danych był wysoki dla twojego telefonu.

Powinno to dać krótką listę nazw hostów, które były wtedy rozstrzygane. Uzbrojony w tę listę możesz zawęzić ją do aplikacji.

Ian C.
źródło
3
Właśnie tego chciałem - szczegóły dotyczące proxy danych. Zagłębię się w to i sprawdzę, czy mam więcej pytań. Świetne linki i pracuj nad tym.
bmike
Poprawiłem to podejście, jeśli masz także komputer Mac. Napiszę to za chwilę, kiedy będę miał czas na debugowanie pomysłu.
Ian C.
2

W twoich butach z moją skromną wiedzą wybiorę dobrego kandydata lub dwóch i usunę ich z iPhone'a za pomocą iTunes. Powinno to doprowadzić do ogromnej utraty wolnego miejsca, a iTunes może to pokazać.

Inną mniej zaangażowaną metodą byłoby ich wyłączenie poprzez dwukrotne kliknięcie przycisku Początek i przytrzymanie jednej, aż pojawi się x.

Prawdopodobnie jest to tylko jedna aplikacja, ale znalezienie jej zajmie trochę czasu i $.

Są prawdopodobnie lepsze sposoby, które sugerują inni, ale jest to coś na początek.

modelamac
źródło
Ciekawy pomysł, podłączę go i wypróbuję. Właśnie założyłem, że i tak prawdopodobnie dane nie były zapisywane na dysk.
Nicole
Świetna sugestia dla innego pośredniego sposobu pomiaru zmian. A jeśli pamięć się nie zmienia, wówczas wykorzystanie danych może być bardziej niezawodnie zapisane jako błąd lub przesyłanie strumieniowe czegoś, niż pobieranie czegoś do stałego użytku na urządzeniu.
bmike
2

Istnieje kilka aplikacji, które mogą pomóc w śledzeniu zużycia danych aplikacji:

  • Połączenie NetStat i wykorzystania danych : ta pierwsza pozwoli Ci poznać wszystkie połączenia w danym momencie. Ten ostatni twierdzi, że współpracuje z dowolnym dostawcą usług bezprzewodowych i może dostarczać raporty o wykorzystaniu danych bezprzewodowych i WiFi. Aplikacja twierdzi również, że „ śledzi aplikację przechwytującą dane , sprawdzając od czasu ostatniego uruchomienia licznika”. Pomogą one w procesie wyszukiwania eliminacji, aby potencjalnie wykluczyć lub w niektórych aplikacjach jako użytkownicy danych.

  • Onavo ( recenzja tutaj ): Zapewnia kompresję danych dla iPhone'a i generuje raporty o zużyciu danych według aplikacji / kategorii. Ograniczenia - obecnie działa tylko z AT&T dla użytkowników w USA, nie może kompresować strumieniowego wideo. Mogą również wystąpić zagrożenia bezpieczeństwa, ponieważ Twoje dane są kierowane przez serwery Onavo.

Znalazłem też tę listę godnych uwagi aplikacji do śledzenia danych iOS, które mogą odpowiadać Twoim potrzebom.

Uwaga : osobiście nie korzystałem z tych aplikacji, ale recenzje wydają się obiecujące.

JW8
źródło
Zajmę się Onavo, ale wygląda na to, że tak naprawdę nie chcę kompresji, tak jak miernika, który mogę monitorować. Być może nie ma usługi tylko do pomiaru ...
bmike
1

Od iOS 7 możesz przejść do Ustawienia -> Dane mobilne i zobaczyć listę wszystkich aplikacji wraz z ilością wykorzystanych danych (od ostatniego resetu statystyk) dla każdej z nich. Możesz również wyłączyć komórkową transmisję danych dla poszczególnych aplikacji w tym samym miejscu.

Jeśli widzisz niewyjaśnione wysokie wykorzystanie danych mobilnych, spróbuj wyłączyć Wi-Fi Assist na tym samym ekranie ustawień; pozwala Twojemu telefonowi na korzystanie z komórkowej transmisji danych, nawet gdy ma połączenie Wi-Fi, jeśli uzna to połączenie za słabsze.

jbg
źródło
0

Uważam, że istnieją aplikacje na iPhone'a, które umożliwiają rejestrowanie i monitorowanie zużycia danych. Nie korzystałem z nich osobiście, ale zrobiłem trochę Googlinga i odkryłem, że faceci, którzy stworzyli NetUse na Maca, planują stworzyć podobną aplikację na iPhone'a. Znalazłem też ten wątek , który zasadniczo zadaje to samo pytanie; może są tam jakieś odpowiedzi.

Być może możesz użyć tego, gdy się pojawi, lub poszukać w iPhone App Store, aby zobaczyć, czy coś podobnego już istnieje :)

Leif
źródło
0

Polecam poświęcić kilka godzin na systematyczne przeglądanie aplikacji, jedna po drugiej. Najpierw zamknij wszystkie aplikacje. Zanotuj czas otwarcia aplikacji i czas jej zamknięcia (oczywiście usunięcie jej z paska wielozadaniowości). Powtórz z następną aplikacją. Gdy zobaczysz raport AT&T, powinieneś być w stanie stwierdzić na podstawie podanych czasów, która aplikacja tak często korzysta z sieci.

Timothy Mueller-Harder
źródło
Czy różni się to od sierpniowej odpowiedzi, w której zaproponowano proces eliminacji i próby pośredniego uzyskania takiego wykorzystania poprzez pomiar tego, czym nie jest? apple.stackexchange.com/a/23017/5472
bmike
@bike Jest bardzo podobny do drugiej połowy tej odpowiedzi, ale ta jest nieco niejasna co do tego, jak można to ustalić za pomocą tej metody. Brzmi to tak, jakby myśleli, że usunięcie nieużywanych aplikacji z paska wielozadaniowości wyeliminuje problem. To najprawdopodobniej prawda, ale nie pomaga znaleźć winowajcy.
Timothy Mueller-Harder
0

Dziwię się, że nie wspomniano o tym ... Upewnij się, aby sprawdzić ustawienia EMAIL. Istnieją opcje ...

  1. Napierać? (większa przepustowość)
  2. Ustawienie podglądu wiadomości? (zakładam, że większa przepustowość)
  3. Załadować obrazy? (Większa przepustowość)
  4. Czas pobierania? (niższe = większa przepustowość)
  5. Wiele kont?

I w zależności od ustawień kalendarza / kontaktów, zdjęć, częstotliwości zmian ... Mogą one również mieć na to wpływ. Czy masz ostatnio włączoną usługę iCloud lub Znajdź mój iPhone ... To z pewnością wpłynęło na twoje liczby użytkowników.

Chociaż jest to w znacznym stopniu nieistotne ... Możesz także włączać i wyłączać powiadomienia dla nieistotnych aplikacji. Aby wyeliminować jedno dodatkowe (mało prawdopodobne) źródło problemu.

Przeszedłem na iPadzie przez miesiąc - i zmieniając moje agresywne ustawienia sprawdzania poczty e-mail naprawiłem to wszystko ... Ale wkrótce potem to się zdarzyło. Włączyłem go również w tryb samolotowy / Wi-Fi, gdy tylko to możliwe. Zakładam, że używasz sieci komórkowej do połączeń telefonicznych (co nie było), aby środek ostrożności mógł być nieodpowiedni ... Ale jeśli musisz zrobić to, co musisz, aby się upewnić, że nie przejdź .. To jest opcja.

Alex Grey
źródło
Bardziej martwię się mierzeniem tego, co się dzieje, niż osiągnięciem arbitralnego limitu. Chcę wiedzieć, że to poczta, niekoniecznie muszę wykonać proces eliminacji wspomniany w zeszłym sierpniu . Doceniam sugestię, że może to być poczta, jednak mój telefon nie jest skonfigurowany do wypychania i żadna poczta nie jest dostarczana, dopóki nie dotknę ikony rano. (Nie było tego w pierwotnym pytaniu, więc nie można tego wiedzieć :-)
bmike
Nie wspomniałem o tym w pierwotnym pytaniu, ale jestem całkiem pewien, że w tle pojawiły się duże ilości przesyłanych danych. Jak wspomniałem, był to ogromny wzrost w stosunku do wcześniejszych rachunków (ten sam telefon, te same ustawienia), których nie można było uwzględnić przy standardowym użyciu aplikacji.
Nicole
0

Możesz go wyłączyć, zamykając wszystkie aplikacje wymagające danych, a następnie przechodząc do Ustawień -> Ogólne -> Sieć i przełączając przełącznik danych komórkowych do pozycji wyłączonej.

j347_
źródło
1
Myślę, że tutaj chodzi o to, by nadal korzystać z danych, ale aby określić, które aplikacje (na pierwszym planie, w tle, w systemie lub w firmie trzeciej) używają, która część danych ogółem. Gdy tylko będziemy w stanie to zmierzyć, łatwo jest wybrać mniej lub więcej, zależnie od sytuacji.
bmike