Eu tenho um problema com o upload de arquivos via FTP. Eu posso listar com sucesso os diretórios, mas quando eu tento fazer upload de um arquivo, digamos ".htaccess", ele fica pendurado por cerca de 20 segundos em STOR .htacess
e, em seguida, lança um tempo limite. Ele tenta novamente várias vezes, mas sempre falha.
É assim que uma saída completa do cliente FTP se parece com a transferência de arquivos:
Status: Connecting to 88.150.168.207:21...
Status: Connection established, waiting for welcome message...
Response: 220 Welcome to CodeBuster FTP service.
Command: USER codebuster
Response: 331 Please specify the password.
Command: PASS ********
Response: 230 Login successful.
Command: OPTS UTF8 ON
Response: 200 Always in UTF8 mode.
Status: Connected
Status: Starting upload of D:\Projects\codebuster\.htacess
Command: CWD /public_html
Response: 250 Directory successfully changed.
Command: PWD
Response: 257 "/public_html"
Command: TYPE A
Response: 200 Switching to ASCII mode.
Command: PASV
Response: 227 Entering Passive Mode (88,150,168,207,155,25).
Command: STOR .htacess
Error: Connection timed out
Error: File transfer failed
Status: Connecting to 88.150.168.207:21...
Status: Connection established, waiting for welcome message...
Response: 220 Welcome to CodeBuster FTP service.
Command: USER codebuster
Response: 331 Please specify the password.
Command: PASS ********
Response: 230 Login successful.
Command: OPTS UTF8 ON
Response: 200 Always in UTF8 mode.
Status: Connected
Status: Starting upload of D:\Projects\codebuster\.htacess
Command: CWD /public_html
Response: 250 Directory successfully changed.
Status: Retrieving directory listing...
Command: TYPE I
Response: 200 Switching to Binary mode.
Command: PASV
Response: 227 Entering Passive Mode (88,150,168,207,73,43).
Command: LIST
Response: 150 Here comes the directory listing.
Response: 226 Directory send OK.
Command: TYPE A
Response: 200 Switching to ASCII mode.
Command: PASV
Response: 227 Entering Passive Mode (88,150,168,207,222,74).
Command: STOR .htacess
Error: Connection timed out
Error: File transfer failed
Status: Connecting to 88.150.168.207:21...
Status: Connection established, waiting for welcome message...
Response: 220 Welcome to CodeBuster FTP service.
Command: USER codebuster
Response: 331 Please specify the password.
Command: PASS ********
Response: 230 Login successful.
Command: OPTS UTF8 ON
Response: 200 Always in UTF8 mode.
Status: Connected
Status: Starting upload of D:\Projects\codebuster\.htacess
Command: CWD /public_html
Response: 250 Directory successfully changed.
Status: Retrieving directory listing...
Command: TYPE I
Response: 200 Switching to Binary mode.
Command: PASV
Response: 227 Entering Passive Mode (88,150,168,207,35,185).
Command: LIST
Response: 150 Here comes the directory listing.
Response: 226 Directory send OK.
Command: TYPE A
Response: 200 Switching to ASCII mode.
Command: PASV
Response: 227 Entering Passive Mode (88,150,168,207,109,53).
Command: STOR .htacess
Error: Connection timed out
Error: File transfer failed
Isso é com o iptbles desligado, então não é um problema de firewall. O tamanho do arquivo certamente não é um problema, já que é apenas uma linha com a configuração do índice de diretório.
Como nota adicional, este é um diretório chro, pertencente ao codebuster: codebuster e as permissões são drwxrw-rw-
.
Aqui estão algumas notas adicionais:
uma linha do log vsftpd mostra:
Sat Jan 10 14:46:23 2015 240 ::ffff:89.72.176.192 35 /public_html/.htacess a _ i r codebuster ftp 0 * c
, por isso, afirma que a transferência foi concluída, mas não foi.
A exclusão de arquivos funciona corretamente
Resumo de tcpdump port ftp
mostra:
100 packets captured
101 packets received by filter
0 packets dropped by kernel
Usar o modo ativo no cliente ftp não altera a situação.