FTP acesso aos arquivos da Máquina Visitante do VirtualBox da Host Machine

1

Eu instalei o pure-ftpd na máquina Convidada. Eu tentei conectar-me ao servidor FTP da Máquina Convidada da Máquina Convidada com o número da porta 21 e consegui conectar-me a ela com êxito.

Na máquina host, adicionei o seguinte comando para redirecionar a porta 2121 do host para a porta 21 do convidado e conectar ao servidor FTP da máquina convidada.

VBoxManage setextradata Ubuntu "VBoxInternal/Devices/e1000/0/LUN#0/Config/FTP/HostPort" 2121   
VBoxManage setextradata Ubuntu "VBoxInternal/Devices/e1000/0/LUN#0/Config/FTP/GuestPort" 21
VBoxManage setextradata Ubuntu "VBoxInternal/Devices/e1000/0/LUN#0/Config/FTP/Protocol" TCP

Mas uma vez que eu tentei acessar este servidor ftp convidado da Host Machine, ele me perguntou uma senha para o usuário que eu tenho na máquina Convidado e a autenticação passou com sucesso. Mas quando tentou listar diretórios, ele me mostrou uma mensagem de erro dizendo:

Se você traduzir para o Enlgish, será o seguinte:

O conteúdo da pasta não pôde ser exibido.

Não foi possível exibir todo o conteúdo de "/ no host local: 2121": não é possível abrir a conexão de dados. Talvez o seu firewall esteja bloqueando isso?

Como resolver o problema?

    
por Bakhtiyor 27.11.2010 / 15:44

1 resposta

2

O FTP pode ser um protocolo complicado. A conexão de controle é (normalmente) configurada na porta. Essa conexão é usada para autenticação e envio de comandos para o servidor. A transferência de dados acontece em uma conexão diferente. Normalmente, isso está na porta 20. O que acontece é que o cliente solicita dados do servidor na porta 21 e, em seguida, o servidor abre uma conexão de volta ao cliente na porta 20 para transferir os dados. É onde um firewall na máquina rodando o cliente ftp pode atrapalhar (pode bloquear a conexão de entrada do servidor ftp).

O FTP tem um modo passivo que supostamente faz com que o servidor ftp transfira dados para o cliente através da conexão de controle, em vez de abrir uma nova conexão para a transferência de dados. Eu acho que o comando é PASV, mas eu nunca tentei isso sozinho.

Espero que isso seja útil.

    
por Dennis VanMeter 27.11.2010 / 16:16