Skip to main content

Acceder remotamente a sitio corriendo sobre ddev (dentro de una red local)

Thu, 16/09/2021 - 09:54
4
mins.
acceder_entornos_remotamente
Categoria
Tutorial

Muchas veces nos ocurre que estamos usando ddev como entorno de desarrollo local y necesitamos ver el sitio que estamos desarrollando desde un dispositivo móvil, o queremos compartirlo con un compañero del equipo en la oficina. Cuando estamos utilizando docker (y ddev en nuestro caso) esta no es una tarea simple o mas bien no es algo tan directo como cuando estamos corriendo nuestro web server directamente en nuestro host. Esto sucede basicamente porque docker asigna puertos diferentes para cada web server que no son accesibles desde fuera de nuestro host (esto merecería una mayor explicación pero no es el espíritu desde este post profundizar sobre este tema).

Para resolver esto vamos a utilizar socat (disponible para Linux, yo lo probé en Ubuntu 20.4). Esta herramienta permite transferencias de datos bidireccionales de una ubicación a otra, en nuestro caso vamos a redireccionar todo el trafico que llegue a nuestro host en el puerto que definamos hacia el puerto que ddev nos asigna al contenedor de nuestro web server.

Entonces en primer lugar necesitamos instalar socat

sudo apt update
sudo apt install socat

Luego debemos conocer el puerto que ddev asigno a nuestro contenedor web, para esto corremos ddev describe. Ahí podremos ver el puerto asignado (en mi caso es el 49160),

cap1

Con esto tenemos todo lo necesario para correr socat. A continuación voy a dejar un ejemplo del comando con las opciones que se necesitan para que todo funcione.

socat tcp-listen:8889,reuseaddr,fork tcp:localhost:49160
  • tcp-listen:[PUERTO]: aquí debemos asignar un puerto arbitrariamente que será el que utilizaremos para acceder desde fuera del host. Por ejemplo si mi IP local es 192.168.1.105, para acceder al sitio desde el navegador debería agregarle el puerto a esa dirección quedando http://192.168.1.105:8889.
  • reuseaddr, fork: esto sirve para permitir que múltiples peticiones sean atendidas. De esta manera podemos estar accediendo desde mas de un dispositivo al mismo tiempo sin problemas.
  • tcp:localhost:[PUERTO]: aquí debemos colocar el numero de puerto que ddev le asigno a nuestro servidor web, en mi caso 49160
  • Socat quedará corriendo escuchando las peticiones realizadas al puerto 8889 y redireccionará al puerto 49160.

Para profundizar en el uso de socat les dejo este enlace que explica todo muy bien https://www.redhat.com/sysadmin/getting-started-socat

 

Tags