He dibujado algunos bocetos
La máquina, donde se escribe el comando ssh tunnel (o en su caso: se inicia Masilla con tunelización) se llama »su host« .
Introducción
local: -L Specifies that the given port on the local (client) host is to be forwarded to the given host and port on the remote side.
ssh -L sourcePort:forwardToHost:onPort connectToHost
significa: conectarse con ssh a connectToHost
, y reenviar todos los intentos de conexión al puerto local en la máquina llamada , a la que se puede acceder desdesourcePort
onPort
forwardToHost
connectToHost
máquina.
remoto: -R Specifies that the given port on the remote (server) host is to be forwarded to the given host and port on the local side.
ssh -R sourcePort:forwardToHost:onPort connectToHost
significa: conectarse con ssh a connectToHost
, y reenviar todos los intentos de conexión al puerto remoto en la máquina llamadasourcePort
onPort
forwardToHost
, a la que se puede acceder desde su máquina local.
Su ejemplo
La primera imagen representa tu situación. El cuadro azul llamado your host
es su máquina Windows desde la cual inicia Putty en su servidor Ubuntu, llamado remotehost
en mi imagen. Las conexiones al puerto verde (en su caso, número de puerto 4000
) se reenvían al puerto rosa MySQL 3306
de la localhost
máquina de su servidor Ubuntu (es decir, el servidor Ubuntu mismo).
Para configurarlo con Putty
Inicie Putty e ingrese su configuración de conexión habitual (Nombre de host o dirección IP) En el árbol del lado izquierdo, navegue hasta
Conexión → SSH → Túneles
y cree un nuevo túnel local con el puerto de origen 4000
(123 en la imagen) y el destinolocalhost:3306
(localhost: 456 en la imagen).
No olvides hacer clic en Agregar .
Luego, regrese a la sesión y haga clic en Guardar para mantener su configuración la próxima vez. Ahora puede usar la conexión guardada para iniciar sesión en su servidor y después de iniciar sesión con éxito, cada vez que se conecte al puerto 4000 en su host, realmente se conectará al puerto 3306 en el servidor Ubuntu.
La respuesta simple es sí, pero tenga en cuenta que el túnel se inició realmente en su computadora. La forma en que funciona es que crea una conexión SSH al servidor (que es segura) y luego le indica al SSH que escuche un puerto de su lado y reenvíe cualquier conexión que ingrese, a un puerto específico en una dirección de host específica en el lado del servidor. El objetivo del túnel no necesita ser el mismo servidor; puede ser cualquier otra dirección válida que, en el caso de que no sea el servidor que ejecuta el servidor SSH, verá la conexión entrante como si viniera del servidor SSH en lugar de de su cliente
Para configurarlo, abra el cuadro de diálogo de configuración de Masilla, seleccione la configuración de la conexión que normalmente utiliza para acceder a su servidor y haga clic en "cargar" (y no en "abrir"). Luego, en el árbol del lado izquierdo, navegue a Conexión-> SSH-> Túneles y cree un nuevo túnel "local" con el puerto de origen 4000 y el destino "localhost: 3306" (porque la dirección de destino se resuelve en el servidor, desde el punto de vista del servidor, el puerto MySQL está en el host local). Luego navegue de regreso a "sesión" y haga clic en "Guardar" para mantener su configuración para la próxima vez. Ahora puede usar la conexión guardada para iniciar sesión en su servidor y después de iniciar sesión con éxito, cada vez que se conecte al puerto 4000 en su computadora, realmente se conectará al puerto 3306 en el servidor.
Si le gustan mucho los túneles y ejecuta un cliente MS-Windows, le sugiero que consulte Putty Tunnel Manager que utiliza Putty para configurar y ejecutar túneles fácilmente sin necesidad de tener una consola de masilla abierta.
fuente