Túnel de conexión FTP desde casa donde el servidor solo acepta direcciones IP locales

11

Necesito acceder a un servidor FTP en el trabajo, pero el servidor solo aceptará direcciones IP locales. No puedo acceder desde mi máquina doméstica. He podido ingresar a mi máquina de trabajo Unix a través de PuTTY y desde allí abrir con éxito una conexión de consola FTP al servidor FTP.

Podría resolver esto, pero preferiría no hacerlo, ya que es muy engorroso para mí. Preferiría hacer un túnel de una conexión FTP a través de la máquina de trabajo a través de PuTTY para poder usar mi cliente FTP de elección, FileZilla, para cumplir con mis necesidades de FTP en el servidor. Por supuesto, esto es a través del puerto 21.

Sé que PuTTY es capaz de reenviar puertos a través de ssh, pero no estoy seguro de cómo usarlo.

Inicio -> Trabajo -> Servidor.

al azar
fuente
No hay nada inherentemente diferente acerca de la carga frente a la descarga a través de una conexión proxy SOCKS. La gran diferencia es que es probable que la conexión a Internet de su hogar tenga un rendimiento de carga (saliente) pobre en comparación con el rendimiento de descarga (entrante). Probablemente necesitaríamos más registros para poder diagnosticarlo.
EightBitTony
Llegué a la conclusión de que probablemente estoy en otro problema por completo y trabajaré para crear una nueva pregunta que aborde este problema específico. Muchas gracias por tu ayuda EightBitTony!
Ben Jacobson
Es posible que desee registrar su cuenta de Falla del servidor con las mismas credenciales que aquí para reclamar esta pregunta @ben
random

Respuestas:

13

Use un proxy SOCKS.

Ventana hinchada

El puerto de origen es ahora (localmente) un proxy SOCKS. Configure FileZilla para usarlo como un proxy SOCKS (ver más abajo). Abrirá una conexión a través de eso con el host al que ssh (su máquina de trabajo) y luego se conectará desde allí, a cualquier dirección IP que le dé. Funciona para cualquier cosa con soporte SOCKS y eso incluye FTP.

El resto de la configuración PuTTY sigue siendo la misma: configure los puertos (como se muestra) y luego conecte esa sesión PuTTY a su máquina de trabajo a través de SSH.

Así es como debe verse la opción FileZilla,

ingrese la descripción de la imagen aquí

Cuando coloque el destino para la conexión FTP, use la dirección IP, no el nombre de host, porque la resolución de DNS aún puede ocurrir localmente y no desea eso.

Todo es seguro e invisible: parece una conexión SSH básica a cualquier otra cosa en la red.

NB: si desea hacer esto desde la línea de comandos, puede usar PuTTY plink.exepara hacer lo siguiente,

plink -ssh -D 9090 [email protected]

logra lo mismo sin tener que crear un perfil PuTTY o usar la GUI.

OchoBitTony
fuente
Me gusta esa forma de hacerlo un poco más que mi respuesta. Puede configurar el proxy SOCKS en filezilla en "Proxy genérico" y recuerde usarlo en "modo pasivo".
Philip Couling
2

En primer lugar, es mucho más fácil / posiblemente mejor usar SCP. Dado que tiene SSH, sería común que también tenga acceso SCP. Pero no conozco tu red, así que a la pregunta ...

En primer lugar, asegúrese de que su cliente esté configurado para usar FTP en modo ACTIVO. Quería sugerir el uso del modo pasivo, pero no puede controlar qué puertos se utilizarán.

En segundo lugar, limite a un puñado la cantidad de puertos que su cliente FTP usará en modo activo. Menos de 10 sería bueno. Y he aquí por qué.

En tercer lugar, cree puertos remotos hacia adelante para todos estos puertos.

Eso debería hacerlo funcionar

Philip Couling
fuente
2

Aquí le mostramos cómo explorar el sistema de archivos del servidor interno (detrás de NAT), con FileZilla o con Nautilus File Manager, usando SFTP (sesión SSH en el puerto TCP 22), a través del servidor de puerta de enlace (fuera de NAT):

  1. Primera ejecución en la Terminal:

sudo ssh -L 9090: {nombre de host del servidor interno o IP}: 22 root @ {nombre de host del servidor de puerta de enlace o IP}

  1. Luego crea una nueva conexión.

    En FileZilla:

    • Anfitrión: sftp: //127.0.0.1
    • Nombre de usuario / Contraseña: las credenciales del servidor interno .
    • Puerto: 9090 (mismo puerto que en el comando de terminal).

O en Nautilus:

sftp://127.0.0.1:9090/, se le pedirá que ingrese las credenciales internas del servidor.

Ahora debería poder explorar el sistema de archivos del servidor interno.


ingrese la descripción de la imagen aquí

Nota: Como puede ver, no requiere configurar SOCKS Proxy en Putty ni en FileZilla :)

Noam Manos
fuente
¡Gracias! ¡Eso es exactamente lo que estaba buscando!
lorenzo-s