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.
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.
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)
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
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
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.
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
Temos de especificar que, ao abrir a ligação, a ligação com
Ftp-p {host}
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