Buscar

Dispositivos

Proxy no emulador: um IP próprio para cada instância

Anexe um proxy HTTP, HTTPS ou SOCKS5 por instância de emulador ou dispositivo na nuvem no MAS, teste o IP de saída e leia-o de volta nos webhooks.

  • Windows
  • Mac
  • Emulador
  • Dispositivo na nuvem
  • Studio
  • API
Avançado Atualizado em 8 min de leitura
Nesta página
  1. Antes de começar
  2. Tipos de proxy
  3. Testar um proxy
  4. Anexar um proxy por instância de emulador ou dispositivo na nuvem
  5. Como um proxy SOCKS5 ou HTTP funciona em um emulador Android
  6. Como funciona em um dispositivo na nuvem
  7. IP de saída nos webhooks e no histórico de execuções
  8. Limites
  9. Rotas de proxy para chaves de API
  10. Solução de problemas
  11. Proxy falhou no card do dispositivo
  12. O status mostra morto
  13. O dispositivo na nuvem mostra proxy setup failed

Um proxy no emulador, por instância, ou em um dispositivo na nuvem dá a cada um a própria identidade de rede. O Macro Automation Studio (MAS) guarda seus proxies na sua conta, anexa um proxy a cada dispositivo e roteia o tráfego desse dispositivo por ele: com um relay local em um emulador, e com um proxy transparente dentro da rede do dispositivo em um dispositivo na nuvem. Esta página cobre os tipos de proxy, as duas formas de adicioná-los, anexar, testar e os limites.

Antes de começar

  • Um proxy para usar: uma conta no gateway residencial com o qual o MAS se integra, ou endpoints de qualquer outro provedor.
  • Dispositivos em um grupo de dispositivos. Um proxy se anexa a um dispositivo, não a um grupo.
  • O MAS está instalado e você fez login com um plano ativo.

Tipos de proxy

O MAS aceita proxies http, https e socks5, com ou sem usuário e senha. Deixe as credenciais em branco para um proxy autorizado por IP.

Há duas formas de adicionar proxies na página Proxies:

  • Conta do gateway (a primeira aba): informe o login e a senha da sua conta do gateway uma vez. Isso adiciona uma entrada, e todo dispositivo ao qual você a anexar recebe o próprio IP fixo do gateway. Você pode escolher Países (opcional), escolher HTTP ou SOCKS5 como Protocolo e abrir Segmentação avançada para estado, cidade, CEP ou ASN. A segmentação mais estreita exige um país e é cobrada pelo provedor a uma taxa maior, o que o formulário avisa antes de você usar.
  • Outro provedor: informe um Rótulo, Protocolo, Host / IP, Porta e, opcionalmente, Usuário e Senha, ou cole vários proxies de uma vez em Colar proxies (um por linha) em qualquer um destes formatos e clique em Importar e testar:
text
host:port
host:port:user:pass
scheme://user:pass@host:port

Clique em Adicionar e testar. O MAS guarda as credenciais criptografadas e testa o proxy na hora.

Testar um proxy

A tabela Pool de proxies lista todo proxy com o seu status: ativo, morto ou não verificado. Testar disca pelo proxy até um serviço de eco de IP e registra o IP de saída, o país de saída e a latência; Testar todos faz isso para o pool inteiro. A coluna Saída / geo mostra o que você pediu (want:) ao lado do que o teste observou (got:), porque um gateway pode sair em outro lugar que não o país pedido. Um proxy de gateway é testado sem sessão, então a saída do teste é rotativa.

A coluna Dados é o tráfego que o MAS roteou pelo proxy nos últimos 30 dias, medido pelo relay do próprio MAS. O valor cobrado pelo seu provedor pode ser diferente.

Anexar um proxy por instância de emulador ou dispositivo na nuvem

Um proxy por dispositivo. Anexar um segundo substitui o primeiro, e a caixa de diálogo avisa: “This device already has a proxy. Attaching will replace it.”

Pela página Proxies:

  1. Clique em Anexar em um proxy.
  2. Escolha o Dispositivo emulador. Os dispositivos que já têm um proxy aparecem marcados como “has a proxy”.
  3. Escolha o Comportamento da sessão: Fixa, que prende um IP a este dispositivo, ou Rotativa, um IP novo a cada requisição.
  4. Clique em Anexar.

Por um card de dispositivo em Grupos de dispositivos, abra Configurações avançadas e escolha o proxy na lista Proxy. O card o anexa como fixo. Sem proxy remove a atribuição.

Toda atribuição fixa recebe o próprio id de sessão, que é o que transforma uma conta de gateway em um IP de saída distinto por dispositivo. Para um proxy comum de outro provedor, o IP de saída é o que aquele endpoint der; a configuração de sessão não o muda.

A tabela Atribuições ativas lista cada dispositivo com o seu proxy e a sua sessão. Informações de aplicação mostra os dados de conexão resolvidos, incluindo o usuário por dispositivo, para uso fora do MAS.

Como um proxy SOCKS5 ou HTTP funciona em um emulador Android

A configuração de proxy global do Android não tem campo para usuário e senha, e o usuário de um gateway é onde vivem a segmentação e o id de sessão. Por isso o MAS roda um relay pequeno neste computador a cada execução:

  1. Quando uma execução começa, o MAS consulta o proxy do dispositivo e inicia um relay ligado a 127.0.0.1 em uma porta livre. O relay adiciona as credenciais na saída e fala HTTP com o dispositivo e HTTP, HTTPS ou SOCKS5 com o upstream, então um gateway SOCKS5 funciona em um emulador que sozinho não fala SOCKS5.
  2. O MAS envia uma requisição pelo relay para provar que o caminho funciona e lê de volta o IP, o país e a cidade de saída. Credenciais erradas ou uma região indisponível falham aqui, antes de a macro começar.
  3. Depois que o adb conecta, o MAS roda adb reverse para o localhost do próprio emulador alcançar o relay, e então define o proxy HTTP global do dispositivo como 127.0.0.1:<relay port>. Isso se repete a cada reconexão, porque uma reconexão derruba os mapeamentos reversos.
  4. Quando a execução termina, o MAS limpa a configuração de proxy, remove o mapeamento reverso e fecha o relay.

O card do dispositivo narra cada passo: Proxy pronto depois da verificação, Proxy ativo com o IP de saída depois de aplicado, Proxy desligado depois da execução, e Proxy falhou com o motivo. O relay escuta só em loopback, então nada mais na sua rede consegue usá-lo.

Como funciona em um dispositivo na nuvem

Em um dispositivo na nuvem, o MAS não usa a configuração do Android. Quando o dispositivo inicia, o host lança um proxy transparente dentro do namespace de rede do dispositivo e redireciona toda conexão TCP de saída por ele. Cada conexão é reaberta pelo seu proxy upstream com as suas credenciais, então todo o tráfego do dispositivo sai do IP do proxy, quer o app respeite um proxy ou não. O proxy na nuvem fala com o upstream por HTTP CONNECT, então dê a um dispositivo na nuvem um proxy HTTP ou HTTPS.

  • O proxy é aplicado pela vida do dispositivo, não por execução. Anexe ou troque, depois pare e inicie o dispositivo; o card diz “Applies when the device next starts”.
  • O card mostra Proxy com o IP de saída enquanto o dispositivo roda, e o log de cada execução começa com “Proxy active, traffic routed through ”.
  • Se o proxy não puder ser aplicado, o dispositivo não inicia sem proxy. Ele vai para Erro com “proxy setup failed, turn the device off and on to retry”.
  • Um proxy anexado enquanto o dispositivo já roda é aplicado em uma verificação posterior, sem reinicialização.

IP de saída nos webhooks e no histórico de execuções

Quando um proxy esteve ativo em uma execução, os eventos de webhook dessa execução carregam proxy_exit_ip e proxy_country em data, ao lado de device_name, device_port e group_id. Os mesmos valores ficam guardados com a execução, então você pode conferir depois por onde o tráfego de uma execução saiu. Veja Webhooks.

Limites

  • Um proxy por dispositivo; um dispositivo sem proxy conecta direto.
  • Esquemas: http, https, socks5. Porta de 1 a 65535.
  • Os emuladores aplicam o proxy por execução; os dispositivos na nuvem o aplicam a cada início do dispositivo e precisam de um upstream HTTP ou HTTPS.
  • Segmentação do gateway: ou países-alvo ou países excluídos, não os dois; estado, cidade, CEP e ASN precisam de um país.
  • O valor de uso é medido pelo MAS e não é a fatura do seu provedor.

Rotas de proxy para chaves de API

Toda rota de proxy aceita uma chave de API: GET, POST e PUT em /api/proxy e /api/proxy/{id}, POST /api/proxy/import, POST /api/proxy/{id}/validate, as rotas de atribuição em /api/proxy/assignments com /api/proxy/assignments/{id}/connection-info, GET /api/proxy/devices/{device_id} para o proxy anexado a um dispositivo, e GET /api/proxy/usage. Use GET /api/emulator/devices para encontrar os ids de dispositivo. Veja a API REST.

Solução de problemas

Proxy falhou no card do dispositivo

A mensagem nomeia o passo. “proxy did not respond, check credentials or targeting” significa que o upstream recusou a verificação: login errado, plano expirado ou um país para o qual o gateway não tem IPs. Rode Testar na página Proxies para ver a resposta do provedor. “could not expose the proxy relay to the device (adb reverse)” ou “could not set the device proxy” significa que o adb perdeu o emulador entre a conexão e a configuração; veja Solução de problemas de ADB e inicie a execução de novo.

O status mostra morto

O teste não conseguiu chegar à internet pelo proxy. Confira o host, a porta e o esquema, depois as credenciais, e confirme que o proxy libera o IP deste computador se ele for autorizado por IP. Teste de novo depois de corrigir; a latência e o IP de saída atualizam quando dá certo.

O dispositivo na nuvem mostra proxy setup failed

O host do dispositivo não conseguiu aplicar o proxy na inicialização. Confira se o proxy está ativo e se ele é HTTP ou HTTPS, não SOCKS5, depois clique em Parar, aguarde e Iniciar. Para iniciar o dispositivo sem proxy, defina o Proxy dele como Sem proxy antes.

Próximos passos

Páginas relacionadas

Esta página foi útil?

Dúvidas? Pergunte no Discord