web-dev-qa-db-fra.com

La redirection de port de VirtualBox ne fonctionne pas avec NAT adaptateur

J'essaye le transfert de port simple avec VirtualBox et il semble que VirtualBox.exe écoute le port sur l'hôte, mais ne transfère pas la connexion à l'invité J'ai essayé sur plusieurs ports et j'ai redémarré VirtualBox à plusieurs reprises. En revanche, la connectivité invité à hôte est satisfaisante. Voici l'info:

Host: Win7 x64
Guest: Win7 x64
VirtualBox version: VirtualBox 4.2.10
Firewalls: All firewalls on Host and guest disabled.

Virtual Box > Machine Settings > Network
 Adapter 1: 
  Attached to: NAT
  Cable Connected : True
  Port Forwarding:
   Rule 1: TCP, HostIP=127.0.0.1, HostPort=8081, GuestIP=127.0.0.1, GuestPort=8081

On Host:
[VirtualBox.exe]  TCP    127.0.0.1:8081         IBM-6KT5OPCF76P:0      LISTENING

On Guest:
I never get the connection request on port 8081 or any others I've tried.

Des idées? J'aimerais éviter d'utiliser l'adaptateur ponté de VirtualBox pour plusieurs raisons. J'avais l'impression que la redirection de port NAT était relativement simple avec VirtualBox.

Merci!

18
Roberto Olivares

Vous avez indiqué l'invité ip de manière incorrecte, il devrait s'agir de l'adresse de l'invité (si vous attribuez statiquement une adresse IP à l'invité) ou laissez-la vide. Notez que vous êtes désigné comme étant ip ip 127.0.0.1, cela signifie que le port que vous transférez ne sera accessible que depuis le port (si ce n'est pas ce que vous souhaitez, il devrait également être vide).

VBoxManage modifyvm "win" --natpf1 ",tcp,,8081,,8081"

peut-être que c'est quelque chose que vous vouliez faire. (s'il vous plaît regardez ici pour plus de détails )

14
vvlevchenko

Le réseau paravirtualisé * (virtio-net) est la clé

  1. sélectionnez votre vm que vous voulez pour le transfert de port.

    • REMARQUE: Assurez-vous que la machine virtuelle est en mode d'arrêt.
  2. Sélectionnez "Paramètres"

  3. Sélectionnez réseau"
  4. Sélectionnez n'importe quel adaptateur libre. Disons "Adaptateur 2"
  5. Activer "Activer la carte réseau"
  6. Dans la liste déroulante Attached to, sélectionnez "NAT"
  7. Sélectionnez "Avancé"
  8. Dans Type d'adaptateur: sélectionnez “Réseau paravirtualisé (virtio-net)” [Ceci est important]
  9. Sélectionnez "Port Forwarding"
  10. Dans la partie droite de la boîte de dialogue «Transfert de port», sélectionnez «+».
  11. Fournir le

    • Nom: Tout ce que tu veux. exemple pour ssh, dites «ssh»
    • Protocole: Type de protocole [pour ssh: TCP]
    • Host IP: indiquez le nom d'hôte à partir de l'hôte auquel vous souhaitez vous connecter [ici: 127.0.0.1]
    • Port de l'hôte: sur quel port de l'hôte vous souhaitez vous connecter au port distant [exemple: 60022]
    • Invité IP: laissez le champ vide
    • Port invité: à quel port vous souhaitez vous connecter à partir de l'hôte ci-dessus. [pour ssh, le défaut 22]
28
Amit

Le système d'exploitation invité que vous utilisez n'est pas clair.

J'ai rencontré le même problème. 

Mon hôte était MAC PC et l’invité était CentOS 7 sur VirtualBox.
J'ai activé le transfert de port NAT d'un invité à un hôte au niveau de VirtualBox pour les ports ssh 22 et http 80. 

Cependant, j’ai constaté que je ne pouvais pas me connecter au serveur HTTP Apache sur l’invité Centos 7 à partir de mon hôte MAC PC sur une connexion http.

Pour résoudre ce problème, je dois configurer le service firewalld pour autoriser les connexions du port 80.

5
Andy

J'ai rencontré un problème similaire et il s'avère que ce sont des pilotes non signés dans la pile réseau installée par un logiciel d'interception de proxy d'entreprise appelé proxycap qui provoquaient une erreur de virtualbox lors de la configuration de la redirection de port. Vérifiez que VM l'ordinateur consigne le message d'erreur lors de la configuration du transfert de port et de la liste des pilotes non signés, puis désinstallez l'application correspondante.

1
alastairtree

Problème similaire sur l'hôte Mac, configuration de l'invité Fedora. Essayait d'accéder au serveur Web http s'exécutant sur le port 8000 de la machine invitée à partir de la machine hôte. Ouverture du port 8000/TCP avec firewall-cmd sur la machine invitée a résolu le problème.

Sudo firewall-cmd --zone=public --add-port=8000/tcp
0
Iqbal