alejototaro.dev

adb reverse para conectar Mockoon con Android

Cómo hacer que un emulador Android acceda a Mockoon corriendo en localhost usando adb reverse.

| 2 min
androidreact-nativemockoonnetworking

Contexto

Uso Mockoon para mockear APIs cuando desarrollo con React Native. Mockoon levanta un servidor local (generalmente en el puerto 3001) que responde con los endpoints y datos que configures — sin necesidad de tener el backend real corriendo.

El problema aparece cuando levantás un emulador de Android: la app hace un request a http://localhost:3001 pero no llega a Mockoon. La pantalla queda cargando o tira error de red.

Por qué pasa

localhost dentro del emulador de Android apunta a la interfaz loopback del propio emulador, no a tu máquina. Son redes distintas. Tu Mockoon está escuchando en el localhost de tu máquina, pero el emulador busca en el suyo.

Android ofrece 10.0.2.2 como alias del host, pero implica cambiar las URLs en tu código solo para desarrollo en Android, y no funciona con dispositivos físicos.

La solución

adb reverse crea un túnel que redirige un puerto del emulador/dispositivo al mismo puerto en tu máquina:

adb reverse tcp:3001 tcp:3001

Con esto, cuando la app haga un request a http://localhost:3001, el tráfico llega directo a Mockoon en tu máquina. No necesitás cambiar ninguna URL en el código.

Cada vez que levantás un emulador nuevo o reiniciás el dispositivo, tenés que correr el comando de nuevo — el reverse no persiste.

Verificar

adb reverse --list
(reverse) tcp:3001 tcp:3001

Remover

# Uno específico
adb reverse --remove tcp:3001

# Todos
adb reverse --remove-all