Il existe deux solutions à votre problème avec Parallels Desktop 11 (cela ne s'applique pas à Parallels Desktop Pro/Enterprise 11, qui offrent tous deux une interface pratique pour configurer la redirection de port - néanmoins, les solutions devraient également fonctionner dans ces versions améliorées) :
Au lieu d'attacher l'interface réseau de la VM au "réseau partagé", utilisez une interface pontée (par exemple en0 ou en1) et configurez-la avec une IP/masque de réseau dans le réseau respectif. Vous n'avez alors pas besoin de NAT/transfert de port.
Si vous insistez pour avoir un réseau NAT'ed, faites ce qui suit :
Dans l'exemple ci-dessous, j'utilise nc
comme serveur. Pour exécuter un serveur, entrez nc -l -4 port
et pour se connecter à ce serveur, utilisez nc server-IP port
. Vous pouvez également spécifier un port source : nc -p source-port server-IP port
.
Ici, j'utilise nc -l -4 11111
sur la VM. Pour me connecter à ce serveur, je dois exécuter nc server-IP 11111
à partir d'un hôte du même réseau. Après avoir démarré le serveur et connecté le client, il suffit de saisir un texte qui est envoyé à l'autre console. Pour se connecter à partir d'un troisième hôte dans un réseau différent à la VM nc-server que je veux utiliser nc NAT-host-IP 22222
. Je dois donc transférer l'adresse IP de l'hôte NAT:22222 vers l'adresse IP de la machine virtuelle:11111. Dans ce cas, NAT-host est le Mac hébergeant la VM de Parallels.
-
attachez l'interface réseau de l'invité VM au "Réseau de l'hôte seulement". Habituellement, le réseau hôte seulement de Parallels a la configuration hôte suivante (vérifiez cela en entrant ifconfig
sur la machine hôte) :
vnic1: ...
...
inet 10.37.129.2 netmask 255.255.255.0 broadcast 10.37.129.255
Configurez donc l'invité VM comme suit :
- IP : 10.37.129.x (avec x != 0,1,2,255) - ci-dessous je suppose que c'est 10.37.129.10
- Netmask : 255.255.255.0
- Passerelle : 10.37.129.2
- DNS : un vrai serveur DNS comme 8.8.8.8.
-
Sur la machine hôte du NAT, activez la redirection dans /etc/sysctl.conf :
net.inet.ip.forwarding=1
net.inet6.ip6.forwarding=1
et redémarrez l'hôte.
-
Sur la machine hôte NAT (dont l'adresse IP est par exemple en0 : 192.168.0.2), créez un fichier d'ancrage org.user.forwarding dans /private/etc/pf.anchors.
sudo touch /private/etc/pf.anchors/org.user.forwarding
avec le contenu suivant et une ligne vide à la fin :
rdr pass on en0 inet proto tcp from any to any port 22222 -> 10.37.129.10 port 11111
-
Sur la machine hôte NAT, modifiez le fichier /private/etc/pf.conf mais gardez une ligne vide à la fin du fichier
fichier original :
...
scrub-anchor "com.apple/*"
nat-anchor "com.apple/*"
rdr-anchor "com.apple/*"
dummynet-anchor "com.apple/*"
anchor "com.apple/*"
load anchor "com.apple" from "/etc/pf.anchors/com.apple"
à
...
scrub-anchor "com.apple/*"
nat-anchor "com.apple/*"
rdr-anchor "com.apple/*"
rdr-anchor "org.user.forwarding"
nat on en0 proto {tcp, udp, icmp} from 10.37.129.0/24 to any -> en0
pass from {lo0, 10.37.129.0/24} to any keep state
dummynet-anchor "com.apple/*"
anchor "com.apple/*"
load anchor "com.apple" from "/etc/pf.anchors/com.apple"
load anchor "org.user.forwarding" from "/etc/pf.anchors/org.user.forwarding"
-
Analysez et testez votre ancre et votre fichier pf.conf pour vous assurer qu'il n'y a pas d'erreurs :
sudo pfctl -vnf /etc/pf.anchors/org.user.forwarding
sudo pfctl -vnf /etc/pf.conf
-
Activez le pf avec :
sudo pfctl -e -f /etc/pf.conf
-
Pour tester cela, démarrez le serveur nc sur la VM avec nc -l -4 11111
. Maintenant sur un troisième hôte dans votre réseau physique, entrez nc 192.168.0.2 22222
.
Après un redémarrage, vous devez relancer pf. Si vous voulez activer pf de façon permanente, consultez mon autre site web pf lié réponses.
Après une mise à jour ou une mise à niveau du système, certains des fichiers d'origine ci-dessus peuvent avoir été remplacés et vous devez réappliquer tous les changements.
0 votes
J'ai regardé cette liste gist.github.com/kujohn/7209628 On dirait que beaucoup d'autres personnes ont des problèmes de transfert de ports vers des adresses IP différentes.