Inicio › Tecnología › Depuración Remota
La depuración remota es la técnica de conectar un depurador a un proceso qué se ejecuta en una máquina distinta a la del desarrollador, ya sea un servidor de pruebas, un contenedor Docker o un dispositivo embebido. El depurador local se conecta mediante un protocolo específico, como JDWP en el ecosistema Java, el inspector de Node.js expuesto por un puerto, o extensiones como Remote - SSH de VSCode, y habitualmente se establece un túnel SSH o se abre un puerto controlado para transportar esa comunicación de forma segura. Permite inspeccionar variables, colocar breakpoints y seguir la ejecución exactamente igual qué en local, pero sin necesidad de reproducir el entorno completo de producción en el propio ordenador.
Es depurar un programa qué no está corriendo en tu ordenador, sino en otro servidor, como si estuviera delante de ti. Te conectas a él a través de la red y puedes pausar el código y mirar las variables igual qué si lo tuvieras en tu propia máquina.
Un desarrollador de backend necesita entender por qué un servicio Node.js falla solo cuando corre dentro de su contenedor Docker en el entorno de staging. Expone el puerto de inspección de Node, abre un túnel SSH hacia ese servidor y conecta el depurador de VSCode, reproduciendo el fallo en tiempo real sin tener qué replicar la configuración exacta del contenedor en su equipo.
Si el puerto queda expuesto públicamente sin autenticación, cualquiera podría conectarse y ejecutar código o leer datos sensibles del proceso; por eso se recomienda restringirlo a redes internas o túneles cifrados y cerrarlo en cuanto termina la sesión de depuración.
Lo más común es abrir un túnel SSH qué redirige un puerto local hacia el puerto de depuración del servidor remoto, de forma qué el depurador local cree qué habla con un proceso en localhost aunque en realidad esté al otro lado de la red.
Es técnicamente posible pero arriesgado, porque pausar el proceso afecta a usuarios reales; se reserva para casos excepcionales y suele preferirse activar logs detallados temporales o replicar el problema primero en un entorno de staging idéntico.