En fait, il y a tout un tas de bonnes raisons d'utiliser NAT avec vos machines virtuelles, plutôt qu'une interface pontée. tout le temps, donc j'ai pensé qu'il valait la peine d'ajouter)
Voici quelques raisons d'utiliser NAT:
- C'est facile et portable
- si vous êtes sur un réseau local client qui nécessite une adresse MAC connue pour obtenir une adresse IP (sinon vous devrez essayer de deviner les adresses inutilisées et risquer un conflit, et généralement attirer votre attention sur vous :)),
- des choses comme permettre à vos machines virtuelles d'utiliser un seul serveur proxy sur votre hôte (IE si vous ne contrôlez pas le réseau sur lequel vous êtes), ou être en mesure de pare-feu / filtrer leur trafic de diffusion (Windows, etc.) à la sortie en un seul place convenable.
- pouvoir leur attribuer une IP fixe ou réservée afin que vous puissiez vous y référer par nom / IP depuis l'extérieur de l'hôte (encore une fois, si vous ne pouvez pas obtenir de réservations sur le réseau avec une interface pontée)
- mais surtout, il vous permet de vous cacher derrière une seule configuration de pare-feu sur votre hôte, et de partager des choses entre vous / eux de manière plus protégée, plutôt que d'exposer chaque machine virtuelle à la "nature" et d'avoir à les protéger tous individuellement, etc. .. Tout comme vous le faites avec un modem / routeur Internet
Quoi qu'il en soit, pour mon cas (VMWare Workstation 10, hôte Linux, OS X Guest), et toute personne qui tombe dessus, c'est l'aperçu de ce qui a fonctionné pour moi. Mis à part les gaufres et les hypothèses, il n'y a vraiment que 3 étapes principales.
- Donc, vous devez d'abord décider ce que vous voulez autoriser à votre VM / invité de "l'extérieur" de votre hôte (notez comme ci-dessous, vous pourrez y accéder facilement depuis l'hôte lui-même). Une valeur sûre serait simplement d'exposer / autoriser uniquement SSH (port 22), aux machines de votre sous-réseau. Vous pouvez également autoriser le port 80/443 si vous aviez un serveur Web sur la machine virtuelle, etc., et vous pouvez également utiliser un "tunnel" pour accéder à d'autres services à l'aide de SSH (donne l'exemple ci-dessous), et utiliser FUSE / SSHFS pour donner à votre hôte accès au système de fichiers .. (Ou la fonction de dossier partagé sur VMWare, mais je ne l'ai pas encore utilisée).
Donc, l'idée est quelque chose comme: "Autoriser les choses sur le réseau local de mon hôte (par exemple 10.1.1.0/24, ou 192.168.1.0/24) à se connecter au port 22222 sur l'hôte, que nous transmettrons au port 22 d'un invité spécifique ". Il doit bien sûr s'agir d'un invité spécifique (cela rend la configuration de vos adresses IP encore plus utile, et vous pouvez les modifier en un seul endroit sans ouvrir chaque machine virtuelle), tout comme le faire via votre routeur Internet pour autoriser les jeux. à travers etc.
Donc, une fois que tout est fait, vous pourriez être sur votre ordinateur portable ou une autre machine sur le réseau local, ssh vers votre station de travail (hôte vmware) sur 22222, et vous seriez éloigné de l'invité auquel vous lui avez dit de vous transmettre. Comme mentionné ci-dessus, si vous dites également vouloir pouvoir se connecter au serveur postgres sur l'invité (ou le serveur vnc, qui est souvent non chiffré), vous pouvez créer un tunnel dans la même commande (au lieu de l'ajouter également à la conf dhcp). Par exemple
console ~> ssh root@hostip -p 22222 -L 54320:localhost:5432
et vous seriez connecté à l'invité via l'IP forward dans vmware, et pourriez pointer votre outil pgadmin3 vers localhost: 54320 (non privé) sur votre ordinateur portable, et votre trafic sur le réseau serait crypté. (Notez que «localhost» y est déjà transmis à l'invité)
Remarques
- Il y a toutes sortes de façons de le faire. D'une part, vous pouvez simplement créer un tunnel pour héberger et spécifier l'IP de l'invité dans le -L et cela "éclaterait" et vous dirigerait là, mais l'option nat.conf est agréable et pratique, et vous n'avez pas besoin de le taper à chaque fois. Il existe également d'autres moyens de redirection de port
- J'avais vu une référence à quelques threads d'un GUI de réseau virtuel pour faire cela (comme virtualbox l'a), mais je ne l'ai pas trouvé dans cette version
- Je n'utilise pas de fenêtres, donc même si je suppose qu'il serait très similaire de configurer en tant qu'hôte, je ne suis pas sûr. Les configurations NAT devraient cependant fonctionner pour tout invité vmware (même si je n'ai utilisé aucune autre version de VMWare)
VMware définit un itinéraire pour que l'hôte puisse contacter directement l'invité NAT, IE depuis la console de l'hôte, je peux ping / ssh, etc. l'invité NAT 192.168.198.10 (défini ci-dessus) directement
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
- À partir d'une note Linux, il y a quelques bidouilles avec vmware avec systemd init pour démarrer correctement `automatiquement, et en plus de cela, j'ai trouvé que je ne peux pas simplement redémarrer vmware (vmci ne se charge pas à nouveau), et je dois redémarrer ma machine pour faire les choses NAT / DHCP ci-dessus, mais vous pourriez ne pas avoir le problème. Il existe cependant quelques threads avec des solutions systemd