Конфликты портов при переадресации между гостем и хостом

Конфликты портов при переадресации между гостем и хостом

Я работаю над настройкой с помощьюбродягаиспользую базовую версию VirtualBox и хотел бы перенаправить порты между гостевой системой (Ubuntu 12.04) и хостом (Windows 7) для доступа к серверу Apache2, который будет работать на гостевой системе.

Проблема, с которой я столкнулся, заключается в том, что когда я пытаюсь перенаправить трафик между портом 80на гостевой системе и портом 80на хосте (или даже 8080), Vagrant жалуется и предупреждает меня о том, что порт переадресации «...уже используется на хост-компьютере."

Это не так.

Запуск netstat -aпоказывает, что ничего не подключено или не использует порт 80(или даже 8080). После некоторых экспериментов я обнаружил, что, по-видимому, бесплатная версия Avast!, которую я использую, блокирует переадресованные порты. Однако не весь Avast! виноват, только их Web Shield.

При отключенном Avast! Web Shield использование приведенного ниже файла конфигурации работает безупречно при загрузке виртуальной машины, а при включенном... вот в чем проблема.

Я хочу попытаться найти решение, которое позволит мне использовать Vagrant, не идя на компромисс с настройками антивируса, если это вообще возможно, или, по крайней мере, иметь решение, которое не имеет тонны оговорок. Цель состоит в том, чтобы использовать Vagrant как средство упрощения настройки разработки, а не чрезмерного ее усложнения.

Для справки вот мой 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

Я пробовал частные сети, публичные сети и т. д., но, возможно, я неправильно их настраиваю.

Примечание автора:Этот вопрос, возможно, уже задавался и на него уже отвечал кто-то другой, и если это так, прошу прощения. Все, что я нашел до сих пор, похоже, не подходит в качестве решения, я думаю, что часть проблемы в том, что я не уверен, какой вопрос задать, чтобы найти правильное решение. Если для этого есть существующее решение, пожалуйста, обязательно дайте на него ссылку!

решение1

После обновленияAvast бесплатный антивирусв версию программы: 2014.9.0.2011из 2014.9.0.2008проблема, похоже, решилась сама собой. Похоже, что был конфликт с более ранним выпуском антивируса Avast 2014 года. Из ихобновить историю:

  • Полностью переписанный WebShield, так что теперь он больше не работает как "прозрачный прокси", что должно привести к общему улучшению стабильности и производительности. Он также позволяет видеть и обнаруживать больше угроз
  • Компонент Firewall (в IS и Premier) стал более совместимым с другими приложениями, такими как Java и различными службами VPN.

С другой стороны, хотя это и не решает проблему переадресации портов напрямую, публичные и частные сети работают, но имеют свои собственные оговорки:

  • Публичные сети получают собственный IP в сети, и для доступа к ним, по-видимому, необходимо запустить ifconfigгостевую систему для определения назначенного IP. Это накладывает большую нагрузку на пользователя, использующего виртуальную машину, поскольку ему приходится предпринимать дополнительные действия каждый раз, когда он запускает виртуальную машину, чтобы определить IP своего сервера.
  • Частные сети позволяют назначать статический IP-адрес для частного потребления между хостом и гостем. Возможно, лучшее возможное решение — запретить переадресацию портов, за исключением того, что вам нужно выбрать IP-адрес, который будет использоваться.

Связанный контент