8 votes

Vagrant refuse de se connecter en mode private_network

J'ai configuré ma machine virtuelle Vagrant (1.2.2) exécutant VistualBox en :private_network et j'ai démarré un serveur Sinatra dessus. Cependant, je ne parviens pas à me connecter à cette instance Sinatra. Cependant, la machine virtuelle fonctionne et répond aux pings.

Voici mon Vagrantfile

Vagrant.configure("2") do |config|
    config.vm.box = "precise64"
    config.vm.network :private_network, ip: "192.168.33.10"

Donc je démarre la machine virtuelle Vagrant et j'y accède en SSH

prodserv$ vagrant up
En train de démarrer la machine 'default' avec le provider 'virtualbox'...
[default] Définition du nom de la VM...
[default] Nettoyage des ports en cours...
[default] Création des métadonnées des dossiers partagés...
[default] Nettoyage des interfaces réseau précédemment configurées...
[default] Configuration des interfaces réseau en fonction de la configuration...
[default] Redirection des ports...
[default] -- 22 => 2222 (adapter 1)
[default] Démarrage de la machine virtuelle...
[default] Attente du démarrage de la machine virtuelle. Cela peut prendre quelques minutes.
[default] La machine virtuelle est démarrée et prête à être utilisée!
[default] Configuration et activation des interfaces réseau...
[default] Montage des dossiers partagés...
[default] -- /vagrant

prodserv$ vagrant ssh
Bienvenue sur Ubuntu 12.04.2 LTS (GNU/Linux 3.2.0-23-generic x86_64)

* Documentation:  https://help.ubuntu.com/
Bienvenue sur votre machine virtuelle construite avec Vagrant.
Dernière connexion : jeu. 23 mai 14:01:05 2013 depuis 10.0.2.2

Jusqu'ici tout va bien. Un ping vers la machine virtuelle fonctionnera bien (j'ai également vérifié qu'il s'agit vraiment de l'adresse IP de la machine virtuelle. Donc le ping sans vagrant up entraînera une perte de paquets)

prodserv$ ping 192.168.33.10
PING 192.168.33.10 (192.168.33.10): 56 data bytes
64 bytes from 192.168.33.10: icmp_seq=0 ttl=64 time=0.543 ms
64 bytes from 192.168.33.10: icmp_seq=1 ttl=64 time=0.328 ms

Génial! Maintenant je démarre le serveur sur la machine virtuelle

vagrant@precise64:~$ sudo ruby /vagrant/server.rb
== Sinatra/1.4.2 prend la scène sur 4567 pour le développement avec le support de Thin
>> Serveur web Thin (v1.5.1 surnom Rasoir droit)
>> Connexions maximales définies à 1024
>> En cours d'écoute sur localhost:4567, CTRL+C pour arrêter

voici le server.rb correspondant

require 'rubygems'
require 'sinatra'

get '/' do
    puts "WOW!"
    'Bonjour, monde!'

si j'utilise curl maintenant depuis la machine virtuelle vers Sinatra, tout fonctionne correctement et "Bonjour, monde!" sera renvoyé.

vagrant@precise64:~$ curl 'http://localhost:4567'
Bonjour, monde!

et le processus Sintra/Ruby me donne ceci WOW! 127.0.0.1 - - [23/May/2013 16:06:36] "GET / HTTP/1.1" 200 13 0.0026

Cependant, si j'essaie d'utiliser curl depuis la machine hôte, la connexion est refusée.

prodserv$ curl -v 'http://192.168.33.10:4567'
* Connexion à 192.168.33.10 port 4567 (#0)
*   Essai de 192.168.33.10...
* Connexion refusée
* impossible de se connecter à l'hôte
* Fermeture de la connexion #0
curl: (7) impossible de se connecter à l'hôte

Alors que se passe-t-il?

9voto

cmur2 Points 1687

Votre sinatra écoute sur localhost:4567, au lieu de 0.0.0.0 donc il est uniquement disponible pour localhost.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X