# 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.

Source: https://automationmacro.com/pt-BR/docs/proxies (Dispositivos, updated 2026-09-05)

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](/docs/device-groups). 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.

> [!WARNING]
> A configuração de proxy global do Android é consultiva. Um app que a ignora, como alguns jogos fazem, envia o tráfego direto em um emulador. [Dispositivos na nuvem](/cloud-devices) não têm essa brecha.

## 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 <ip>".
- 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](/docs/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](/docs/api-keys): `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](/docs/rest-api).

## 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](/docs/adb-troubleshooting) 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.
