Donde guardo mis ideas

Carlos Coronado Maleno

En mi caso, la Base de Datos está en un hosting privado desde el cual solo es accesible a través de una IP fija: el servidor de producción.

Como el router de mi casa va cambiando periodicamente la IP, cada cierto tiempo voy perdiendo la conexión con la Base de Datos… y sería un fallo de seguridad abrir todo el rango de IPs para que, aunque mi IP cambie, no pierda la conexión…

La configuración que está en el servidor de producción es:

mysql -h dirección.basededatos.com:35333 -u admin

Pero desde mi ordenador de casa no puedo usar esta configuración porque, como he dicho antes, dirección.basededatos.com solo admite conexiones desde 1 sola IP, que es el servidor de producción.

Para arreglar esto podemos exponer un puerto remoto desde el servidor hacia mi ordenador de casa (haciendo forward), lo que vendría a ser:

Local (3306) —> VPN/SSH —> Servidor de producción —> Internet (35333) -> Base de datos

o traducido a shell:

ssh -L localhost:3306:dirección.basededatos.com:35333 -N usuario@nuestro-servidor.com
-L  para definir las opciones de enrutamiento: puerto_local:dirección_remota:puerto_remoto
-N  para que no ejecute el comando y cierre el terminal, sino que deje abierta la conexión.

Con esto ya podemos conectarnos desde nuestro ordenador de casa:

mysql -h localhost:3306 -u admin

 

Mejora: Si esto lo necesitamos para conectanos desde dentro de un contanier docker, abrimos el tunel con:

ssh -L ip-del-docker-anfitrion:3306:dirección.basededatos.com:35333 -N usuario@nuestro-servidor.com

y después para conectarnos:

mysql -h ip-del-docker-anfitrion:3306 -u admin

Para sacar la IP del anfitrion, ejecutamos en nuestro pc:

ip addr show docker0

 

Docker for mac

Para los que usan macOS el comando cambia un poco porque no existe la interfaz docker0:

ssh -L 3306:dirección.basededatos.com:35333 -N usuario@nuestro-servidor.com

y como host de BD de nuestro proyecto poner: host.docker.interna

Desarrollador de aplicaciones.
Consultor tecnológico.

Facebook Twitter LinkedIn Skype  



Política de privacidad

Utilizamos "cookies" propias y de terceros para elaborar información estadística y mostrarle publicidad personalizada a través del análisis de su navegación. Si continúa navegando acepta su uso. Puede leer la política de cookies aquí.

Hemos detectado que estás usando un bloqueador de publicidad. Por favor, considera desactivarlo en esta web. Aunque no es mucho, la publicidad nos ayuda a paliar los gastos de mantener esta web activa. Muchas gracias

No cedemos los datos a terceros, solo lo usamos para enviarte notificaciones cuando publicamos algo nuevo.
No enviamos publicidad.