La función FTP de línea de comandos no funciona


12

Estoy usando Windows 7 y tengo múltiples aplicaciones de cliente FTP trabajando sin ningún problema. Sin embargo, cuando uso FTP de línea de comandos, puedo conectarme, iniciar sesión (después de ingresar el nombre de usuario y la contraseña), pero siempre se desconecta cuando se usa el comando dir o ls. La respuesta es:

Conexión cerrada por host remoto.

¿Como puedo solucionar este problema?


Abra los puertos 20, 21 en su firewall.
Sean Perkins el

Respuestas:


13

Por lo general, verás que este tipo de cosas suceden cuando el servidor intenta conectarse contigo pero no puede. FTP usó originalmente dos canales TCP . Uno era para comandos y el otro para transferir datos. Cuando ejecuta el comando dir, utiliza un canal de datos. El canal de datos se establece bajo demanda y hace que el servidor intente conectarse de nuevo con usted.

Lo más probable es que esté bloqueado por su enrutador o firewall de Windows. Necesita un cliente que admita el modo PASV .

Puede habilitar el modo PASV en Internet Explorer . O use un cliente diferente. No estoy seguro de si la versión de línea de comandos puede usar el modo PASV. Es un cliente muy básico.


Gracias Matt. Pensé que el cliente FTP de la línea de comandos usaba el modo pasivo por defecto, pero acabo de encontrar varias publicaciones que dicen que el FTP de la línea de comandos de Windows en realidad excluye el modo pasivo. IE siempre funciona bien en mi máquina para FTP. Solo quiero usar la línea de comandos para examinar algunos datos sin procesar de un servidor FTP.
Hong

Como experimento, podría ver si habilitar o deshabilitar PASV en Internet Explorer hace la diferencia ... o da un error similar o el mismo.
barlop

1
ftp> PASV: comando no válido. (Windows 7 Ent.). Esta respuesta es exactamente lo que sucede en el trabajo.
Bratch

66
necesita ser CITA PASV
JosephStyons

5

Tuve un problema con la transmisión de archivos a través de FTP una vez que inicié sesión en el cuadro en cuestión. Crearía el nombre del archivo, pero el archivo estaba vacío. Lo resolví haciendo lo siguiente:

  • Vaya a Panel de control → Firewall de Windows → Configuración avanzada → Reglas de entrada
  • Haga doble clic en la columna Nombre para ordenar por nombre
  • Desplácese hacia abajo hasta que vea dos reglas llamadas "Programa de transferencia de archivos"; estos se configuraron en Bloquear en mi PC (gran círculo rojo con una línea que lo atraviesa)
  • Haga doble clic en la regla.
  • En la pestaña General , en Acción , establezca Permitir la conexión
  • Hacer clic OK
  • Haz esto por la otra regla

Debería ser bueno ir ahora.


¿Cuáles son las implicaciones de seguridad de hacer esto?
Peter Mortensen

Los programas en su PC ahora pueden usar ftp.
Mark Deven

Eliminar las reglas, luego conectarse a través de FTP y emitir algo como un comando "dir" (activar el firewall de Windows para preguntar si se debe permitir FTP, y recrear las reglas, si dice Sí) también puede ayudar.
mlvljr

5

El cliente de línea de comandos FTP de Windows solo ftp.exeadmite un modo FTP activo.

Configurar el FTP en el modo activo puede ser engorroso hoy en día debido a los firewalls y NAT.

Es probable debido a su firewall local o NAT que el servidor no pudo conectarse de nuevo a su cliente para establecer una conexión de transferencia de datos para la lista de directorios ( lso dircomandos).

O su cliente no conoce su dirección IP externa y proporciona una dirección interna al servidor (en PORTcomando), que el servidor obviamente no puede usar.

Consulte mi artículo Configuración de red para el modo activo .


Si es posible, debe usar un modo pasivo, ya que generalmente no requiere una configuración adicional en el lado del cliente.

Lamentablemente, el cliente de línea de comandos FTP de Windows (the ftp.exe) no admite el modo pasivo en absoluto. Lo hace bastante inútil hoy en día.

Utilice cualquier otro cliente de línea de comandos FTP de Windows en su lugar. La mayoría de los otros admiten el modo pasivo.

Por ejemplo, WinSCP pasa al modo pasivo y hay una guía disponible para convertir la secuencia de comandos FTP de Windows a la secuencia de comandos WinSCP .

(Soy el autor de WinSCP)


Funciona en cualquier versión de Windows (desde XP). ¿Qué error obtienes? Considere hacer una nueva pregunta por separado con más detalles.
Martin Prikryl

Necesita ambos winscp.comy winscp.exeen la misma carpeta. Creo que el mensaje de error dice claramente que se winscp.combusca winscp.exeen su carpeta. Ver también winscp.net/eng/docs/executables
Martin Prikryl

Np, borra los comentarios.
Martin Prikryl

4

Encontré este problema en un servidor Windows 2008.

Este artículo sugiere habilitar el Servicio de puerta de enlace de capa de aplicación. Esto no solucionó el problema para mí.

Lo que solucionó el problema fue agregar una excepción en el Firewall de Windows para C: \ Windows \ system32 \ ftp.exe


1
De manera predeterminada, el firewall de Windows incluye ftp.exe en su excepción, pero solo para la red doméstica / laboral. Asegúrese de no estar en una red pública; de lo contrario, permita también ftp para la red pública.
Jags

1

Estaba experimentando el mismo problema con el software de punto de venta de terceros en una máquina con Windows 7 que agrupa los datos de las transacciones del cliente a un servidor SQL.

Funcionó bien hasta que la ubicación del cliente cambió los ISP y, por lo tanto, las direcciones IP estáticas. Los comandos FTP de línea de comandos no funcionaron más allá del inicio de sesión inicial y ninguno de los remedios que encontré en línea o este hilo funcionó.

Solo por diversión, volví a crear la regla FTP en el firewall, un router / firewall D-Link de cheapo , y viola, parece estar funcionando nuevamente.


0

Problema FTP

Puertos abiertos en azul NSG y firewall del servidor: 21,20,4000-40009,990,14147

Problema: el cliente no puede conectarse a ftp desde la línea de comandos y Powershell

Podemos conectarnos con testuser pero no podemos ver el directorio / Lista

Instalé Wireshark en el servidor y en mi computadora portátil para capturar paquetes. Creé un filtro en wireshark con “ftp” e “IP”. La captura de paquetes no indica si el clima es pasivo o activo y la IP de origen es correcta. (configuramos IP primaria e IP secundaria en el servidor)

Descubrimos que la conexión ftp no funciona desde el símbolo del sistema. tratando de iniciar una conexión a ftp.abcd.com que estaba resolviendo a 11.22.33.44 y no al servidor FTP actual 44.33.22.11 Las direcciones IP 11.22.33.44 y 44.33.22.11 están configuradas en la misma máquina. Sin embargo, el DNS se estaba resolviendo a la IP FTP secundaria en lugar de a la Primaria

Inicialmente, también encontramos que las conexiones FTP a 11.22.33.44 funcionaban bien y estas conexiones eran conexiones activas. No pudimos ver que el modo pasivo funciona aquí. Además, al iniciar la conexión a 11.22.33.44 desde el comando Commad, la sesión se congela después de dar el comando 'dir', sin embargo, lo mismo funciona con otros clientes ftp como FileZilla y Winscp.

Intenté probar con WinSCP y FileZilla y pude ver que las conexiones en modo pasivo funcionan bien y no son activas, lo cual es un comportamiento esperado. Verificamos por qué el comando 'dir' no funciona desde los dispositivos después de la autenticación exitosa, pudimos ver que el firewall de Windows está bloqueando la conexión. Deshabilitamos el firewall y todo comenzó a funcionar como se esperaba. Verifiqué lo mismo en mi extremo después de crear la regla de firewall, se resolvieron los problemas. Hubo un sistema que, incluso después de deshabilitar el firewall, se atascó en la lista de directorios, esto podría ser un problema dentro de ese sistema o las conexiones están siendo bloqueadas por un factor externo. Desde después de la desactivación, la mayoría de nosotros somos capaces de trabajar bien.

la configuración debe realizarse en la máquina Vaya a Panel de control → Firewall de Windows → Configuración avanzada → Reglas de entrada Haga doble clic en la columna Nombre para ordenar por nombre Desplácese hacia abajo hasta que vea dos reglas llamadas "Programa de transferencia de archivos"; estos se configuraron en Bloquear en mi PC (gran círculo rojo con una línea que lo atraviesa) Haga doble clic en la regla En la pestaña General, en Acción, configure en Permitir la conexión Haga clic en Aceptar


Esto es lo que la respuesta de @Keljo ya dice (en realidad, ha copiado su respuesta).
Martin Prikryl
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.