Problemas com o acesso ao arquivo FTP para o convidado VirtualBox executando o Windows 2008 Server R2 x64

1

Estou no OSX 10.11 e tenho um convidado do VirtualBox executando o Windows 2008 Server R2 x64 (com rede NAT) executando o IIS com FTP na porta 21.

Meu problema é: posso fazer login no FTP a partir do host, mas não consigo ver listagens de diretório ou obter arquivos.

O FTP foi instalado assim e há uma entrada de firewall do Windows que permite TCP pela porta 21.

A porta 21 do convidado é encaminhada para a porta 8021 no host. O login para o convidado no FTP é bem-sucedido, mas não consigo visualizar nenhum dos arquivos usando o FTP.

No host: Usando a linha de comando para o FTP, recebo isso:

$ ftp localhost 8021
Trying ::1...
ftp: Can't connect to '::1': Connection refused
Trying fe80::1%lo0...
ftp: Can't connect to 'fe80::1%lo0': Connection refused
Trying 127.0.0.1...
Connected to localhost.
Name (localhost:david): Administrator
331 Password required for Administrator.
Password: ****
230 User logged in.
Remote system type is Windows_NT.
ftp> dir
229 Entering Extended Passive Mode (|||49170|)
ftp: Can't connect to '127.0.0.1': Connection refused
501 Server cannot accept argument.
150 Opening ASCII mode data connection.
ftp: Poll timeout waiting before accept
425 Cannot open data connection.


^C
421 Service not available, user interrupt. Connection closed.
ftp> quit

Usando Transmitir para FTP, a mensagem de erro é:

Could not retrieve file listing for “/”. Server said: Server cannot accept argument.

Error -162: PORT failed

No convidado: Linha de comando FTP funciona bem ...

C:\Users\Administrator>ftp localhost
Connected to XXX.
220-Microsoft FTP Service
User (XXX:(none)): Administrator
331 Password required for Administrator.
Password: *****
230 User logged in.
ftp> dir
200 EPRT command successful.
125 Data connection already open; Transfer starting.
06-22-16  10:42AM       <DIR>          contracts
05-25-16  02:35PM               184946 welcome.png
226 Transfer complete.
ftp: 356 bytes received in 0.00Seconds 356000.00Kbytes/sec.
ftp>

Existe alguma coisa óbvia que eu perdi? Quais são os próximos passos que devo executar para que o FTP funcione?

    
por dvdsmpsn 28.06.2016 / 11:56

2 respostas

1

OK, eu percebi isso. Eu habilitei o IIS para funcionar no modo passivo

Na VM convidada do Windows:

  1. Clique em Iniciar e navegue até Ferramentas Administrativas- > Gerenciador dos Serviços de Informações da Internet (IIS)
  2. Selecione a página de configurações gerais do servidor IIS.
  3. Abra o recurso Suporte ao Firewall do FTP e adicione seu intervalo de portas (adicionei 8020-8020 ) para o modo passivo e clique em Aplicar

No host:

  1. No VirtualBox, selecione a máquina virtual e vá para Rede
  2. Adicione o encaminhamento de porta para a porta de modo passivo FTP adicional. Encaminhe da porta 8020 no convidado para a porta 8020 no host.
  3. Reinicie a máquina virtual.

Agora obtenho o seguinte resultado ao usar o FTP do host:

$ ftp localhost 8021
Trying ::1...
ftp: Can't connect to '::1': Connection refused
Trying 127.0.0.1...
Connected to localhost.
220-Microsoft FTP Service
Name (localhost:david): Administrator
331 Password required for Administrator.
Password: ****
230 User logged in.
Remote system type is Windows_NT.
ftp> dir
229 Entering Extended Passive Mode (|||8020|)
125 Data connection already open; Transfer starting.
06-22-16  10:42AM       <DIR>          contracts
05-25-16  02:35PM               184946 welcome.png
226 Transfer complete.
    
por 28.06.2016 / 15:15
0

Editado (conforme solicitado):

A resposta do @dvdsmpsn (a resposta à sua própria pergunta, de fato) é muito boa, mas não funcionou para mim completamente. Eu estou usando um Windows 7 host e um convidado do Ubuntu 16.04. Embora os sistemas fossem diferentes, o problema era o mesmo.

Alguém em condições diferentes, como a minha, pode não conseguir fazer a conexão funcionar.

Eu tive que usar o conhecimento dessas respostas também:

link

A observação de

@ brain99 sobre o pasv_address=xxx.xxx.xxx.xxx foi muito importante. Não funcionou para mim sem ele.

Servidor Ubuntu (VM convidado):

Meu servidor Ubuntu tem vsftpd como o servidor FTP. Para fazê-lo funcionar no modo passivo, eu tive que adicionar isso ao final do vsftpd. conf (dentro da pasta / etc - você pode usar a função de busca se você estiver usando um gerenciador de janelas):

pasv_enable=YES
pasv_min_port=8020 # like @dvdsmpsn recommended
pasv_max_port=8020 # like @dvdsmpsn recommended
pasv_address=127.0.0.1 # added like @brian99 recommended, BUT I used the localhost address.

Eu usei o endereço do host local porque minha máquina virtual não tem um endereço IP público.

Apenas para testes, desativei o UFW (meu firewall). Eu não queria que nada piorasse ainda mais um problema já complicado.

Como o usuário @Martin Prikryl aponta em sua resposta:

Conexão ao servidor FTP FileZilla funciona, mas diretório listagem falha

FTP usa duas portas. Por isso, vamos encaminhar duas portas no VirtualBox.

Windows 7 (host):

Depois de fazer o servidor FTP funcionar no modo passivo, segui as direções @dvdsmpsn :

  1. No VirtualBox > Configurações de VM > NAT > avançado > Port Fowarding Adicionei duas entradas:

    Host Port 8021 to Guest Port 21 Host Port 8020 to Guest Port 8020

  2. Reinicie a VM

Eu testei essa configuração no FileZilla e no Dreamweaver. Funcionou sem problemas no modo passivo em ambas as aplicações.

Infelizmente, as referências mencionadas não dizem nada sobre chroot dos usuários. Meu convidado do Ubuntu está executando o servidor web Apache e eu preciso prendê-los aos seus próprios diretórios /home/$user .

    
por 15.09.2017 / 21:29