Esta não é a melhor resposta para sua pergunta porque ignora o problema e realiza as transferências de outra maneira. No entanto, estou postando essa resposta de qualquer maneira porque estou no lugar dela e normalmente recorro a usar a rede virtual entre a VM e o host para transferir arquivos. Em vez de perder tempo tentando fazer com que os recursos do vbox funcionem, eu uso apenas o netcat
para executar uma transferência de arquivos insegura . O fato de ser inseguro só importaria se sua VM estivesse visível para a rede local do seu host. Por padrão, ele usa NAT, portanto, o fato de ser uma transferência insegura é provavelmente irrelevante.
Suposições:
- Configurações de rede padrão (NAT, sem personalização de rede virtual)
-
A VM convidada pode ver o computador host em 10.0.2.2 (padrão típico do VirtualBox)
Como obter o IP da rede virtual de hosts: (Adicionado em 2017-05-06)
Você pode usar o IP do seu host para qualquer rede não virtual à qual esteja conectado, mas eu aconselho contra isso por motivos de segurança. Use o IP da rede virtual. É mais seguro.
No sistema operacional convidado da máquina virtual, abra um terminal e execute o seguinte comando:
route -n | grep -P "^0.0.0.0" | tr -s ' ' | cut -f2 -d ' '
O endereço IP retornado por esse comando é o endereço IP que você substituirá abaixo nos comandos nc
. O meu é 10.0.2.2
Anfitrião - > Transferência de arquivos convidados:
- No seu host, execute
cat /your/file/to/transfer | nc -l 21435
. Aqui,21435
é a porta a ser usada. Você pode substituir qualquer porta não utilizada. - Na máquina convidada, execute
nc 10.0.2.2 21435 > /your/file/to/save
.
Convidado - > Transferência de arquivos do host:
- No seu host, execute
nc -l 21435 > /your/file/to/save
. - Na máquina convidada, execute
cat /your/file/to/transfer | nc 10.0.2.2 21435
.
Independentemente da direção da transferência, certifique-se de executar os comandos acima na ordem listada (para a direção em questão). Isso é importante porque o primeiro comando inicia um serviço de escuta ao qual o segundo comando se conecta. Depois de executar o primeiro comando, o terminal parecerá não responder. O programa está em execução e escutando nessa máquina. Quando o segundo comando é executado na outra máquina e a transferência é concluída, os terminais em ambas as máquinas "se tornarão responsivos" novamente (ou seja, nc
sairá).
Para transferir vários arquivos, pode ser mais fácil compactá-los todos em um único arquivo morto primeiro.
Eu não aconselharia a realização de transferências de arquivos confidenciais como essa em uma rede que outras pessoas possam espionar, a menos que você tenha outros meios para criptografar os dados.