En realidad, hay un montón de buenas razones para usar NAT con sus máquinas virtuales, en lugar de la interfaz en puente ... (Esta es una vieja pregunta, pero surgió como mi primer resultado buscando cómo hacer esto, migrando desde VirtualBox donde lo hago todo el tiempo, así que pensé que valía la pena agregarlo)
Algunas razones para usar NAT son:
- Es fácil y portátil
- si está en una LAN de cliente que requiere una dirección MAC conocida para obtener una IP (de lo contrario, deberá intentar adivinar las que no se utilizan y arriesgarse a un conflicto, y generalmente llamar la atención sobre usted :)),
- cosas como permitir que sus máquinas virtuales utilicen un único servidor proxy en su host (es decir, si no controla la red en la que se encuentra), o poder cortafuegos / filtrar su tráfico de difusión (Windows, etc.) al salir en uno lugar conveniente.
- poder asignarles una IP fija o reservada para que pueda referirse a ellos por nombre / IP desde fuera del host (nuevamente, si no puede obtener reservas en la red con una interfaz puenteada)
- pero, sobre todo, le permite esconderse detrás de una única configuración de firewall en su host y compartir cosas entre usted / ellos de una manera más protegida, en lugar de exponer a cada VM al "salvaje" y tener que protegerlos a todos individualmente, etc. .. Al igual que con un módem / enrutador de internet
De todos modos, para mi caso (VMWare Workstation 10, host de Linux, OS X Guest), y cualquiera que se encuentre con esto, esta es la descripción general de lo que funcionó para mí. Además de los gofres y lo que sucede, en realidad solo hay 3 pasos principales.
- Por lo tanto, primero debe decidir qué desea permitir a su VM / invitado desde "fuera" de su host (tenga en cuenta lo siguiente, podrá acceder fácilmente desde el host). Una apuesta segura sería exponer / permitir solo SSH (puerto 22) a las máquinas en su subred. También podría permitir el puerto 80/443 si tuviera un servidor web en la VM, etc., y también puede usar un "túnel" para acceder a otros servicios usando SSH (se dará un ejemplo a continuación), y usar FUSE / SSHFS para dar su host acceso al sistema de archivos ... (o la función de carpeta compartida en VMWare, pero aún no la he usado).
Entonces, la idea es algo así como: "Permitir que las cosas en la red local de mi host (por ejemplo, 10.1.1.0/24 o 192.168.1.0/24) se conecten al puerto 22222 en el host, que reenviaremos al puerto 22 de un invitado específico ". Tiene que ser un invitado específico, por supuesto (esto hace que poder configurar sus IP sea aún más útil, y puede cambiarlas todas en un solo lugar sin abrir cada VM), al igual que hacerlo a través de su enrutador de Internet para permitir juegos. a través de etc.
Entonces, una vez que todo esté hecho, podría estar en su computadora portátil u otra máquina en la LAN, ssh a su estación de trabajo (host vmware) en 22222, y sería arrastrado hacia el invitado al que le dijo que lo enviara. Como se mencionó anteriormente, si también dice que desea poder conectarse al servidor postgres en el invitado (o servidor vnc, que a menudo no está encriptado), puede hacer un túnel en el mismo comando (en lugar de agregarlo también a la conf dhcp). Por ej.
console ~> ssh root@hostip -p 22222 -L 54320:localhost:5432
y se lo enviaría al invitado a través de ip forward en vmware, y podría apuntar su herramienta pgadmin3 a localhost: 54320 (sin privilegios) en su computadora portátil, y su tráfico en la red se cifraría. (Tenga en cuenta que 'localhost' ya está reenviado al invitado)
Notas
- Hay todo tipo de formas de hacer esto ... Por un lado, podría simplemente hacer un túnel para alojar y especificar la IP del invitado en -L y se "rompería" y le indicaría allí, pero la opción nat.conf es agradable y conveniente, y no tiene que escribirlo cada vez. También hay otras formas de reenvío de puertos
- Había visto referencias en un par de hilos de una interfaz de usuario de red virtual para hacer esto (como lo ha hecho virtualbox), pero no pude encontrarlo en esta versión
- No uso Windows, por lo que, aunque supongo que sería muy similar configurar como host, no estoy seguro. Sin embargo, las configuraciones NAT deberían funcionar para cualquier invitado vmware (aunque no he usado ninguna otra versión de VMWare)
VMware configura una ruta para que el host pueda contactar al invitado NAT directamente, IE desde la consola del host, puedo hacer ping / ssh, etc. al invitado NAT 192.168.198.10 (definido anteriormente) directamente
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
- A partir de una nota de Linux, hay algunos problemas con vmware con systemd init para que se inicie muy bien automáticamente, y junto con eso he descubierto que no puedo reiniciar vmware (vmci no se carga nuevamente), y tengo que reiniciar mi máquina para hacer que las cosas NAT / DHCP anteriores se peguen, pero es posible que no tenga el problema. Sin embargo, hay algunos hilos con soluciones systemd