# Proxy en emulador Android: una IP distinta por instancia

> Asigna un proxy HTTP, HTTPS o SOCKS5 a cada instancia de emulador Android o dispositivo en la nube en MAS, prueba la IP de salida y léela en los webhooks.

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

Un proxy en un emulador Android, o en un dispositivo en la nube, da a cada instancia su propia identidad de red. Macro Automation Studio (MAS) guarda tus proxies en tu cuenta, asigna un proxy en el emulador Android o el dispositivo que elijas, y enruta el tráfico de ese dispositivo a través de él: con un relé local en un emulador, y con un proxy transparente dentro de la red del dispositivo en un dispositivo en la nube. Esta página cubre los tipos de proxy, las dos formas de añadirlos, la asignación, las pruebas y los límites.

## Antes de empezar

- Un proxy que usar: una cuenta en el gateway residencial con el que MAS se integra, o endpoints de cualquier otro proveedor.
- Dispositivos en un [grupo de dispositivos](/docs/device-groups). Un proxy se asigna a un dispositivo, no a un grupo.
- MAS está instalado y has iniciado sesión con un plan activo.

## Tipos de proxy

MAS acepta proxies `http`, `https` y `socks5`, con o sin usuario y contraseña. Deja las credenciales en blanco para un proxy autorizado por IP.

Hay dos formas de añadir proxies en la página **Proxies**:

- **Cuenta del gateway** (la primera pestaña): introduce una vez el usuario y la contraseña de tu cuenta del gateway. Esto añade una entrada, y cada dispositivo al que la asignes recibe su propia IP fija del gateway. Puedes elegir **Países** (opcional), elegir **HTTP** o **SOCKS5** como **Protocolo** y abrir **Segmentación avanzada** para estado, ciudad, código postal o ASN. Una segmentación más precisa requiere un país y el proveedor la cobra a una tarifa más alta, cosa que el formulario avisa antes de usarla.
- **Otro proveedor**: introduce una **Etiqueta**, el **Protocolo**, el **Host / IP**, el **Puerto** y, opcionalmente, **Usuario** y **Contraseña**, o pega muchos proxies a la vez en **Pegar proxies (uno por línea)** con cualquiera de estas formas y haz clic en **Importar y probar**:

```text
host:port
host:port:user:pass
scheme://user:pass@host:port
```

Haz clic en **Añadir y probar**. MAS guarda las credenciales cifradas y prueba el proxy de inmediato.

## Probar un proxy

La tabla **Pool de proxies** lista cada proxy con su estado: **activo**, **caído** o **sin comprobar**. **Probar** sale por el proxy hacia un servicio de eco de IP y registra la IP de salida, el país de salida y la latencia; **Probar todos** lo hace para todo el pool. La columna **Salida / geo** muestra lo que pediste (**want:**) junto a lo que observó la prueba (**got:**), porque un gateway puede salir por un sitio distinto del país solicitado. Un proxy del gateway se prueba sin sesión, así que su salida en la prueba es rotativa.

La columna **Datos** es el tráfico que MAS enrutó por el proxy en los últimos 30 días, medido por el propio relé de MAS. La cifra que factura tu proveedor puede diferir.

## Asignar un proxy por instancia de emulador o dispositivo en la nube

Un proxy por dispositivo. Asignar un segundo sustituye al primero, y el diálogo te avisa: "This device already has a proxy. Attaching will replace it."

Desde la página **Proxies**:

1. Haz clic en **Asignar** en un proxy.
2. Elige el **Dispositivo emulador**. Los dispositivos que ya tienen proxy aparecen marcados como "has a proxy".
3. Elige el **Comportamiento de sesión**: **Fija**, que ancla una IP a este dispositivo, o **Rotativa**, una IP nueva por petición.
4. Haz clic en **Asignar**.

Desde una tarjeta de dispositivo en **Grupos de dispositivos**, abre **Ajustes avanzados** y elige el proxy en el desplegable **Proxy**. La tarjeta lo asigna como fijo. **Sin proxy** quita la asignación.

Cada asignación fija recibe su propio id de sesión, que es lo que convierte una sola cuenta del gateway en una IP de salida distinta por dispositivo. En un proxy normal de otro proveedor, la IP de salida es la que dé ese endpoint; el ajuste de sesión no la cambia.

La tabla **Asignaciones activas** lista cada dispositivo con su proxy y su sesión. **Datos de aplicación** muestra los detalles de conexión resueltos, incluido el usuario por dispositivo, para usarlos fuera de MAS.

## Cómo funciona un proxy SOCKS5 o HTTP en un emulador Android

El ajuste de proxy global de Android no tiene campo para usuario y contraseña, y el usuario de un gateway es donde viven la segmentación y el id de sesión. Por eso MAS ejecuta un pequeño relé en este ordenador durante cada ejecución:

1. Cuando arranca una ejecución, MAS busca el proxy del dispositivo e inicia un relé enlazado a `127.0.0.1` en un puerto libre. El relé añade las credenciales a la salida y habla HTTP con el dispositivo y HTTP, HTTPS o SOCKS5 con el proxy de destino, así que un gateway SOCKS5 funciona en un emulador que no sabe hablar SOCKS5.
2. MAS envía una petición por el relé para demostrar que la ruta funciona y lee la IP, el país y la ciudad de salida. Unas credenciales incorrectas o una región no disponible fallan aquí, antes de que arranque la macro.
3. Tras conectar adb, MAS ejecuta `adb reverse` para que el localhost del propio emulador llegue al relé, y luego pone el proxy HTTP global del dispositivo en `127.0.0.1:<relay port>`. Esto se repite en cada reconexión, porque una reconexión borra los mapeos inversos.
4. Cuando termina la ejecución, MAS borra el ajuste de proxy, quita el mapeo inverso y cierra el relé.

La tarjeta del dispositivo narra cada paso: **Proxy listo** tras la comprobación, **Proxy activo** con la IP de salida una vez aplicado, **Proxy apagado** tras la ejecución y **Proxy fallido** con el motivo. El relé escucha solo en loopback, así que nada más en tu red puede usarlo.

> [!WARNING]
> El ajuste de proxy global de Android es orientativo. Una app que lo ignora, como hacen algunos juegos, envía su tráfico directamente en un emulador. Los [dispositivos en la nube](/cloud-devices) no tienen esta laguna.

## Cómo funciona en un dispositivo en la nube

En un dispositivo en la nube MAS no usa el ajuste de Android en absoluto. Cuando arranca el dispositivo, el anfitrión lanza un proxy transparente dentro del espacio de nombres de red del dispositivo y redirige todas las conexiones TCP salientes a través de él. Cada conexión se reabre a través de tu proxy de destino con tus credenciales, así que todo el tráfico del dispositivo sale por la IP del proxy tanto si la app respeta un proxy como si no. El proxy de la nube habla con el destino mediante HTTP CONNECT, así que da a un dispositivo en la nube un proxy HTTP o HTTPS.

- El proxy se aplica durante toda la vida del dispositivo, no por ejecución. Asígnalo o cámbialo y luego detén e inicia el dispositivo; la tarjeta dice "Se aplica la próxima vez que arranque el dispositivo".
- La tarjeta muestra **Proxy** con la IP de salida mientras el dispositivo está en marcha, y el log de cada ejecución empieza con "Proxy active, traffic routed through <ip>".
- Si el proxy no se puede aplicar, el dispositivo no arranca sin proxy. Pasa a **Error** con "proxy setup failed, turn the device off and on to retry".
- Un proxy asignado mientras el dispositivo ya está en marcha se aplica en un sondeo posterior sin reiniciar.

## IP de salida en los webhooks y el historial de ejecuciones

Cuando un proxy estuvo activo en una ejecución, los eventos de webhook de esa ejecución llevan `proxy_exit_ip` y `proxy_country` en `data`, junto a `device_name`, `device_port` y `group_id`. Los mismos valores se guardan con la ejecución, así que puedes comprobar más tarde por dónde salió el tráfico. Consulta [Webhooks](/docs/webhooks).

## Límites

- Un proxy por dispositivo; un dispositivo sin proxy conecta directamente.
- Esquemas: `http`, `https`, `socks5`. Puerto de 1 a 65535.
- Los emuladores aplican el proxy por ejecución; los dispositivos en la nube lo aplican por arranque del dispositivo y necesitan un destino HTTP o HTTPS.
- Segmentación del gateway: o bien países objetivo o bien países excluidos, no ambos; estado, ciudad, código postal y ASN necesitan un país.
- La cifra de uso la mide MAS y no es la factura de tu proveedor.

## Rutas de proxy para claves de API

Todas las rutas de proxy aceptan una [clave de API](/docs/api-keys): `GET`, `POST` y `PUT` en `/api/proxy` y `/api/proxy/{id}`, `POST /api/proxy/import`, `POST /api/proxy/{id}/validate`, las rutas de asignación bajo `/api/proxy/assignments` con `/api/proxy/assignments/{id}/connection-info`, `GET /api/proxy/devices/{device_id}` para el proxy asignado a un dispositivo, y `GET /api/proxy/usage`. Usa `GET /api/emulator/devices` para encontrar los id de dispositivo. Consulta la [API REST](/docs/rest-api).

## Solución de problemas

### Proxy fallido en la tarjeta del dispositivo

El mensaje nombra el paso. "proxy did not respond, check credentials or targeting" significa que el destino rechazó la comprobación: usuario incorrecto, un plan caducado o un país para el que el gateway no tiene IP. Ejecuta **Probar** en la página Proxies para ver la respuesta del proveedor. "could not expose the proxy relay to the device (adb reverse)" o "could not set the device proxy" significan que adb perdió el emulador entre la conexión y la configuración; consulta [Solución de problemas de ADB](/docs/adb-troubleshooting) y vuelve a iniciar la ejecución.

### El estado muestra caído

La prueba no pudo llegar a internet a través del proxy. Comprueba el host, el puerto y el esquema, luego las credenciales, y confirma que el proxy permite la IP de este ordenador si está autorizado por IP. Vuelve a **Probar** tras corregirlo; la latencia y la IP de salida se actualizan si sale bien.

### El dispositivo en la nube muestra proxy setup failed

El anfitrión del dispositivo no pudo aplicar el proxy al arrancar. Comprueba que el proxy está **activo** y que es HTTP o HTTPS y no SOCKS5, y luego haz clic en **Detener**, espera e **Iniciar**. Para arrancar el dispositivo sin proxy, pon antes su **Proxy** en **Sin proxy**.
