Como usar o modo FTP passivo na linha de comandos do Windows?

no Ubuntu {[1] } o modo passivo funciona bem.

Como faço o mesmo nas janelas?

tentei com quote pasv mas estou a ter o seguinte erro:

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>
A minha firewall está desactivada.

Author: Martin Prikryl, 2013-09-05

7 answers

As janelas não suportam o modo passivo.

Pode enviar o comando para o servidor de três formas diferentes, mas isso não irá activar o modo passivo no fim do cliente do Windows.

Esses argumentos são para enviar vários comandos e {[[0]} não é algo que a Microsoft tenha pensado quando o escreveu.

Terá de encontrar um software de terceiros, como o WinSCP, que suporte a utilização da linha de comandos e o use em vez do software nativo do Windows.

 37
Author: transilvlad, 2015-03-03 13:35:42

O cliente de linha de comandos FTP do Windows (ftp.exe) não suporta o modo passivo, em qualquer versão do Windows. Torna-o bastante inútil hoje em dia devido a firewalls onipresentes e NATs.

Usar o quote pasv não vai ajudar. Muda apenas o servidor para o modo passivo, mas não o cliente.


Utilize qualquer outro cliente de linha de comandos FTP do Windows. A maioria dos outros suporta o modo passivo.

Por exemplo o WinSCP corresponde por omissão ao modo passivo e há um guia disponível para converter o programa FTP do Windows para o programa WinSCP .

(sou o autor do WinSCP)

 34
Author: Martin Prikryl, 2016-10-28 15:22:37

Embora isto não responda directamente à pergunta sobre a linha de comandos, mas do Windows OS, use o Windows Explorer ftp://username@server

Isto irá usar o modo passivo por omissão

Para a linha de comandos, o modo activo é o por omissão

 8
Author: Hammad, 2015-06-08 18:56:38

O cliente CURL suporta o protocolo FTP e funciona para o modo passivo. Obtenha Download sem a versão SSL e você não precisa de nenhum openssl.bibliotecas dll. Só uma curva.aplicação da linha de comandos 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
Outro é Putty psftp.exe but server key confirmation prompt requires a trick. Esta entrada da linha de comandos NO para a chave de significado imediato não é armazenada no registro apenas desta vez sendo usado. Você precisa de um ficheiro de script mas às vezes é bom se copiar vários ficheiros para cima e para baixo.
http://www.chiark.greenend.org.uk / ~sgtatham/putty/download.html
echo n | psftp.exe ftp.server.com -l myuser -pw mypwd -b script.txt

Guião.txt (qualquer comando ftp pode ser escrito)

put "C:\test\myfile.dat" "/some/folder/myfile.dat"
quit
 6
Author: Whome, 2014-03-24 18:17:09

O comando quote PASV não é um comando para o programa ftp.exe, é um comando para o servidor FTP a pedir uma porta de alta ordem para a transferência de dados. Uma transferência passiva é aquela em que os dados FTP sobre estas portas de Alta Ordem, enquanto o controle é mantido nas portas mais baixas.

O programa windows ftp.exe pode ser usado para enviar os comandos do servidor FTP para fazer uma transferência de dados passiva entre dois servidores FTP. Uma instalação padrão do windows não terá, e provavelmente não deverá, FTP serviço de servidor em execução como ponto final para transferências passivas. Então, se são necessárias transferências passivas com uma caixa padrão do windows, uma solução diferente de ftp.exe é necessária como FTPing para localhost como uma das conexões não vai funcionar na maioria dos ambientes do windows.

Pode efectuar uma transferência de FTP passiva entre duas máquinas diferentes (mas não duas ligações na mesma máquina) do seguinte modo:

Abra duas indicações, use uma para ftp.exe Ligue-se ao seu servidor FTP de origem e uma para ftp.exe ligue-se ao seu servidor FTP de destino.

Agora estabeleça uma ligação passiva entre os servidores usando os comandos raw PASV e PORT. O comando quote PASV irá responder com um IP / porta em elipsis. Use esses dados para o comando quote PORT <data>. A sua ligação passiva está agora estabelecida assumindo que as firewalls não bloquearam uma ou mais das quatro portas (2 para o controlo FTP, 2 para os dados FTP)

A próxima recepção de dados com o comando quote STOR <filename> para o servidor FTP de recepção envia então o comando de controlo quote RETR <filename> para o servidor FTP de origem.

Então, para mim ...
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: estou a ligar-me a alguns servidores FTP antigos YMMV

 6
Author: Bruce Peterson, 2015-02-01 21:49:53
Este é um problema comum . quando iniciamos a ligação ftp apenas o ip externo abre a porta para a ligação pasv. mas o ip por trás do NAT não abre a ligação, por isso a ligação passiva falha com o comando PASV

Temos de especificar que, ao abrir a ligação, a ligação com

Ftp-p {host}

 0
Author: Ashutosh Raj, 2015-12-25 07:20:43
FileZilla funciona bem. Eu uso a "transferência Manual" do cliente FTP FileZilla, que suporta o Modo Passivo. Exemplo: Abrir o FileZilla e seleccionar "transferência" > > "transferência Manual" depois, dentro da janela de transferência Manual, executar o seguinte:

1) a opção de transferência / envio está seleccionada 2) Para remoto: indique o nome do directório onde está localizado o ficheiro a transferir 3) Para remoto: indique o nome do ficheiro a transferir 4) para o Local: Navegue pela pasta desejada deseja transferir o ficheiro para 5) para Local: Indique um nome de ficheiro para gravar o ficheiro transferido como (use o mesmo nome de ficheiro que o ficheiro a transferir, a menos que o queira alterar) 6) caixa "Iniciar a transferência imediatamente "e clique em"OK" 7) Download deve começar momentaneamente 8) Nota: Se se esqueceu de assinalar a opção "Iniciar a transferência imediatamente"... Nenhum problema: basta carregar com o botão direito no ficheiro a transferir (dentro da fila de processos (fila de transferências de ficheiros) no fundo da área da janela do FileZilla e seleccionar "processo" Fila" 9) o processo de Download deve começar momentaneamente 10) Feito

 -1
Author: Ron Arndt, 2015-12-02 09:10:28