Colisiones de puertos al reenviar entre invitado y host

Colisiones de puertos al reenviar entre invitado y host

He estado trabajando para configurarloVagabundousando una caja base de VirtualBox y me gustaría reenviar puertos entre mi invitado (Ubuntu 12.04) y mi host (Windows 7) para acceder al servidor apache2 que se ejecutará en el invitado.

El problema con el que me encuentro es que cuando intento reenviar entre el puerto 80del invitado y el puerto 80del host (o incluso 8080), Vagrant se quejará y me alertará sobre el hecho de que el puerto de reenvío "...ya está en uso en la máquina host".

No lo es.

Ejecutar un netstat -amuestra que no hay nada conectado o usando el puerto 80(o incluso 8080). Después de experimentar un poco, descubrí que aparentemente la versión gratuita de Avast! que estoy usando está bloqueando los puertos reenviados. ¡No todo Avast! Sin embargo, la culpa es solo de su Web Shield.

Con Avast! Web Shield está desactivado, el uso del siguiente archivo de configuración funciona perfectamente al iniciar la VM, con él activado... bueno, ahí radica el problema.

Quiero intentar encontrar una solución que me permita usar Vagrant sin tener que comprometer la configuración de un antivirus si es posible, o al menos tener una solución que no tenga muchas advertencias. La intención es utilizar Vagrant como un medio para simplificar la configuración del desarrollo y no complicarla demasiado.

Como referencia aquí está mi Vagrantfile:

VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|

  config.vm.box = "precise32"
  config.vm.box_url = "http://files.vagrantup.com/precise32.box"

  config.vm.network :forwarded_port, guest: 80, host: 80

  config.vm.provider :virtualbox do |vb|
    vb.customize ["modifyvm", :id, "--memory", "1024"]
  end

end

He probado con redes privadas, redes públicas, etc. pero es posible que las esté configurando incorrectamente.

Nota del autor:Es posible que otra persona ya haya formulado y respondido esta pregunta y, si es así, me disculpo. Todo lo que he encontrado hasta ahora no parece encajar como solución, creo que parte del problema es que no estoy seguro de saber cuál es la pregunta adecuada para encontrar la solución correcta. Si existe una solución para esto, ¡vincúlela por todos los medios!

Respuesta1

Después de actualizar¡avast! Antivirus gratisa la versión del programa: 2014.9.0.2011el 2014.9.0.2008problema parece haberse resuelto solo. Parece que hubo un conflicto en la versión anterior de 2014 del antivirus de Avast. De sushistorial de actualizaciones:

  • WebShield se reescribió completamente para que ya no funcione como un "proxy transparente", lo que debería dar como resultado una mejora general en la estabilidad y el rendimiento. También permite ver y detectar más amenazas.
  • El componente Firewall (en IS y Premier) se ha hecho más compatible con otras aplicaciones, como Java y varios servicios VPN.

Alternativamente, si bien no aborda el problema del reenvío de puertos directamente, las redes públicas y privadas funcionan, pero tienen sus propias advertencias:

  • Las redes públicas adquieren su propia IP en la red y para acceder a ellas parece necesario ejecutar un ifconfiginvitado para determinar la IP asignada. Esto supone una mayor carga para el individuo que utiliza la VM, ya que tiene que dar un paso adicional cada vez que enciende la VM para determinar la IP de su servidor.
  • Las redes privadas permiten la asignación de una dirección IP estática para consumo privado entre el anfitrión y el huésped. Quizás la mejor solución posible, excluyendo el reenvío de puertos, con la excepción de que debe elegir la IP que se utilizará.

información relacionada