Atualmente, executar o FTP passivo tão bem quanto você faria em um servidor dedicado não é possível por dois motivos: um é que o Azure atualmente permite que você abra apenas 25 pontos de extremidade (corrija-me se estiver errado) cada servidor e a outra é a conexão IP virtual < - > que o Azure usa. Vamos pegar os problemas um por um.
O Azure atualmente implementa um balanceador de carga / firewall / NAT que encaminha o tráfego de um IP virtual externo para um endereço de rede interno ( 10.0.0.0/8
class). Se você executar ifconfig
em sua máquina virtual, encontrará o que estou falando. Um ponto de extremidade é reservado para o SSH e não acredito que você realmente queira desabilitá-lo. Portanto, se outro ponto de extremidade for reservado para a porta 21, você poderá usar apenas 23 portas PASV (assim que não hospedar nenhum outro serviço), limitando estritamente o número de clientes que podem se conectar simultaneamente. Depois de aceitar isso, vamos em frente.
Se você abriu as portas 25003-25006 (uma por uma), você pode usar a seguinte configuração para ativá-las
pasv_enable=YES
pasv_min_port=25003
pasv_max_port=25006
vsftpd
e qualquer outro servidor FTP emite um comando PASV
que basicamente diz "conectar a X.Y.W.Z na porta AA". Qualquer servidor FTP deve ler a configuração da máquina para obter o endereço de rede: é por isso que o vsftp basicamente diz "conectar a 10.X.Y.Z na porta 25003" e, então, por que o cliente trava !!!
Use o seguinte para dizer ao vsftpd para usar um endereço externo diferente
pasv_addr_resolve=YES
pasv_address=dom.cloudapp.net
Testado, trabalhado e compartilhado com a comunidade!
Notas: O FTP ativo funciona assim que o cliente não está protegido por um firewall ou Great Wall, e o SFTP é a melhor alternativa para o FTP, mas infelizmente muitos aplicativos legados não o suportam.