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?
fonte
A CLI do FTP do Windows suporta o modo PASSIVO. Use "quote pasv" para entrar no modo passivo.
fonte
quote pasv
realmente faz algo no ftp.exe e não é apenas um comando fictício?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.
fonte