Como descobrir qual aplicativo está enviando / recebendo grandes quantidades de dados em um iPhone?

13

Eu tenho um iPhone que de repente (nos últimos dois meses) começou a ultrapassar o plano de 200mb de dados em que estava. Antes disso, nem chegava perto dos limites.

As únicas informações que a companhia telefônica (AT&T) me fornece são os valores e os horários (que, pelo que entendi, são apenas um tempo de cobrança para uma quantidade agrupada de dados). Aqui está uma amostra:

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 além das enormes quantias em 3G, esse telefone passava muito pouco tempo fora do Wifi.

Existe alguma maneira possível (sem jailbreaking!) Para descobrir o que aplicativo pode possivelmente transferir essa quantidade de dados? Atualmente, a AT&T não me dará ou não poderá detalhar os destinos de tráfego. Mesmo que fosse possível, eu gostaria de uma resposta que esteja dentro do telefone como uma verificação do que a operadora está medindo, se isso for possível.

Nicole
fonte
Muitos dos comentaristas deste tópico de comentário parecem estar enfrentando exatamente o mesmo problema.
24611 Nicole
1
Você não pode proxy de tráfego 3G como o tráfego TCP / IP. Pelo menos não procurá-lo e estudá-lo. Está criptografado. Se você pudesse construir uma ponte 3G com a qual seu telefone pudesse conversar rapidamente e conseguir ver os datagramas por meio dessa ponte, isso tornaria as redes baseadas em 3G bisbilhoteiras assustadoras. Sua melhor aposta é observar o tráfego quando ele estiver em uma rede Wi-Fi.
Ian C.
Fiz uma edição bastante importante para a minha resposta: quando o telefone está no modo de suspensão, ele usa 3G, e não Wi-Fi. O rádio 3G é eficiente em termos de energia, então a Apple decidiu usá-lo quando o dispositivo estiver dormindo. Você precisa desativar os dados do celular no telefone com a minha técnica. Na verdade, você pode desativar o uso de dados de celular para se salvar enquanto descobre isso.
Ian C.
Eu certamente espero que não seja algo que faça o upload de dados do rolo da câmera para os servidores. bits.blogs.nytimes.com/2012/02/28/…
bmike

Respostas:

10

Após várias leituras cuidadosas da sua pergunta, algo se destacou:

E além das enormes quantias em 3G, esse telefone passava muito pouco tempo fora do Wifi.

O iPhone, quando está no modo de suspensão, desliga o rádio WiFi para economizar a energia da bateria . Portanto, se você tem aplicativos com fome de dados que fazem coisas em segundo plano quando o telefone está em suspensão / bloqueado, eles fazem isso por 3G. Observe que o comportamento do modo WiFi desligado no modo de suspensão é um pouco inconsistente. Mas você pode garantir que o 3G nunca seja usado pelo seu telefone enquanto você estiver realizando esses testes desligando os dados do celular. Dessa forma, quando dorme, continuará a usar Wi-Fi e não 3G para dados e você certamente capturará todo o tráfego na sua rede de monitoramento.


Você pode juntar algumas tecnologias que podem ajudá-lo a localizar o culpado.

Como um primeiro passo rápido, você pode tentar monitorar o telefone quando ele estiver em uma rede WiFi usando mitmproxy. A partir deste excelente mclov.in blog , você pode configurar um proxy para o seu telefone em seu Mac e filtrar todo o http / s de tráfego através dele:

  1. Faça o download da ferramenta mitmproxy e configure-a acessando a pasta mitmproxy e executando o sudo python setup.py install. Se tudo correr bem, o mitmproxy deve estar disponível no seu $ PATH.
  2. Inicie o mitmproxy executando o mitmproxy.
  3. Obtenha o endereço IP do seu computador executando ifconfig en1 (ou qualquer que seja a interface que você está usando).
  4. Defina o proxy no seu iPhone, acessando as configurações sem fio, definindo o proxy como “Manual” e defina o IP como o IP do seu computador e a porta como 8080.

Se você configurar o mitmproxy para gravar chamadas http / s em um arquivo, poderá analisá-lo após um certo período de tempo e procurar tendências. Você também poderá inspecionar as cargas úteis nas chamadas http / s para poder detectar solicitações extraordinariamente grandes dessa maneira.

Obviamente: essa abordagem assume que o culpado está usando http / s para comunicação. Caso contrário, você não verá o problema via mitmproxy e precisará recorrer a uma solução de nível inferior.

Você precisa monitorar todo o tráfego em uma rede WiFi que você controla para ajudá-lo a encontrar pelo menos os pontos finais das transferências de dados. O monitoramento da largura de banda não é difícil de configurar, mas manter um registro por IP e por terminal é realmente difícil de ser feito com hardware de nível de consumidor, pois pode ser uma quantidade enorme de dados. Cada pacote deve ser verificado quanto à origem, destino, registrado quanto ao tempo e tamanho - é muito rápido.

Mas você pode obter alguns números decentes e restringir o espaço de pesquisa para que seja algo potencialmente analisável por humanos.

Primeiro: você precisa configurar uma rede com monitoramento de largura de banda em um nível por IP. Para isso, recomendo um roteador WiFi Linksys WRT54GL para consumidor que esteja executando o Tomato e o complemento TeamanIPTraffic para rastreamento de largura de banda no nível de IP.

Segundo: defina seu DNS no roteador para usar o OpenDNS . Na sua conta do OpenDNS para rastrear pesquisas de DNS:

  • Faça login em https://dashboard.opendns.com/
  • Clique na guia "Configurações"
  • Clique no endereço IP da rede associada ao seu roteador
  • Clique em 'Estatísticas e registros' no lado esquerdo
  • Verifique se 'Ativar estatísticas e logs' está marcado e clique no botão 'Aplicar'

Agora, todas as pesquisas de DNS realizadas na sua rede serão registradas.

Atribua ao seu telefone um IP estático nesta rede para facilitar o rastreamento.

E ... espere e observe.

Você vai monitorar a atividade pelo endereço IP atribuído ao seu telefone nas tabelas de atividades por IP do seu roteador. Quando a atividade de dados para esse endereço IP disparar, você acessará o console do OpenDNS e examinará as estatísticas e os registros das pesquisas de DNS durante o período em que a movimentação de dados foi alta para o seu telefone.

Isso deve fornecer uma pequena lista [sic] de nomes de host que estavam sendo resolvidos no momento. E armado com essa lista, você pode reduzi-la a um aplicativo.

Ian C.
fonte
3
Era exatamente isso que eu esperava - detalhes sobre como fazer proxy dos dados. Vou investigar isso e ver se tenho mais perguntas. Ótimos links e trabalho nisso.
bmike
Eu tenho uma melhoria nessa abordagem se você também tiver um Mac. Escreverei daqui a pouco quando tiver tempo para depurar a ideia.
Ian C.
2

No seu lugar, com meu conhecimento escasso, eu apenas escolhia um bom candidato ou dois e os removia do iPhone com o iTunes. Isso deve resultar em uma enorme perda de espaço livre, e o iTunes pode mostrar isso.

Outro método menos envolvido seria desativá-los clicando duas vezes no botão Início e segurando um até o x aparecer.

Provavelmente é apenas um aplicativo, mas separá-lo levará tempo e US $ até você encontrá-lo.

Provavelmente existem maneiras melhores que os outros irão sugerir, mas isso é algo para começar.

modelamac
fonte
Ideia interessante, vou ligá-lo e tentar isso. Eu tinha assumido que os dados provavelmente não estavam sendo gravados no disco de qualquer maneira.
24511 Nicole
Ótima sugestão para outra maneira indireta de medir as mudanças. E, se o armazenamento não estiver mudando, o uso de dados poderá ser atribuído de maneira mais confiável a um bug ou streaming de algo, em vez de baixar algo para uso permanente no dispositivo.
bmike
2

Existem vários aplicativos que podem ajudá-lo a rastrear o uso de dados do aplicativo:

  • Uma combinação de NetStat e uso de dados : o primeiro informará todas as conexões em um determinado momento. O último afirma trabalhar com qualquer provedor sem fio e pode fornecer relatórios de uso de dados sem fio e Wi-Fi. O aplicativo também afirma " rastrear o aplicativo " porco " , verificando desde o último contador de execução". Isso ajudará em um processo de pesquisa de eliminação para potencialmente excluir ou em alguns aplicativos como usuários dos dados.

  • Onavo ( revisado aqui ): fornece compactação de dados para o iPhone e gera relatórios sobre a quantidade de uso de dados por aplicativo / categoria. Limitações - atualmente, apenas funciona com a AT&T para usuários dos EUA, não pode compactar streaming de vídeo. Também pode haver riscos à segurança, pois seus dados são roteados pelos servidores da Onavo.

Também encontrei esta lista de aplicativos de rastreamento de dados iOS notáveis ​​que podem atender às suas necessidades.

Advertência : Eu não usei esses aplicativos pessoalmente, mas as avaliações parecem promissoras.

JW8
fonte
Vou dar uma olhada no Onavo, mas parece que realmente não quero compressão tanto quanto um medidor que eu possa monitorar. Talvez não haja serviço para medição única ...
bmike
1

Desde o iOS 7, você pode acessar Configurações -> Dados móveis e ver uma lista de todos os aplicativos, além da quantidade de dados usados ​​(desde a última redefinição das estatísticas) por cada um. Você também pode desativar os dados móveis por aplicativo no mesmo local.

Se você estiver vendo um alto uso inexplicado de dados móveis, tente desativar o Wi-Fi Assist na mesma tela de configurações; permite que o telefone use dados móveis, mesmo quando tiver uma conexão Wi-Fi, se considerar que essa conexão está abaixo da média.

jbg
fonte
0

Acredito que existem alguns aplicativos para iPhone que permitem registrar e monitorar o uso de dados. Eu não usei pessoalmente, mas pesquisei no Google e descobri que os caras que criaram o NetUse para Mac planejam fazer um aplicativo semelhante para o iPhone. Eu também encontrei esse tópico , que essencialmente faz a mesma pergunta; talvez haja algumas respostas lá.

Talvez você possa usá-lo quando sair, ou pesquisar na iPhone App Store para ver se algo semelhante já existe :)

Leif
fonte
0

Eu recomendaria levar várias horas para percorrer sistematicamente seus aplicativos, um por um. Primeiro, feche todos os seus aplicativos. Anote o tempo em que você abre o aplicativo e o horário em que o fecha (removendo-o da barra de multitarefa, é claro). Repita com o próximo aplicativo. Quando vir o relatório da AT&T, você poderá saber desde que horas o aplicativo usa tanto a rede.

Timothy Mueller-Harder
fonte
É diferente da resposta de agosto que propôs um processo de eliminação e tentativa de obter indiretamente o uso, medindo o que não é? apple.stackexchange.com/a/23017/5472
bmike
@bmike É muito parecido com a segunda metade dessa resposta, mas essa é um pouco vaga sobre como exatamente isso pode ser determinado usando esse método. Parece que eles acham que simplesmente remover os aplicativos não atualmente em uso da barra de multitarefa eliminará o problema. Provavelmente isso é verdade, mas não ajuda a encontrar qual aplicativo é o culpado.
Timothy Mueller-Harder
0

Estou surpreso por não ter sido mencionado ... Mas certifique-se de verificar suas configurações de EMAIL. Existem opções para ...

  1. Empurrar? (mais largura de banda)
  2. Configuração de visualização da mensagem? (mais largura de banda, eu diria)
  3. Carregar imagens? (Mais largura de banda)
  4. Buscar tempo? (menor = mais largura de banda)
  5. Várias contas?

E, dependendo da configuração do seu calendário / contatos, fotos, frequência das alterações ... Essas também podem estar afetando. Além disso, você tem o iCloud ou o Find my iPhone ativado ultimamente ... Isso certamente poderia ter afetado seus números de uso.

Embora seja desprezível ... Você também pode ativar e desativar as notificações de aplicativos não essenciais. Para eliminar uma fonte adicional (improvável) do problema.

Fui ao meu iPad um mês - e alterar minhas configurações agressivas de verificação de e-mail corrigiu tudo para mim ... Mas, logo após o ocorrido ... Eu também o colocaria no modo avião / wifi sempre que possível. Eu suponho que você esteja usando a rede celular para ligações telefônicas (o que eu não fiz), para que medidas preventivas possam ser inadequadas ... Mas se você precisar fazer o que precisa para garantir que não passar por cima .. Isso é uma opção.

alex grey
fonte
Estou mais preocupado em medir o que está acontecendo do que em atingir um limite arbitrário. Quero saber que é correio, não necessariamente tenho que fazer o processo de eliminação mencionado em agosto passado . Aprecio a sugestão de que possa ser correio, mas meu telefone não está configurado para envio por push e nenhum correio é entregue até que eu toque no ícone pela manhã. (Isso não foi na pergunta original então não há nenhuma maneira de saber que :-)
bmike
Não mencionei isso na pergunta original, mas tenho quase certeza de que grandes quantidades de dados enviados estavam ocorrendo em segundo plano. Como mencionei, houve um grande aumento nas contas anteriores (mesmo telefone, mesmas configurações), que não puderam ser explicadas pelo uso padrão de aplicativos.
Nicole
0

Bem, você pode desativá-lo fechando todos os seus aplicativos que requerem dados e depois indo para Configurações -> Geral -> Rede e desligue o interruptor de dados do celular.

j347_
fonte
1
Acho que a idéia aqui é continuar usando os dados, mas determinar quais aplicativos (em primeiro plano ou segundo plano, sistema ou terceiros) estão usando qual parte do total de dados. Depois que podemos medir, é fácil optar por usar mais ou menos conforme cada situação.
bmike