windows ftp command-prompt

windows - ms dos ftp put command



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

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

¿Cómo hago lo mismo en Windows?

Intenté con quote pasv pero quote pasv 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.


Aunque esto no responde la pregunta directamente sobre la línea de comandos, pero desde el sistema operativo Windows, use el Explorador de Windows ftp://username@server

Esto usará el modo pasivo por defecto

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


El cliente CURL es compatible con el protocolo FTP y funciona en modo pasivo. Obtenga la versión Download WITHOUT SSL y no necesita las bibliotecas openssl.dll. Sólo 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 la solicitud de verificación de la clave del servidor requiere un truco. Esta línea de comando ingresa NO para que la clave del significado del mensaje no se almacene en el registro solo esta vez siendo utilizada. 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 (cualquier comando ftp puede ser escrito)

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


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 los omnipresentes firewalls y NAT.

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

Utilice cualquier otro cliente de línea de comandos FTP de Windows en su lugar. La mayoría de los demás apoyan el modo pasivo.

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

(Soy el autor de WinSCP)


El comando quote PASV no es un comando para el programa ftp.exe , es un comando para el servidor FTP que solicita un puerto de alto orden para la transferencia de datos. Una transferencia pasiva es aquella en la que los datos de FTP a través de estos puertos de alto orden, mientras que el control se mantiene en los puertos inferiores.

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

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

Abra dos indicaciones, use una para conectar ftp.exe a su servidor FTP de origen y una para conectar ftp.exe a su servidor FTP de destino.

Ahora establezca una conexión pasiva entre los servidores utilizando los comandos en bruto PASV y PORT. El comando quote PASV responderá con una IP / puerto en puntos suspensivos. Utilice esos datos para el comando de quote PORT <data> . Su enlace pasivo ya está establecido, asumiendo que los firewalls no han bloqueado uno o más de los cuatro puertos (2 para el control de FTP, 2 para los datos de FTP)

A continuación, comience a recibir los datos con el comando quote STOR <filename> para el servidor FTP receptor y luego envíe el comando de control con el quote RETR <filename> al servidor FTP de origen.

entonces para mi

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 servidores FTP antiguos 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 del 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 "Manual Transfer" que admite el modo pasivo.

Ejemplo: abra FileZilla y seleccione "Transferir" >> "Transferencia manual" y luego, dentro de la ventana Transferencia manual, realice lo siguiente:

1) Confirmar que se haya seleccionado la opción Descargar / Cargar 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 como (use el mismo nombre de archivo que el archivo que desea descargar a menos que desee cambiarlo) 6) Marque la casilla "Iniciar transferencia inmediatamente" y haga clic en "Aceptar" "7) La descarga debería iniciarse momentáneamente 8) Nota: Si olvidó marcar la casilla de verificación" Iniciar transferencia inmediatamente "... No hay problema: simplemente haga clic con el botón derecho en el archivo a descargar (dentro de la Cola de proceso (cola de transferencia de archivos) en la parte inferior del panel de la ventana de FileZilla y seleccione "Cola de proceso" 9) El proceso de descarga debe comenzar momentáneamente 10) Hecho


Windows no admite 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 encontrar un software de terceros como WinSCP que admita el uso de la línea de comandos y usarlo en lugar del Windows nativo.