Eu parece que o windows ftp não faz ftp passivo corretamente, então acabei escrevendo meu próprio programa ftp em c # forçando o modo passivo. Isso está bem.
Estou tentando executar um script de FTP de trabalho em minha VM do Azure com o Server2012.
Todos os firewalls estão desativados para este teste. Port20 / 21 é um ponto final aberto.
OPEN ftp.domain.co.uk
user
password
cd current
binary hash
prompt n
quote pasv
MGET *.*
QUIT
Resposta:
ftp> OPEN ftp.domain.co.uk
Connected to ftp.domain.co.uk.
220---------- Welcome to Pure-FTPd [privsep] [TLS] ----------
220-You are user number 2 of 50 allowed.
220-Local time is now 15:15. Server port: 21.
220-This is a private system - No anonymous login
220 You will be disconnected after 3 minutes of inactivity.
User (ftp.domain.co.uk:(none)):
331 User xxxxxxx OK. Password required
230-User xxxxxxxxx has group access to: ftpgroup
230-OK. Current directory is /
230-All usage is logged for security and statistical analysis purposes.
230 Do not exceed one download set per 10 minute interval.
ftp> cd current
250 OK. Current directory is /current
ftp> binary hash
200 TYPE is now 8-bit binary
ftp> prompt n
Interactive mode Off .
ftp> quote pasv
227 Entering Passive Mode (85,17,xx,xxx,197,86)
ftp> MGET *.*
I won't open a connection to 10.140.x.xx (only to 168.63.xxx.xxx)
200 TYPE is now 8-bit binary
Cannot find list of remote files.
ftp> QUIT
221-Goodbye. You uploaded 0 and downloaded 0 kbytes.
221 Logout.
Como você pode ver, há um problema no comando MGET.
Eu tentei um comando ativo com PORT xx, xx, xxx, xxx, xx, xx, mas recebo um comando inválido após essa linha do cliente FTP.
O Filezilla se conecta bem pela porta 21.
Tags ftp azure windows-server-2012