Come capire quale app sta inviando / ricevendo enormi quantità di dati su un iPhone?


13

Ho un iPhone che improvvisamente (negli ultimi due mesi) ha iniziato a superare il piano dati da 200 MB su cui era. Prima di questo non era nemmeno vicino ai limiti.

Le uniche informazioni che la compagnia telefonica (AT&T) mi fornisce sono gli importi e i tempi (che da quello che ho capito è solo un tempo di fatturazione per una quantità raggruppata di dati). Ecco un esempio:

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

E oltre alle enormi quantità su 3G, questo telefono ha trascorso pochissimo tempo fuori dal Wifi.

C'è un modo possibile (senza jailbreaking!) Per scoprire che cosa app potrebbe eventualmente trasferire questa quantità di dati? Al momento, AT&T non può o non può darmi una ripartizione delle destinazioni del traffico. Anche se fosse possibile, vorrei una risposta che si trova all'interno del telefono come un controllo contro ciò che il corriere sta misurando, se possibile.


Molti dei commentatori in questo thread di commenti sembrano avere lo stesso identico problema.
Nicole,

1
Non è possibile eseguire il proxy del traffico 3G come è possibile il traffico TCP / IP. Almeno non proxy e studiarlo. È crittografato. Se potessi costruire un bridge 3G con il quale il tuo telefono potrebbe facilmente parlare ed essere in grado di vedere i datagrammi tramite questo bridge, renderebbe fugaci le reti basate su 3G. La soluzione migliore è guardare il traffico quando si trova su una rete WiFi.
Ian C.

Ho apportato una modifica abbastanza importante alla mia risposta: quando il telefono è in modalità di sospensione utilizza 3G, non WiFi. La radio 3G è efficiente dal punto di vista energetico, quindi Apple ha deciso di utilizzarla quando il dispositivo è in modalità sospensione. Devi disattivare i dati del cellulare con la mia tecnica. In effetti, puoi disattivare l'uso dei dati cellulari per salvarti mentre lo capisci.
Ian C.

Spero sicuramente che non sia qualcosa che carica i dati del rullino fotografico sui server. bits.blogs.nytimes.com/2012/02/28/…
bmike

Risposte:


10

Dopo diverse attente letture della tua domanda, qualcosa è emerso:

E oltre alle enormi quantità su 3G, questo telefono ha trascorso pochissimo tempo fuori dal Wifi.

Il tuo iPhone, quando è in modalità di sospensione , spegne la radio WiFi per conservare la carica della batteria . Quindi, se hai app affamate di dati che stanno facendo cose in background quando il tuo telefono è inattivo / bloccato, lo stanno facendo su 3G. Si noti che il comportamento WiFi-off-in-sleep-mode è alquanto incoerente. Ma puoi assicurarti che il 3G non venga mai utilizzato dal tuo telefono mentre esegui questi test spegnendo i dati cellulari. In questo modo, quando dorme, continuerà a utilizzare WiFi e non 3G per i dati e sarai sicuro di catturare tutto il traffico nella tua rete di monitoraggio.


Puoi mettere insieme alcune tecnologie che potrebbero aiutarti a rintracciare il colpevole.

Come primo passaggio rapido potresti provare a monitorare il telefono quando si trova su una rete WiFi utilizzando mitmproxy. Da questo eccellente post sul blog mclov.in , puoi configurare un proxy per il tuo telefono sul tuo Mac e filtrare tutto il traffico http / s attraverso di esso:

  1. Scarica lo strumento mitmproxy e impostalo andando nella cartella di mitmproxy ed eseguendo sudo python setup.py install. Se tutto va bene, mitmproxy deve essere disponibile nel tuo $ PATH.
  2. Avviare mitmproxy eseguendo mitmproxy.
  3. Ottieni l'indirizzo IP del tuo computer eseguendo ifconfig en1 (o qualunque sia l'interfaccia che stai utilizzando).
  4. Imposta il proxy sul tuo iPhone andando alle tue impostazioni wireless, impostando il proxy su "Manuale" e imposta l'IP come IP del tuo computer e la porta su 8080.

Se si imposta mitmproxy per registrare le chiamate http / s su un file, è possibile analizzarlo dopo un certo periodo di tempo e cercare le tendenze. Sarai anche in grado di ispezionare i payload sulle chiamate http / s in modo da poter individuare richieste insolitamente grandi in questo modo.

Naturalmente: questo approccio presuppone che il colpevole stia utilizzando http / s per la comunicazione. In caso contrario, non vedrai il problema tramite mitmproxy e dovrai ricorrere a una soluzione di livello inferiore.

Devi monitorare tutto il traffico su una rete WiFi che controlli per aiutarti a cercare almeno gli end point per i trasferimenti di dati. Il monitoraggio della larghezza di banda non è difficile da configurare, ma tenere un registro per IP, per endpoint è davvero difficile da fare con l'hardware di livello consumer perché può essere UNA MASSIMA quantità di dati. Ogni pacchetto deve essere verificato per l'origine, la destinazione, il tempo e le dimensioni registrati - si somma molto velocemente.

Ma puoi ottenere alcuni numeri decenti e restringere lo spazio di ricerca in modo che sia qualcosa di potenzialmente analizzabile dall'uomo.

Primo: è necessario configurare una rete con monitoraggio della larghezza di banda a livello di IP. Per questo, raccomando un router WiFi consumer Linksys WRT54GL che esegue Tomato e il componente aggiuntivo TeamanIPTraffic per il monitoraggio della larghezza di banda a livello IP.

Secondo: imposta il tuo DNS sul router per usare OpenDNS . Nel tuo account OpenDNS per tenere traccia delle ricerche DNS:

  • Accedi a https://dashboard.opendns.com/
  • Fai clic sulla scheda "Impostazioni"
  • Fare clic sull'indirizzo IP per la rete associata al router
  • Fai clic su "Statistiche e registri" sul lato sinistro
  • Assicurati che "Abilita statistiche e registri" sia selezionato e fai clic sul pulsante "Applica"

Ora verranno registrate tutte le ricerche DNS eseguite sulla rete.

Assegna al tuo telefono un IP statico su questa rete in modo che sia più facile da rintracciare.

E ... aspetta e guarda.

Monitorerai l'attività per l'indirizzo IP assegnato al tuo telefono nelle tabelle di attività per-IP del tuo router. Quando l'attività dei dati per questo indirizzo IP aumenta, vai alla tua console OpenDNS e dai un'occhiata alle statistiche e ai registri delle tue ricerche DNS per il periodo di tempo in cui il movimento dei dati è stato elevato per il tuo telefono.

Ciò dovrebbe fornire un breve elenco [sic] di nomi host che erano in fase di risoluzione in quel momento. E armato di quell'elenco potresti riuscire a restringerlo a un'applicazione.


3
Questo è esattamente ciò che speravo: dettagli su come delegare i dati. Mi occuperò di questo e vedrò se ho altre domande. Ottimi collegamenti e lavori su questo.
bmike

Ho un miglioramento su questo approccio se hai anche un Mac. Lo scriverò tra poco quando avrò il tempo di eseguire il debug dell'idea.
Ian C.

2

Nei tuoi panni con la mia scarsa conoscenza, sceglierei solo un buon candidato o due e li rimuoverò dall'iPhone con iTunes. Dovrebbe comportare un'enorme perdita di spazio libero e iTunes potrebbe dimostrarlo.

Un altro metodo meno coinvolto sarebbe quello di spegnerli facendo doppio clic sul pulsante Home e tenendolo premuto fino a quando appare la x.

Probabilmente è solo un'app, ma l'ordinamento richiederà tempo e $ fino a quando non lo troverai.

Probabilmente ci sono modi migliori che altri suggeriranno, ma questo è qualcosa per cominciare.


Idea interessante, la collegherò e la proverò. Avevo appena supposto che probabilmente i dati non venivano scritti su disco.
Nicole,

Ottimo suggerimento per un altro modo indiretto di misurare i cambiamenti. E, se l'archiviazione non sta cambiando, l'uso dei dati potrebbe essere più affidabile ricondotto a un bug o allo streaming di qualcosa rispetto al download di qualcosa per uso permanente sul dispositivo.
bmike

2

Esistono diverse app che possono aiutarti a rintracciare l'utilizzo dei dati delle app:

  • Una combinazione di NetStat e utilizzo dei dati : il primo ti farà conoscere tutte le connessioni in un determinato momento. Quest'ultimo afferma di collaborare con qualsiasi provider wireless e può fornire report sull'utilizzo dei dati wireless e WiFi. L'app afferma inoltre di " tenere traccia dell'applicazione hog dei dati verificando dall'ultimo contatore di esecuzione". Questi aiuteranno in un processo di ricerca di eliminazione a escludere potenzialmente o in alcune app come utenti dei dati.

  • Onavo ( recensione qui ): fornisce la compressione dei dati per l'iPhone e genera rapporti sulla quantità di utilizzo dei dati per app / categoria. Limitazioni : attualmente funziona solo con AT&T per gli utenti statunitensi, non è possibile comprimere i video in streaming. Potrebbero esserci anche rischi per la sicurezza, poiché i tuoi dati vengono instradati attraverso i server di Onavo.

Ho anche trovato questo elenco di app di tracciamento dei dati iOS che potrebbero soddisfare le tue esigenze.

Avvertenza : non ho usato personalmente queste app, ma le recensioni sembrano promettenti.


Esaminerò Onavo, ma sembra che non voglia davvero la compressione quanto un metro che posso monitorare. Forse non c'è servizio solo per la misurazione ...
bmike

1

Da iOS 7, puoi andare in Impostazioni -> Dati mobili e visualizzare un elenco di tutte le app insieme alla quantità di dati utilizzati (poiché le statistiche sono state ripristinate l'ultima volta) da ciascuna. Puoi anche disattivare i dati mobili su una base per app nello stesso posto.

Se stai riscontrando un uso inspiegato di dati mobili elevati, prova a disabilitare Wi-Fi Assist nella stessa schermata delle impostazioni; consente al telefono di utilizzare i dati mobili anche quando dispone di una connessione Wi-Fi, se ritiene che tale connessione sia scadente.


0

Credo che ci siano alcune app per iPhone che ti consentono di registrare e monitorare l'utilizzo dei tuoi dati. Non ne ho usato nessuno personalmente, ma ho fatto alcuni googling e ho scoperto che i ragazzi che hanno creato NetUse per Mac hanno in programma di creare un'applicazione simile per iPhone. Ho anche trovato questo thread , che essenzialmente pone la stessa domanda; forse ci sono alcune risposte lì dentro.

Forse potresti usarlo quando esce, o cercare in giro sull'App Store di iPhone per vedere se esiste già qualcosa di simile :)


0

Consiglierei di dedicare diverse ore a passare sistematicamente attraverso le tue app, una per una. Innanzitutto, esci da tutte le tue app. Prendi nota del tempo in cui apri l'app e del tempo in cui la chiudi (rimuovendola dalla barra multitasking, ovviamente). Ripeti con l'app successiva. Quando vedi il rapporto di AT&T, dovresti essere in grado di dire dai tempi dati quale app utilizza la rete così tanto.


È diverso dalla risposta di agosto che ha proposto un processo di eliminazione e ha cercato di ottenere l'utilizzo indirettamente misurando ciò che non è? apple.stackexchange.com/a/23017/5472
bmike

@bmike È molto simile alla seconda metà di quella risposta, ma quella è piuttosto vaga su come potrebbe essere determinato usando quel metodo. Sembra che pensino che rimuovere semplicemente le app non in uso dalla barra del multitasking eliminerà il problema. Questo è probabilmente vero, ma non aiuta a trovare quale app è il colpevole.
Timothy Mueller-Harder,

0

Sono sorpreso che non sia stato menzionato ... Ma assicurati di controllare le tue impostazioni EMAIL. Ci sono opzioni per ...

  1. Andare avanti? (più larghezza di banda)
  2. Impostazione dell'anteprima del messaggio? (più larghezza di banda, presumo)
  3. Caricare le immagini? (Maggiore larghezza di banda)
  4. Prendere tempo? (inferiore = maggiore larghezza di banda)
  5. Conti multipli?

E a seconda del calendario / delle impostazioni dei contatti, delle foto, della frequenza delle modifiche ... Anche queste potrebbero influenzarlo. Inoltre, hai iCloud, o Trova il mio iPhone acceso, di recente ... Ciò avrebbe sicuramente influito sui tuoi numeri di utilizzo ...

Sebbene sia sostanzialmente trascurabile ... Puoi anche attivare e disattivare le notifiche per le app non essenziali. Per eliminare un'ulteriore (improbabile) fonte del problema.

Sono andato sul mio iPad un mese - e cambiando le mie aggressive impostazioni di controllo della posta elettronica ho risolto tutto per me ... Ma, nel tempo poco dopo che è successo ... lo inserivo anche in modalità aereo / wifi quando possibile .. Suppongo che tu stia usando la rete cellulare per le telefonate (cosa che non ero), quindi quella misura precauzionale potrebbe essere inadeguata ... Ma se devi fare ciò che devi fare per assicurarti di non farlo andare oltre ... Questa è un'opzione.


Sono più preoccupato di misurare ciò che sta accadendo che di colpire un limite arbitrario. Voglio sapere che è posta, non necessariamente fare il processo di eliminazione menzionato lo scorso agosto . Apprezzo il suggerimento che potrebbe essere la posta, tuttavia il mio telefono non è impostato per il push e nessuna posta viene recapitata fino a quando non tocco l'icona al mattino. (Non era nella domanda originale, quindi non c'è modo di saperlo :-)
bmike

Non l'ho menzionato nella domanda originale, ma sono abbastanza sicuro che grandi quantità di dati inviati si stessero verificando in background. Come ho già detto, è stato un enorme aumento delle fatture precedenti (stesso telefono, stesse impostazioni), che non potevano essere giustificate dall'uso standard delle applicazioni.
Nicole,

0

Bene, potresti spegnerlo chiudendo tutte le tue app che richiedono dati, quindi vai su Impostazioni -> Generale -> Rete e disattiva l'interruttore dei dati cellulari.


1
Penso che l'idea qui sia quella di continuare a utilizzare i dati, ma di determinare quali app (sia in primo piano o in background, di sistema o di terze parti) stanno utilizzando quale parte dei dati totali. Una volta che possiamo misurarlo, è facile scegliere di utilizzare più o meno come ogni situazione prevede.
bmike
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.