Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| app:virtualbox:port-forwarding [2017/09/04 15:55] – yoann | app:virtualbox:port-forwarding [2021/02/01 21:51] (Version actuelle) – modification externe 127.0.0.1 | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| - | {{tag> virtualbox | + | {{tag> virtualbox |
| - | ====== | + | ====== |
| - | Le but: **Accéder à un service réseau fournit par la VM depuis | + | Par défaut, la VM est configurée avec une interface Ethernet en mode NAT. Dans ce mode, le service |
| + | Grâce à la règle de NAT, toute communication arrivant sur un port choisit sur l’hôte sera transférée sur l' | ||
| - | Par défaut, la VM est configurée avec une interface Ethernet en mode NAT. Dans ce mode, le service Virtualbox joue le rôle d'un routeur, la VM se trouve dans un réseau virtuel, derrière le routeur Virtualbox. Pour pouvoir accéder au service souhaité fournit par la VM depuis la machine hôte (externe au réseau virtuel) il faut donc configurer une règle de NAT (de la même manière qu'il faut le faire pour accéder a un service depuis Internet lorsqu' | + | ===== Procédure ===== |
| - | ===== Procédure ==== | + | Pour pouvoir créer la règle: |
| - | - Identifier un port libre sur l’hôte | + | |
| + | | ||
| - Créer la règle avec la commande de gestion **vboxmanage** ou l' | - Créer la règle avec la commande de gestion **vboxmanage** ou l' | ||
| + | |||
| + | |||
| + | ==== Déterminer l'IP de l' | ||
| + | |||
| + | Il est possible de retrouver l' | ||
| + | |||
| + | <code bash> | ||
| + | vboxmanage guestproperty enumerate ma-vm | grep -i ip | ||
| + | </ | ||
| + | |||
| + | Sinon récupérer l'IP depuis le système invité via les outils disponibles. | ||
| + | |||
| + | ==== Un port sur l’hôte ===== | ||
| + | |||
| + | Utiliser un port hors de la plage réservée 0-1024, utiliser **netstat** pour s' | ||
| + | |||
| + | <code bash> | ||
| + | | ||
| + | </ | ||
| + | |||
| + | ==== Création de la règle NAT ==== | ||
| + | |||
| + | Depuis l' | ||
| + | * Sélectionner la VM puis l' | ||
| + | * Section **Réseau**, | ||
| + | * Cliquer sur le bouton **Redirection de ports** | ||
| + | * Ajouter la règle dans la fenêtre **Règles de redirection de ports** | ||
| + | |||
| + | En ligne de commande, utiliser **vboxmanage** avec l' | ||
| + | |||
| + | <code bash> | ||
| + | vboxmanage modifyvm " | ||
| + | </ | ||
| + | |||
| + | La commande **showvminfo** listera la règle nouvellement définie: | ||
| + | |||
| + | <code bash> | ||
| + | $ vboxmanage showvminfo debian-8 | ||
| + | ... | ||
| + | NIC 1 Rule(0): | ||
| + | ... | ||
| + | </ | ||
| + | |||
| + | <note info> | ||
| + | La configuration du port forwarding se fait VM éteinte. Si celle-ci est en cours d’exécution: | ||
| + | </ | ||
| + | |||
| + | =====Supprimer la règle de forwarding ===== | ||
| + | |||
| + | En cas d' | ||
| + | |||
| + | < | ||
| + | $ vboxmanage modifyvm " | ||
| + | </ | ||
| + | |||
| + | ===== Exemples ===== | ||
| + | |||
| + | ==== Serveur Web ==== | ||
| + | |||
| + | La commande **netstat** permet de lister les ports en cours d' | ||
| <code bash> | <code bash> | ||
| Ligne 27: | Ligne 89: | ||
| Au second essai, le port 8080 n'est pas listé. Il n'est pas utilisé par un service sur l’hôte. On peut donc l' | Au second essai, le port 8080 n'est pas listé. Il n'est pas utilisé par un service sur l’hôte. On peut donc l' | ||
| + | |||
| La syntaxe de création de règle: | La syntaxe de création de règle: | ||
| Ligne 38: | Ligne 101: | ||
| - | <note info> | ||
| - | La configuration du port forwarding se fait VM éteinte. Si celle-ci est en cours d’exécution: | ||
| - | </ | ||
| - | ===== Accès SSH ===== | + | ==== Accès SSH ==== |
| On configure ici le **NAT** pour accéder en **ssh** depuis l’hôte au système virtualisé. | On configure ici le **NAT** pour accéder en **ssh** depuis l’hôte au système virtualisé. | ||
| - | Noter l'IP de la VM | + | * Sur la VM via **ifconfig**, |
| - | <code bash> | + | * Déterminer un port libre sur l' |
| + | Créer la règle de NAT | ||
| + | <code bash> | ||
| + | $ vboxmanage modifyvm " | ||
| </ | </ | ||
| - | Déterminer un port libre sur l' | + | Vérifier la présence de la règle: |
| - | Créer | + | <code bash> |
| + | $ vboxmanage showvminfo " | ||
| + | </ | ||
| + | |||
| + | La section consacrée à l' | ||
| + | < | ||
| + | ... | ||
| + | NIC 1 Rule(0): | ||
| + | ... | ||
| + | </ | ||
| Démarrer la VM | Démarrer la VM | ||
| + | <code bash> | ||
| + | $ vboxmanage startvm " | ||
| + | </ | ||
| + | Se connecter à la VM depuis l’hôte via ssh | ||
| - | Se connecter à la VM depuis l'hote via ssh | + | <code bash> |
| - | + | $ ssh uservm@127.0.0.1 -p 2223 | |
| + | </ | ||
| - | ===== Depuis l' | ||