BandaAncha

  • 🔍 en 📰 artículos ⏎
  • 🔍 en 💬 foros ⏎
  • 🔍 en 👇 este 💬 foro ⏎
  • 🔍 en 👇 este 💬 tema ⏎
Regístrate Regístrate Identifícate Identifícate
ADSL/VDSL

Ya estoy desquiciado con el servidor FTP

BocaDePez

Ya me he leido todos los faqs de internet, todos los posts del mundo, todos los manuales del puto router que he encontrado , he actualizado el firmware del router, en fin, he hecho de todo, y no hay manera... NO CONSIGO QUE ME ANDE EL SERV-U!!!!!

el router es el Zyxel 643 que daba antes telefonica, y ahora lo tengo para la linea de 1 Mb de Ya.com . Lo tengo en multipuesto , con las peticiones al puerto 21 redirigidas a la IP del ordenador (la que me sale con ipconfig) Tambien tengo redirigido el puerto 20, como lei por no se donde. He desactivado el filtro webset del router, y en la configuracion via web el nivel de seguridad esta en permitir server (eso de allow server hosting) Desde www.smoothftp.com puede entrar y hacer login en el server (creo vamos XD) me hace le listado de las carpetas del hd, pero si le doy a entrar en cualquier carpeta me sale esto:
04.PROGRAMAS.PC : 550 /04.PROGRAMAS.PC: No such file or directory.

Obviamente, la carpeta existe, la ruta esta bien puesta en el programa, he probado con el Serv-U y con el G6, y con los dos me da el mismo error, asi que me figuro que algo pasa con el router que se queda la conexion ahi, o algo asi...

¿Alguna sugerencia?

Este tema está cerrado a nuevas respuestas. Abre un nuevo tema para retomar la conversación.
eN1Gm4

Para montar un servidor de FTP solo necesitas abrir el puerto 21, nada más.

BocaDePez

Ya esta abierto, de hecho se puede hacer login en el servidor, pero se queda clavado al cambiar de directorio...

🗨️ 3
Elender

Por qué no pruebas con otro servidor de FTP, otro programa me refiero, los hay buenos y gratuitos. Así podrás distinguir si es un problema del router, de la conexión o del propio software. Suerte.

🗨️ 1
BocaDePez

Ya he probado con el G6, y da el mismo fallo, asi que de el programa no es...

Frankie2004

Porque el FTP-DATA usa el puerto 20 ... u otro, dependiendo si te pones en modo pasivo.

MainFrame

Uffff, venga, va... hoy me apetece escribir:

Hay dos modos de abrir una conexión de datos a un ftp: activo(o modo port) y pasivo. El servidor se puede configurar para que acepte ambos tipos de conexiones o solamente una de ellas. El cliente, a su vez, tiene que saber cómo debe conectarse al servidor. La mayoría de los clientes vienen con la modalidad pasiva por defecto (creo que el ftp del MS-DOS no XD, lo que lo hace útil para pruebas), incluso los web browsers vienen en pasivo por defecto. (los servidores suelen aceptar ambos tipos por defecto)

La diferencia es la siguiente: en ambos modos, la conexión de control la abre el cliente al puerto 21, en el que se supone que el servidor está escuchando, y por lo tanto está "abierto" en el firewall del router. Pero a la hora de abrir la conexión de datos, la cosa cambia. En los primeros clientes, estos después informaban mediante un comando PORT sobre el puerto que el SO del cliente ftp había decidido para establecer la conexión de datos(ya que se elige de manera dinámica). El servidor cogía esa información y abría una conexión de datos hacia ese puerto del cliente, poniendo el 20 (generalmente, aunque puede usar otro) como su puerto de conexión de datos, y la cosa funciona. Pero en este caso, es el servidor el que abre la conexión de datos hacia el cliente, y puede que ese puerto no esté abierto si el cliente está detrás de un firewall y no tiene control sobre dicho firewall, con lo cuál la conexión no se establecerá.

Para evitar este problema con los firewalls en el cliente, se diseñó el modo pasivo. En el modo pasivo, se trata de que sea el cliente también el que abre la conexión de datos, de tal manera que el firewall no la impida (suelen ser menos restrictivos en las conexiones salientes que en las que quieren entrar). Ahora, cuando la conexión de control está establecida, el cliente envía una petición PASV al servidor, en la que pide permiso para ser él el que abra la conexión, así como información sobre el puerto que debería usar para conectarse al servidor. El servidor se lo pedirá al SO y este le asignará un puerto por encima del 1024 (ya no será el 20!). El servidor le comunica al cliente que es a ese puerto al que debe abrir la conexión, y el cliente así lo hace, con lo que esta vez ES EL CLIENTE EL QUE ABRE LA CONEXIÓN AL SERVIDOR.
Problemón: Tu ordenador, en el que se está ejecutando el servidor, sabe que debe esperar una conexión en tal puerto por encima de 1024, pero tu router no sabe nada al respecto, con lo que no redirige la conexión a ningún ordenador y esta nunca se establece.

Solución:

La más fácil-> No permitir conexiones en modo pasivo, configurando el servidor para ello. Lo malo es que tienes que avisar a todos tus clientes de que configuren su cliente ftp en modo activo.

La más difícil -> Tener un servidor FTP que entre las opciones incluya una en la que tú puedas decidir qué puertos se van a elegir cuando alguien haga una petición PASV, y abrir esos mismos puertos en el router. Esto no es muy útil con el P643, ya que no permite abrir rangos de puertos.
El WarFTP server, además de ser muy bueno y gratuito (y no demasiado evidente de configurar, he de decir...:-P), tiene una aplicación para ello. Se trata de que el creador del servidor ha puesto un servidor externo. En este servidor "dynip.jgaa.com", das de alta tu ftp, le creas un dominio, e incluyes esta información en un fichero de texto que viene con el servidor. Cuando el servidor arranca, comprueba la IP dinámica externa que tienes asignada, pidiéndole al servidor externo que la mire, y asocia tu dominio a esa IP. Pero además, permite que especifiques qué puertos se van a usar para el comando PASV, de tal manera que cuando el cliente se intente conectar, los encuentre abiertos en el router. Supongo que especificando un sólo puerto, en vez de un rango, debería funcionar, pero no estoy seguro. Habría que probarlo...(quizás lo haga yo esta noche :-D)

Pero hay más... (esto te pasa por preguntar XDDDD). En modo pasivo, además del puerto en el que el cliente debe conectarse, el servidor envía su propia IP, para que el cliente sepa a dónde debe conectarse (un detalle del estándar que solamente resulta útil para la conexión entre dos servidores FTP gestionada por un cliente). Y?... Bueno, esa dirección va en el campo de datos del mensaje. Por ejemplo mi ordenador le diría al cliente: "Si quieres abrir tú la conexión, hazlo en el puerto 2734 a mi IP, que es la 192.168.1.1" , ya que esa es la dirección que el cliente cree que tiene. ¿Sustituye esta dirección el NAT del router por la suya, la externa del router? -> No!!, porque el NAT actúa a nivel de red (direcciones IP de la cabecera) y no cambia cosas dentro del campo de datos de las aplicaciones (a no ser que sea un router muy bueno, de los que no tenemos en casa). Resultado: el cliente intentará abrir la conexión a la dirección inexistente de intenet 192.168.1.1 :-(
Este es el otro problema que resuelve el método del WarFTP que te he contado, ya que la dirección IP que mete en la respuesta PASV es la que detecta el servidor externo, y no la que está definida en tu ordenador local detrás de NAT.

Una última observación: cuando des de alta el dominio, no tienes por qué usarlo. Puedes seguir usando otro que ya le hayas puesto al FTP siempre y cuando los dos apunten en todo momento a la misma dirección, la de tu router. Es decir, que estén los dos actualizados en todo momento si tienes IP dinámica, o bien que tengas IP fija, en cuyo caso siempre apuntarán a lo mismo.

Salu2.

P.D.- Hacía siglos que no me curraba un post así, pero es que me ha hecho mucha ilusión la dirección que has puesto para probar el FTP desde fuera. La que tenía yo era un coñazo. Gracias- ;-)

Editado: Diversas correcciones de forma y ortografía... 8-). Añadidas correcciones sugeridas por xavi_super en este hilo

🗨️ 1
MainFrame

Sí que funciona la configuración en modo activo con un sólo puerto. Lo acabo de comprobar. Incluso se conecta desde la página que has dado tú como prueba. Varios amigos han conseguido entrar sin problema en los dos modos.

Salu2.