¿Cómo usar el modo FTP pasivo en el símbolo del sistema de Windows?

En Ubuntu ftp -p para el modo pasivo funciona bien.

¿Cómo hago lo mismo en Windows?

Intenté con quote pasv pero estoy obteniendo el siguiente error:

 230 OK. Current restricted directory is / ftp> quote pasv 227 Entering Passive Mode (31,170,167,221,116,239) ftp> cd os 250 OK. Current directory is /os ftp> dir 500 I won't open a connection to 10.23.16.248 (only to 113.193.128.177) 425 No data connection ftp> 

Mi firewall está deshabilitado.

Windows no es compatible con el modo pasivo.

Puede enviar el comando al servidor de tres maneras diferentes, pero eso no habilitará el modo pasivo en el extremo del cliente de Windows.

Esos argumentos son para enviar varios comandos y pasv no es algo en lo que Microsoft pensó cuando lo escribieron.

Tendrá que buscar un software de terceros como WinSCP que admita el uso de la línea de comandos y usarlo en lugar del Windows nativo.

El cliente de línea de comandos FTP de Windows ( ftp.exe ) no admite el modo pasivo en ninguna versión de Windows. Lo hace bastante inútil hoy en día debido a firewalls y NATs ubicuos.

Usar la quote pasv no ayudará. Cambia solo el servidor al modo pasivo, pero no al cliente .


Use cualquier otro cliente de línea de comandos FTP de Windows. La mayoría de los demás admiten el modo pasivo.

Por ejemplo, WinSCP se configura por defecto en el modo pasivo y hay una guía disponible para convertir el script FTP de Windows al script WinSCP .

(Soy el autor de WinSCP)

Aunque esto no responde la pregunta directamente sobre la línea de comando, pero desde el sistema operativo Windows, use el ftp: // nombre de usuario @ servidor de Windows Explorer

esto usará el modo pasivo por defecto

Para la línea de comando, el modo activo es el predeterminado

El cliente CURL admite el protocolo FTP y funciona para el modo pasivo. Obtenga la descarga SIN la versión SSL y no necesita ninguna biblioteca openssl.dll. Solo una aplicación de línea de comandos curl.exe.
http://www.paehl.com/open_source/?CURL_7.35.0

 curl.exe -T c:\test\myfile.dat ftp://ftp.server.com/some/folder/myfile.dat --user myuser:mypwd 

Otro es Putty psftp.exe pero el mensaje de verificación de la clave del servidor requiere un truco. Esta línea de comando ingresa NO para indicar que la clave de significado no está almacenada en el registro esta vez. Necesita un archivo de script externo, pero a veces es bueno si copia varios archivos hacia arriba y hacia abajo.
http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html

 echo n | psftp.exe ftp.server.com -l myuser -pw mypwd -b script.txt 

script.txt (se puede escribir cualquier comando ftp)

 put "C:\test\myfile.dat" "/some/folder/myfile.dat" quit 

El comando quote PASV no es un comando para el progtwig ftp.exe , es un comando para el servidor FTP que solicita un puerto de orden superior para la transferencia de datos. Una transferencia pasiva es aquella en la que los datos FTP sobre estos puertos de orden superior, mientras que el control se mantiene en los puertos inferiores.

El progtwig ftp.exe Windows se puede usar para enviar los comandos del servidor FTP para realizar una transferencia pasiva de datos entre dos servidores FTP. Una instalación estándar de Windows no tendrá, y probablemente no debería tener, un servicio de servidor FTP que se ejecute como un punto final para las transferencias pasivas. Por lo tanto, si se necesitan transferencias pasivas con un cuadro de Windows estándar, se necesita una solución que no sea ftp.exe ya que FTPing a localhost ya que una de las conexiones no funcionará en la mayoría de los entornos de Windows.

Puede efectuar una transferencia pasiva de FTP entre dos hosts diferentes (pero no dos conexiones en el mismo host) de la siguiente manera:

Abra dos avisos, use uno para ftp.exe conéctese a su servidor FTP de origen y uno a ftp.exe conéctese a su servidor FTP de destino.

Ahora establezca una conexión pasiva entre los servidores que utilizan los comandos crudos PASV y PORT. La quote PASV responderá con un IP / puerto en puntos suspensivos. Utilice esa información para el comando de quote PORT . Su enlace pasivo ahora está establecido suponiendo que los firewalls no han bloqueado uno o más de los cuatro puertos (2 para control FTP, 2 para datos FTP)

A continuación, inicie la recepción de datos con el comando quote STOR en el servidor FTP receptor y luego envíe la quote RETR control quote RETR al servidor FTP de origen.

para mí:

 client 1 > ftp.exe server1 ftp> quote PASV 227 Entering Passive Mode (10,0,3,1,54,161) client 2 > ftp.exe server2 ftp> quote PORT 10,0,3,1,54,54,161 ftp> quote STOR myFile client 1 ftp> quote RETR myFile 

Cavet: me estoy conectando a algunos viejos servidores FTP YMMV

Este es un problema común . cuando iniciamos la conexión ftp, solo la ip externa abre el puerto para la conexión pasv. pero la ip detrás de la NAT no abre la conexión, por lo que la conexión pasiva falla con el comando PASV

tenemos que especificar que al abrir la conexión para abrir la conexión con

ftp -p {host}

FileZilla funciona bien. Uso FileZilla FTP Client “Transferencia manual” que admite el modo Pasivo.

Ejemplo: abra FileZilla y seleccione “Transferir” >> “Transferencia manual” y luego en la Ventana de transferencia manual, realice lo siguiente:

1) Confirme que la opción de Descargar / Cargar adecuada esté seleccionada 2) Para Remoto: Ingrese el nombre del directorio donde se encuentra el archivo para descargar 3) Para Remoto: Ingrese el nombre del archivo que se descargará 4) Para Local: busque el directorio deseado desea descargar el archivo a 5) Para Local: Ingrese un nombre de archivo para guardar el archivo descargado As (use el mismo nombre de archivo como archivo para descargar a menos que desee cambiarlo) 6) Casilla de verificación “Iniciar transferencia inmediatamente” y haga clic en “Aceptar “7) La descarga debe comenzar momentáneamente 8) Nota: Si olvidó la checkbox” Iniciar transferencia inmediatamente “… No hay problema: simplemente haga clic con el botón derecho en el archivo que se descargará (dentro de la cola de proceso (cola de transferencia de archivos) la parte inferior del panel de la ventana de FileZilla y seleccione “Process Queue” 9) El proceso de descarga debe comenzar momentáneamente 10) Hecho