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
Nesta página
- Antes de começar
- Tipos de proxy
- Testar um proxy
- Anexar um proxy por instância de emulador ou dispositivo na nuvem
- Como um proxy SOCKS5 ou HTTP funciona em um emulador Android
- Como funciona em um dispositivo na nuvem
- IP de saída nos webhooks e no histórico de execuções
- Limites
- Rotas de proxy para chaves de API
- Solução de problemas
- Proxy falhou no card do dispositivo
- O status mostra morto
- 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:
host:port
host:port:user:pass
scheme://user:pass@host:portClique 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:
- Clique em Anexar em um proxy.
- Escolha o Dispositivo emulador. Os dispositivos que já têm um proxy aparecem marcados como “has a proxy”.
- Escolha o Comportamento da sessão: Fixa, que prende um IP a este dispositivo, ou Rotativa, um IP novo a cada requisição.
- 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:
- Quando uma execução começa, o MAS consulta o proxy do dispositivo e inicia um relay ligado a
127.0.0.1em 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. - 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.
- Depois que o adb conecta, o MAS roda
adb reversepara o localhost do próprio emulador alcançar o relay, e então define o proxy HTTP global do dispositivo como127.0.0.1:<relay port>. Isso se repete a cada reconexão, porque uma reconexão derruba os mapeamentos reversos. - 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
Obrigado. Se algo estiver errado, conte para a gente no Discord.
Dúvidas? Pergunte no Discord