Na verdade, existem várias boas razões para usar o NAT com suas VMs, em vez da interface com ponte. (Essa é uma pergunta antiga, mas surgiu como meu primeiro resultado pesquisando como fazer isso, migrando do VirtualBox para onde eu faço. o tempo todo, então achei que vale a pena adicionar)
Apenas algumas razões para usar o NAT são:
- É fácil e portátil
- se você estiver em uma LAN de cliente que exija um endereço MAC conhecido para obter um IP (caso contrário, terá que tentar adivinhar os não utilizados e arriscar um conflito e geralmente chamar a atenção de si mesmo :)),
- coisas como permitir que suas VMs usem um único servidor proxy em seu host (ou seja, se você não controla a rede em que você está), ou ser capaz de firewall / filtrar o tráfego de broadcast (janelas etc.) na saída em um Local conveniente.
- poder atribuir a eles um IP fixo ou reservado para que você possa consultá-los por nome / IP de fora do host (novamente, se você não conseguir obter reservas na rede com uma interface em ponte)
- mas acima de tudo, ele permite que você se esconda atrás de uma única configuração de firewall em seu host e compartilhe as coisas entre eles de uma maneira mais protegida, em vez de expor todas as VMs ao "selvagem" e ter que protegê-las individualmente, etc. .. Assim como você faz com um modem / roteador da Internet
De qualquer forma, para o meu caso (VMWare Workstation 10, host Linux, OS X Guest) e qualquer pessoa que se depare com isso, esta é a visão geral do que funcionou para mim. Além do waffling e what-ifs, existem realmente apenas três etapas principais.
- Portanto, primeiro você precisa decidir o que deseja permitir à sua VM / convidado "fora" do seu host (observe como abaixo, você poderá acessá-lo facilmente a partir do próprio host). Uma aposta segura seria apenas expor / permitir apenas SSH (porta 22) às máquinas na sua sub-rede. Você também pode permitir a porta 80/443 se tiver um servidor web na VM, etc, e também pode usar um "túnel" para acessar outros serviços usando SSH (mostrará o exemplo abaixo) e usar FUSE / SSHFS para fornecer ao seu host acesso ao sistema de arquivos .. (ou o recurso de pasta compartilhada no VMWare, mas ainda não o usei).
Portanto, a idéia é algo como: "Permitir que coisas na rede local do meu host (por exemplo, 10.1.1.0/24 ou 192.168.1.0/24) se conectem à porta 22222 no host, que encaminharemos para a porta 22 de um host. convidado específico ". Deve ser um convidado específico, é claro (isso torna a possibilidade de configurar seus IPs ainda mais úteis, e você pode alterá-los todos em um só lugar sem abrir cada VM), assim como fazê-lo através do roteador da Internet para permitir coisas de jogos através de etc.
Portanto, quando tudo estiver pronto, você poderá estar no seu laptop ou outra máquina na LAN, ssh na sua estação de trabalho (host do vmware) em 22222, e você será desviado para o convidado que pediu para encaminhar. Como mencionado acima, se você também disser que deseja conectar-se ao servidor postgres no convidado (ou servidor vnc, que geralmente não é criptografado), poderá fazer um túnel no mesmo comando (em vez de adicioná-lo também ao dhcp conf). Por exemplo
console ~> ssh root@hostip -p 22222 -L 54320:localhost:5432
e você seria transferido para o convidado via ip forward no vmware e poderia apontar sua ferramenta pgadmin3 para localhost: 54320 (não priveleged) no seu laptop, e seu tráfego na rede seria criptografado. (Observe 'localhost' já está encaminhado para o convidado)
Notas
- Existem várias maneiras de fazer isso. Por um lado, você pode simplesmente fazer um túnel para hospedar e especificar o IP do convidado no -L e ele "romperá" e o indicará, mas a opção nat.conf é boa e conveniente e você não precisa digitá-lo toda vez. Existem também outras formas de encaminhamento de porta
- Eu já tinha visto referências em alguns threads de uma GUI de rede virtual para fazer isso (como o virtualbox tem), mas não consegui encontrá-lo nesta versão
- Eu não uso o Windows, portanto, embora eu assuma que seria muito semelhante à configuração como host, não tenho certeza. As configurações de NAT devem funcionar para qualquer convidado do vmware (embora eu não tenha usado nenhuma outra versão do VMWare)
O VMware configura uma rota para que o host possa entrar em contato diretamente com o convidado NAT, ou seja, no console do host, eu posso executar ping / ssh etc., o convidado NAT 192.168.198.10 (definido acima) diretamente
console ~> route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
<snip>
192.168.198.0 0.0.0.0 255.255.255.0 U 0 0 0 vmnet8
192.168.233.0 0.0.0.0 255.255.255.0 U 0 0 0 vmnet1
- De uma nota do linux, há alguns mexendo com o vmware com o systemd init para iniciar automaticamente, e junto com isso eu descobri que não posso simplesmente reiniciar o vmware (o vmci não carrega novamente) e preciso reiniciar minha máquina para fazer com que o material NAT / DHCP fique acima, mas você pode não ter o problema. Existem alguns tópicos com soluções systemd