Configurando o encaminhamento de porta com o NAT
Como a máquina virtual está conectada a uma rede privada interna ao VirtualBox e invisível ao host, os serviços de rede no convidado não estão acessíveis para a máquina host ou para outros computadores na mesma rede. No entanto, como um roteador físico, o VirtualBox pode disponibilizar serviços selecionados para o mundo fora do convidado por meio do encaminhamento de porta. Isso significa que o VirtualBox escuta determinadas portas no host e reenvia todos os pacotes que chegam até o convidado, na mesma porta ou em uma diferente.
Para um aplicativo no host ou em outras máquinas físicas (ou virtuais) na rede, parece que o serviço que está sendo intermediado por proxy está sendo executado no host. Isso também significa que você não pode executar o mesmo serviço nas mesmas portas no host. No entanto, você ainda ganha as vantagens de executar o serviço em uma máquina virtual - por exemplo, serviços na máquina host ou em outras máquinas virtuais não podem ser comprometidos ou travados por uma vulnerabilidade ou um bug no serviço, e o serviço pode ser executado em um sistema operacional diferente do sistema host.
Você pode configurar um serviço de convidado que você deseja usar usando a ferramenta de linha de comando VBoxManage; Para mais detalhes, consulte a seção “VBoxManage modifyvm”.
Você precisará saber quais portas do convidado o serviço usa e decidir quais portas usar no host (geralmente, mas nem sempre, você desejará usar as mesmas portas no convidado e no host). Você pode usar quaisquer portas no host que ainda não estejam sendo usadas por um serviço. Por exemplo, para configurar conexões NAT de entrada para um servidor ssh no guest, use o seguinte comando:
VBoxManage modifyvm "Nome da VM" --natpf1 "guestssh, tcp , 2222, 22"
Com o exemplo acima, todo o tráfego TCP que chega à porta 2222 em qualquer interface do host será encaminhado para a porta 22 no guest. O nome do protocolo tcp é um atributo obrigatório que define qual protocolo deve ser usado para encaminhamento (o udp também pode ser usado). O nome guestssh é puramente descritivo e será gerado automaticamente se omitido. O número após --natpf denota a placa de rede, como em outras partes do VBoxManage.
Para remover essa regra de encaminhamento novamente, use o seguinte comando:
VBoxManage modifyvm "Nome da VM" --natpf1 delete "guestssh"
Se, por algum motivo, o convidado usar um endereço IP atribuído estático não concedido ao servidor DHCP integrado, será necessário especificar o IP convidado ao registrar a regra de encaminhamento:
VBoxManage modifyvm "Nome da VM" --natpf1 "guestssh, tcp , 2222,10.0.2.19,22"
Este exemplo é idêntico ao anterior, exceto que o mecanismo NAT está sendo informado de que o convidado pode ser encontrado no endereço 10.0.2.19.
Para encaminhar todo o tráfego de entrada de uma interface de host específica para o convidado, especifique o IP dessa interface de host da seguinte forma:
VBoxManage modifyvm "Nome da VM" --natpf1 "guestssh, tcp, 127.0.0.1,2222, 22"
Isso encaminha todo o tráfego TCP que chega na interface localhost (127.0.0.1) pela porta 2222 para a porta 22 no guest.
Não é possível configurar conexões NAT recebidas enquanto a VM está em execução. No entanto, você pode alterar as configurações de uma VM que está atualmente salva (ou desativada em um instantâneo).