J'ai une boîte virtuelle vagabonde en place. Jusqu'à présent, je n'ai pas pu me connecter au serveur Web. voici la start up:
[jesse@Athens VVV-1.1]$ vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Clearing any previously set forwarded ports...
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
default: Adapter 1: nat
default: Adapter 2: hostonly
==> default: Forwarding ports...
default: 22 => 2222 (adapter 1)
==> default: Running 'pre-boot' VM customizations...
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
default: SSH address: 127.0.0.1:2222
default: SSH username: vagrant
default: SSH auth method: private key
default: Warning: Connection timeout. Retrying...
==> default: Machine booted and ready!
==> default: Checking for guest additions in VM...
default: The guest additions on this VM do not match the installed version of
default: VirtualBox! In most cases this is fine, but in rare cases it can
default: prevent things such as shared folders from working properly. If you see
default: shared folder errors, please make sure the guest additions within the
default: virtual machine match the version of VirtualBox you have installed on
default: your Host and reload your VM.
default:
default: Guest Additions Version: 4.2.0
default: VirtualBox Version: 4.3
==> default: Setting hostname...
==> default: Configuring and enabling network interfaces...
==> default: Mounting shared folders...
default: /vagrant => /home/jesse/vagrant/vvvStable/VVV-1.1
default: /srv/www => /home/jesse/vagrant/vvvStable/VVV-1.1/www
default: /srv/config => /home/jesse/vagrant/vvvStable/VVV-1.1/config
default: /srv/database => /home/jesse/vagrant/vvvStable/VVV-1.1/database
default: /var/lib/mysql => /home/jesse/vagrant/vvvStable/VVV-1.1/database/data
==> default: VM already provisioned. Run `vagrant provision` or use `--provision` to force it
==> default: Checking for Host entries
sur ma console d’hôte, les rendements de l’adresse ip:
4: vboxnet0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether 0a:00:27:00:00:00 brd ff:ff:ff:ff:ff:ff
5: vboxnet1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether 0a:00:27:00:00:01 brd ff:ff:ff:ff:ff:ff
sur l'invité il cède:
vagrant@vvv:~$ ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope Host lo
inet6 ::1/128 scope Host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 08:00:27:12:96:98 brd ff:ff:ff:ff:ff:ff
inet 10.0.2.15/24 brd 10.0.2.255 scope global eth0
inet6 fe80::a00:27ff:fe12:9698/64 scope link
valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 08:00:27:2c:d4:3e brd ff:ff:ff:ff:ff:ff
inet 192.168.50.4/24 brd 192.168.50.255 scope global eth1
Pour le moment, tout ce que je veux, c'est accéder au serveur Web de la machine virtuelle, quelle que soit la méthode choisie. J'ai essayé une variété de choses, tout en tirant dans le noir. Je serais heureux de fournir des informations spécifiques. Toute aide ou suggestion serait grandement appréciée
Sur la base de la sortie fournie, la boîte a 2 interfaces réseau, 1 par défaut NAT et l’autre privé - demandez-vous dit.
La raison pour laquelle vous ne pouvez pas accéder au site Web hébergé dans le VM à travers l’interface privée: il se peut que cet hôte eth0
ou wlan0
L’adresse IP ne se trouve pas sur le même réseau que l’interface privée -> 192.168.50.4/24
et il n'y a pas de route.
Pour accéder au site hébergé par le serveur Web dans l'invité, vous disposez des options suivantes:
Transférez le port Web, par exemple 80 vers l'hôte 8080 (vous ne pouvez pas utiliser 80 car il s'agit d'un port privilégié sur * NIX). Ajouter ce qui suit
Vagrant.configure("2") do |config|
config.vm.network "forwarded_port", guest: 80, Host: 8080,
auto_correct: true
end
REMARQUE: auto_correct résoudra les conflits de port si le port sur l'hôte est déjà utilisé.
Fait une vagrant reload
et vous pourrez accéder au site via http://localhost:8080/
Ajouter une interface réseau publique
Vagrant.configure("2") do |config|
config.vm.network "public_network"
end
Obtenez l'adresse IP de VM une fois qu'elle est opérationnelle, le transfert de port ne s'applique PAS aux réseaux en pont. Vous accéderez donc au site à l'aide de http://IP_ADDR
, si dans VM il se lie à 80, sinon spécifiez le port.
Une autre possibilité juste pour référence future.
Normalement, lorsque vous créez des ordinateurs virtuels utilisant un réseau privé, Vagrant (Virtualbox? Incertain) crée les entrées correspondantes dans la table de routage de l'hôte. Vous pouvez les voir en utilisant
netstat -rn
D'une manière ou d'une autre, mon hôte était entré dans un état où la création de machines virtuelles n'entraînait pas l'apparition de nouveaux itinéraires dans la table de routage, avec l'impossibilité correspondante de se connecter. Encore une fois, vous pouvez voir que les routes n'apparaissent pas à l'aide de la commande ci-dessus.
La création manuelle de l'itinéraire m'a permis d'atteindre les ordinateurs virtuels. Par exemple:
Sudo route -nv add -net 10.0.4 -interface vboxnet
(Remplacez le réseau et l'interface appropriés.) Mais je ne voulais pas avoir à faire cela.
Sur la base de cette question , j'ai essayé de redémarrer mon hôte et Vagrant a recommencé à créer automatiquement les entrées de la table de routage.
Je ne sais pas exactement quel était le problème, mais j'espère que cela aidera quelqu'un.
J'ai eu le même problème. C'était mon interface vboxnet0 qui était en panne. Dans la liste de ip addr
tu as <BROADCAST,MULTICAST>
pour votre interface mais il devrait être <BROADCAST,MULTICAST,UP,LOWER_UP>
.
Cela signifie que votre interface est en panne.
Vous pouvez confirmer avec Sudo ifconfig
. L'interface ne sera pas affichée, mais si vous ajoutez -a
Tu vas le voir : Sudo ifconfig -a
.
Donc, pour en parler, vous pouvez faire:
Sudo ifconfig vbox
OR
Sudo ip link set vboxnet0 up
Les deux fonctionne.
J'ai fini par faire fonctionner le réseau privé en le supprimant dans Virtual Box. Quand je l'ai recréé à nouveau avec vagabond, la configuration ip est devenue:
vboxnet0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 1000
link/ether 0a:00:27:00:00:00 brd ff:ff:ff:ff:ff:ff
inet 192.168.50.1/24 brd 192.168.50.255 scope global vboxnet0
valid_lft forever preferred_lft forever
Vous pouvez également utiliser la redirection de port manuelle via SSH (tunneling SSH):
ssh -L 80:127.0.0.1:80 [email protected] -p 2222
Cela lie le port de l'hôte 80 au VM le port 80 via votre session SSH vers la machine virtuelle.
Cela peut ne pas s'appliquer exactement, mais "réseau privé" dans le titre m'a amené ici et d'autres pourraient en bénéficier qui essaient d'exécuter plusieurs boîtes d'invités sous Mac OS X:
J'utilise "private_network" et ne fais aucune redirection de port. I.e. J'accède à mes machines virtuelles par des hôtes tels que "project1.local", "project2.local".
Donc, j'ai été surpris quand j'ai essayé de lancer une deuxième boîte (un scotch/box ubuntu pour LAMP) et il a refusé de lancer avec une erreur (extrait ):
"...The forwarded port to 2222 is already in use on the Host machine..."
La solution proposée par le message d'erreur ne fonctionne pas. C'est à dire. ajoutez ceci à votre Vagrantfile:
config.vm.network :forwarded_port, guest: 22, Host: 1234
#Where 1234 would be a different port.
Je ne suis pas sûr de savoir pourquoi cela se produit parce que j'ai déjà utilisé plusieurs fois auparavant (mais pas scotch/box). Le problème est que même si vous utilisez private_network, Vagrant utilise le transfert de port pour SSH.
La solution consiste à définir les ports SPÉCIFIQUEMENT POUR SSH en l'ajoutant à vos fichiers Vagrant:
# Specify SSH config explicitly with unique Host port for each box
config.vm.network :forwarded_port,
guest: 22,
Host: 1234,
id: "ssh",
auto_correct: true
Remarque: auto_correct peut faire fonctionner les numéros de port non uniques, mais je ne l’ai pas testé.
Maintenant, vous pouvez exécuter plusieurs ordinateurs virtuels en même temps en utilisant un réseau privé.
(Merci à Aaron Aaron et à son commentaire ici: https://groups.google.com/forum/#!topic/vagrant-up/HwqFegoCXOc )
Avait le même problème avec Arch (2017-01-01). J'ai dû installer net-tools
: Sudo pacman -S net-tools
Virtual Box 5.1.12r112440, Vagrant 1.9.1.
Vous avez configuré un réseau privé pour votre machine à vagabond
Si cette adresse IP n’est pas visible, ssh s’applique à votre ordinateur de poche et lancez cette commande
Sudo /etc/init.d/networking restart
Cochez pour arrêter votre pare-feu et iptables aussi
J'ai eu un problème similaire sur mon Mac. VirtualBox utilise Host uniquement pour les réseaux privés. Pour utiliser un réseau interne, je devais ajouter ceci à la configuration du réseau privé:
"virtualbox__intnet: true"