Tentei obter um arquivo do meu servidor FTP com um arquivo em lote. Aqui está o que acontece:
ftp> open files.000webhost.com 21
Connected to us-east-1.route-1000.000webhost.awex.io.
220 ProFTPD Server (000webhost.com) [::ffff:145.14.145.124]
500 OPTS UTF8 not understood
User (us-east-1.route-1000.000webhost.awex.io:(none)):
331 User ***** OK. Password required
230-Your bandwidth usage is restricted
230 OK. Current restricted directory is /
ftp> lcd C:\Users\micah\Desktop\MiniventureLauncher\Game
Local directory now C:\Users\micah\Desktop\MiniventureLauncher\Game.
ftp> cd public_html
250 OK. Current directory is /public_html
ftp> binary
200 TYPE is now 8-bit binary
ftp> recv miniventure.jar
200 PORT command successful
150-Connecting to port 50186
150 13336.1 kbytes to download
Então simplesmente para. Aqui está o código no meu arquivo em lote:
@Echo Off
Set _FTPServerName=files.000webhost.com 21
Set _UserName=*****
Set _Password=*****
Set _LocalFolder=C:\Users\micah\Desktop\MiniventureLauncher\Game
Set _RemoteFolder=public_html
Set _Filename=miniventure.jar
Set _ScriptFile=transfer
:: Create script
>"%_ScriptFile%" Echo open %_FTPServerName%
>>"%_ScriptFile%" Echo %_UserName%
>>"%_ScriptFile%" Echo %_Password%
>>"%_ScriptFile%" Echo lcd %_LocalFolder%
>>"%_ScriptFile%" Echo cd %_RemoteFolder%
>>"%_ScriptFile%" Echo binary
>>"%_ScriptFile%" Echo recv %_Filename%
>>"%_ScriptFile%" Echo quit
:: Run script
ftp -s:"%_ScriptFile%"
Del "%_ScriptFile%"
Ele se conecta ao servidor, mas não baixa o arquivo.
Responder1
Como sugere @martin-prikryl nos comentários, é quase certo que este é um problema de firewall do Windows.
Embora o Windows ftp
possa se conectar a um host remoto sem permissão especial, para baixar arquivos, as transferências remotas recebidas precisam ser explicitamente permitidas através do firewall do Windows.
Permitindo transferências recebidas
Se não houver regras de firewall do Windows para Windows ftp
, ao executá-lo com o recv
comando, você deverá ser solicitado a adicionar regras de entrada ao firewall do Windows automaticamente. A caixa marcada Private networks [...]
deve ser marcada por padrão. aperte oPermitir acessobotão para adicionar as regras apropriadas ao firewall do Windows.
ex. Permitir downloads via Windows ftp.exe
Você não precisará marcar a caixa marcada, Public networks [...]
a menos que pretenda usar o Windows ftp
fora de casa. Você precisará ser um administrador para ajustar as regras do firewall.
Observe que, infelizmente, isso não permitirá que o download atual continue. Você precisará abortar a operação atual (geralmente com Ctrl+ C) e tentar novamente.
Nenhum pop-up de firewall é exibido
Se a transferência travar e nenhum pop-up de regras de firewall for exibido, isso provavelmente significa que já existem regras no firewall do Windows para Windows ftp
(elas serão adicionadas mesmo se você pressionar inicialmenteCancelarna caixa de diálogo acima). Além disso, é provável que essas regras sejam definidas para bloquear quaisquer conexões de entrada (indicadas por ícones circulares com barras).
ex. Windows ftp.exe bloqueado pelo firewall do Windows
Para mudar isso:
AbrirPainel de Controle\Sistema e Segurança\Firewall do Windowse clique no link marcadoConfigurações avançadasdo lado esquerdo.
NoFirewall do Windows com segurança avançadacaixa de diálogo (mostrada acima), clique no botãoRegras de entradalink à esquerda e aguarde o painel principal ser preenchido. Procure as duas regras marcadasPrograma de transferência de arquivos. Você pode clicar noNomecabeçalho da categoria para classificar os itens em ordem alfabética, conforme necessário.
Para cada regra, clique com o botão direito e selecionePropriedades. Debaixo deEm geralguia, altere oAçãode
Block the connection
paraAllow the connection
. ImprensaOKna parte inferior da caixa de diálogo quando terminar.ex. Atualizando regras de firewall do Windows para Windows ftp.exe
Se feito corretamente, os ícones de círculos com barras devem ser substituídos por marcas de seleção verdes.
ex. Regras de firewall do Windows para Windows ftp.exe - marcas de seleção verdes
Criando suas próprias regras
Na eventualidade de você desejar adicionar (criar) manualmente essas regras, prossiga pelas etapas 1 e 2, exceto clicarNova regra...no lado direito depois de selecionarRegras de entrada.
Crie uma regra para conexões TCP e uma regra para conexões UDP (as opções de protocolo estão listadas na seçãoProtocolos e portasaba). Certifique-se de queTodas as portassão autorizadas. Ajusta aEscopopropriedades da guia (geralmente definidas comoQualquer endereço IP) e aAvançadoabaPerfis(geralmente apenas Private
) conforme necessário.
Por último, sob oProgramas e Serviçosguia, coloque, por exemplo, C:\windows\system32\ftp.exe
como o caminho do programa (em caso de dúvida, você pode usar where ftp
um prompt de comando para exibir o caminho correto).