O FTP “425 não é possível abrir a conexão de dados” ocorre apenas ao usar o prompt de comando

8

Todo o meu computador está atrás de um único roteador. Eu tenho um servidor FileZilla em execução em um deles. Estou tentando automatizar um upload para o servidor usando um script em lote e o ftp.exe interno do Windows. Eu configurei um serviço DNS dinâmico para poder acessar meu servidor de fora do roteador e configurei o encaminhamento de porta no roteador para o meu servidor. Posso conectar e transferir perfeitamente usando o Google Chrome, o Windows Explorer e o cliente FileZilla. No entanto, sempre que tento usar o ftp.exe (manualmente ou em lote), posso me conectar ao servidor, mas se tentar fazer algo que abra uma conexão de dados (LIST, STOR ou RETR), obtenho o seguinte erro: 425 Não é possível abrir a conexão de dados. Eu permiti o ftp.exe nos firewalls de ambos os computadores. Alguma idéia do que está acontecendo ou como eu poderia corrigi-lo? Eu não preciso usar ftp.

EDIT Eu sei que meu ISP bloqueia muitas portas, incluindo 21 e várias outras nesse intervalo. Tudo isso está configurado na porta 2121, com as portas passivas configuradas para 2122-2142, todas elas foram encaminhadas no roteador. Talvez o ftp.exe use apenas uma certa porta para conexão de dados, bloqueada pelo meu ISP? Se sim, como eu mudaria isso?

Garrett
fonte

Respostas:

5

O FTP ativo regular usa uma conexão de dados iniciada pelo servidor separada para transferências e usa apenas a conexão da porta 21 regular como o canal de controle. Quando o cliente está protegido por um firewall, no entanto, é provável que o firewall bloqueie essa conexão. Acho que o Chrome, o Explorer, o FireZilla etc. são inteligentes o suficiente para experimentar o modo passivo, no qual a conexão iniciada pelo cliente original é usada como canal de controle e de dados.

Parece que o cliente FTP CLI padrão do Windows não suporta o modo passivo. Então você precisará mudar para NcFTP . Como alternativa, e acho que provavelmente a melhor opção, é apenas usar o SFTP. O FTP é inseguro e realmente deve ser usado apenas em LANs. O SFTP é totalmente criptografado e também usa apenas um canal para dados e comandos. Se você precisar de um cliente CLI SFTP, o PSFTP é uma boa opção.

Lèse majesté
fonte
Eu já tentei isso sem sorte
Garrett
@ Garrett: Hrmm ... parece que o artigo do blog ao qual vinculei está errado, e o cliente FTP da CLI padrão não suporta o modo passivo. Nesse caso, você terá que trocar de clientes FTP. O NcFTP é uma opção e definitivamente suporta o modo passivo.
Lèse majesté
Eu assisti o pedido / resposta durante a transferência através do Windows Explorer, citação usada para enviar manualmente os mesmos comandos exatos, mas ainda tenho o mesmo erro
Garrett
@Garrett: Eu pensei que o Windows Explorer funcionava? Se o cliente não suportar o modo passivo, não será importante dizer ao servidor para mudar para ele.
Lèse majesté
Ele suporta linha de comando e é um exe independente?
Garrett
0

A CLI do FTP do Windows suporta o modo PASSIVO. Use "quote pasv" para entrar no modo passivo.

George Rios
fonte
2
Eu não acho que isso realmente funciona . Você pode confirmar que quote pasvrealmente faz algo no ftp.exe e não é apenas um comando fictício?
Lèse majesté
0

Eu tive esse problema também. A solução foi parar o firewall do antivírus (no meu caso, a McAfee), estava bloqueando as portas do FTP.

Sfalcini
fonte
Isso não é realmente uma solução.
precisa saber é o seguinte