networking - guest - vagrant public network
Vagrant no puede reenviar los puertos especificados en esta VM (3)
Acabo de encontrarme con un problema en las versiones actuales de Mac OSX (10.9.4) y VirtualBox (4.3.14) donde el puerto ssh predeterminado 2222 no se usa ni se desconecta por vagabundo. Estaba causando que la conexión de comprobación de cordura ssh expirara indefinidamente.
Este no es exactamente el mismo problema, pero un delantero explícito lo resolvió:
config.vm.network :forwarded_port, guest: 22, host: 2201, id: "ssh", auto_correct: true
Esta sugerencia proviene de un comentario sobre Vagrant GitHub, número 1740 .
No está claro si el puerto reenviado a 22 se está detectando o si se usa la ID, pero me funciona.
Tengo Vagrant en uso para un perfil de caja. Ahora quiero usar Vagrant para otro cuadro (b2), pero dice que la instancia de bioiq está consumiendo el puerto reenviado 2222 (que es).
Ahora, si configuro b2 con el siguiente, Vagrant aún intenta usar 2222.
Vagrant.configure("2") do |config|
config.vm.box = ''precise32''
config.vm.box_url = ''http://files.vagrantup.com/precise32.box''
config.vm.network :forwarded_port, guest: 22, host: 2323
# Neither of these fix my problem
# config.vm.network :private_network, type: :dhcp
# config.vm.network :private_network, ip: "10.0.0.200"
end
He intentado de varias maneras desde otras preguntas de SO establecer el : forward_port (ver here y here ). También probé esta publicación en el Grupo de Google , pero fue en vano. Sigo recibiendo este mensaje
Vagrant cannot forward the specified ports on this VM, since they
would collide with some other application that is already listening
on these ports. The forwarded port to 2222 is already in use
on the host machine.
To fix this, modify your current projects Vagrantfile to use another
port. Example, where ''1234'' would be replaced by a unique host port:
config.vm.network :forwarded_port, guest: 22, host: 1234
Sometimes, Vagrant will attempt to auto-correct this for you. In this
case, Vagrant was unable to. This is usually because the guest machine
is in a state which doesn''t allow modifying port forwarding.
No sé por qué Vagrant ignora sistemáticamente mis directivas. La configuración publicada no funciona. ¿Alguien ha vencido esto?
En el caso del puerto ssh, Vagrant resuelve las colisiones de los puertos por sí mismo:
==> ubuntu64: Fixed port collision for 22 => 2222. Now on port 2200.
Sin embargo, aún puede crear una colisión inevitable al:
- Creando el primer env de vagabundo (obtendrá el puerto 2222 para ssh)
- Suspender ese env (
vagrant suspend
) - Cree un segundo env de vagabundo (volverá a obtener el puerto 2222, ya que ahora no se usa)
- Trate de volver a poner el primer ambiente de nuevo por
vagrant up
Obtendrá el mensaje de error que está recibiendo ahora.
La solución es usar la vagrant reload
, para permitir que el vaquero descarte el estado de la máquina virtual (lo que significa que lo apagará por el camino difícil, así que ten cuidado si tienes algún trabajo sin guardar) y reinicia el entorno, resolviendo cualquier colisión del puerto ssh el camino por sí mismo.
Si el problema persiste, verifique la solución aquí para otros archivos Vagrant utilizados:
Cómo depurar el mensaje "Vagabundo no puede reenviar los puertos especificados en esta VM"