Le transfert de port de VirtualBox ne fonctionne pas quand IP invité * IS * est spécifié (alors que doc dit en face)

4

Essayer de transférer le port depuis l’hôte (Mac OS X) 127.0.0.1:8282 - & gt; 10.10.10.10:8080 de guest (CentOS). Les transferts de port existants incluent 127.0.0.1:8181 et 9191 à l'invité sans aucune adresse IP spécifiée (ainsi, quoi qu'il obtienne via DHCP, comme expliqué dans la documentation).

Voici comment la liaison qui ne fonctionne pas a été ajoutée:

VBoxManage modifyvm "VM name" --natpf1 "rule3,tcp,127.0.0.1,8282,10.10.10.10,8080"

Voici comment ceux qui travaillaient ont été ajoutés:

VBoxManage modifyvm "VM name" --natpf1 "rule1,tcp,127.0.0.1,8181,,80"
VBoxManage modifyvm "VM name" --natpf1 "rule2,tcp,127.0.0.1,9191,,9090"

Et par "non-travailleur", je veux bien sûr dire ne pas écouter (condition préalable à la transmission):

$ lsof -Pi -n|grep Virtual|grep LISTEN
VirtualBo 27050 user   21u  IPv4 0x2bbdc68fd363175d      0t0  TCP 127.0.0.1:9191 (LISTEN)
VirtualBo 27050 user   22u  IPv4 0x2bbdc68fd0e0af75      0t0  TCP 127.0.0.1:8181 (LISTEN)

Il devrait y avoir une ligne similaire ci-dessus mais avec 127.0.0.1:8282.

Soyons clairs: ce port écoute parfaitement le client lui-même. Et lorsque je supprime l'adresse IP de l'invité (c'est-à-dire que je désactive le 10.10.10.10), la transmission fonctionne correctement, bien que sur eth0 (et non sur eth1 où j'en ai besoin). Je peux tcpdump et regarder le trafic s'écouler. Et oui, j'ai complètement désactivé iptables lors des tests - rien ne se bloque ailleurs sur l'invité.

Comme écrit dans VirtualBox leur documentation , vous devez spécifier l’adresse IP de l’invité si elle est statique (cela n’a aucun sens d’enregistrer un enregistrement DHCP): "Si, pour une raison quelconque, l’invité utilise une adresse IP assignée statique non louée du serveur DHCP intégré, elle doit spécifiez l'adresse IP de l'invité lors de l'enregistrement de la règle de transfert: ". Cependant, cela (comme je dois le faire), semble casser le port avec un rapport dans chaque fichier journal que je peux trouver. (J'ai tout examiné dans ~ / Library / VirtualBox /).

Autres notes:

  1. Bien que j'aie utilisé la commande ci-dessus pour ajouter la troisième règle, j'ai également vérifié qu'elle apparaissait correctement dans l'interface graphique, puis supprimée / ré-ajoutée à partir de là, juste pour vous en assurer).
  2. Ce lien de forum - Bien que très daté - regarde quelque peu liées en ce qu'une transmission de port à une adresse IP statique n'apparaissait pas (peut-être pensent-elles que l'absence d'arp gratuit est envoyée à l'hôte pour savoir si une adresse IP est présente / disponible?).

Quoi qu'il en soit, qu'est-ce qui donne? Est-ce toujours un buggy? Aucune suggestion? Si non, des solutions de contournement assez faciles? Ce qui est intéressant, c’est que cela fonctionne parfaitement sur le Mac d’un autre utilisateur, mais il utilise une version légèrement plus ancienne (4.3.6 v. 4.3.12).

Patrick
la source
J'ai déposé un bug virtualbox.org/ticket/13971
Mattias Wadman