Portkollisionen bei der Weiterleitung zwischen Gast und Host

Portkollisionen bei der Weiterleitung zwischen Gast und Host

Ich arbeite an der Einrichtung vonLandstreicherIch verwende eine VirtualBox-Basisbox und möchte Ports zwischen meinem Gast (Ubuntu 12.04) und meinem Host (Windows 7) weiterleiten, um auf den Apache2-Server zuzugreifen, der auf dem Gast ausgeführt wird.

Das Problem, auf das ich stoße, ist, dass Vagrant sich beschwert und mich darauf hinweist, dass der Weiterleitungsport „…“ ist, wenn ich versuche, zwischen dem Port 80auf dem Gast und dem Port 80auf dem Host (oder sogar ) weiterzuleiten.8080wird bereits auf dem Hostcomputer verwendet."

Das ist es nicht.

Das Ausführen von netstat -azeigt, dass nichts verbunden ist oder Port 80(oder sogar 8080) verwendet. Nach einigen Experimenten habe ich festgestellt, dass anscheinend die kostenlose Version von Avast!, die ich verwende, die weitergeleiteten Ports blockiert. Allerdings ist nicht alles von Avast! schuld, sondern nur deren Web Shield.

Wenn Avast! Web Shield deaktiviert ist, funktioniert die Verwendung der folgenden Konfigurationsdatei beim Booten der VM einwandfrei. Wenn es aktiviert ist … nun, genau da liegt das Problem.

Ich möchte versuchen, eine Lösung zu finden, die es mir ermöglicht, Vagrant zu verwenden, ohne die Einstellungen eines Antivirenprogramms ändern zu müssen, oder zumindest eine Lösung zu haben, die nicht viele Einschränkungen hat. Die Absicht besteht darin, Vagrant zu verwenden, um die Entwicklungseinrichtung zu vereinfachen und nicht zu kompliziert zu machen.

Als Referenz hier mein 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

Ich habe es mit privaten Netzwerken, öffentlichen Netzwerken usw. versucht, aber möglicherweise konfiguriere ich sie falsch.

Anmerkung des Verfassers:Diese Frage wurde möglicherweise bereits von jemand anderem gestellt und beantwortet. Wenn das der Fall ist, entschuldige ich mich. Alles, was ich bisher gefunden habe, scheint nicht als Lösung zu passen. Ich denke, ein Teil des Problems ist, dass ich nicht sicher bin, welche Frage ich stellen muss, um die richtige Lösung zu finden. Wenn es dafür bereits eine Lösung gibt, verlinken Sie sie bitte unbedingt!

Antwort1

Nach dem UpdateKostenloser Antiviruszur Programmversion: Das Problem scheint sich 2014.9.0.2011von 2014.9.0.2008selbst gelöst zu haben. Es sieht so aus, als ob es einen Konflikt mit der früheren Version von Avasts Antivirus aus dem Jahr 2014 gab. Von ihrerUpdateverlauf:

  • WebShield wurde komplett neu geschrieben, sodass es nun nicht mehr als „transparenter Proxy“ fungiert, was zu einer allgemeinen Verbesserung der Stabilität und Leistung führen sollte. Außerdem können dadurch mehr Bedrohungen erkannt werden.
  • Die Firewall-Komponente (in IS und Premier) wurde mit anderen Anwendungen wie Java und verschiedenen VPN-Diensten kompatibler gemacht

Alternativ dazu wird das Problem der Portweiterleitung zwar nicht direkt gelöst, es funktionieren jedoch beide, öffentliche und private Netzwerke, es gibt jedoch ihre eigenen Einschränkungen:

  • Öffentliche Netzwerke erhalten ihre eigene IP im Netzwerk und um darauf zuzugreifen, scheint es notwendig zu sein, einen ifconfigim Gast auszuführen, um die zugewiesene IP zu ermitteln. Dies stellt eine größere Belastung für den Benutzer der VM dar, da er bei jedem Hochfahren der VM einen zusätzlichen Schritt ausführen muss, um die IP seines Servers zu ermitteln.
  • Private Netzwerke ermöglichen die Zuweisung einer statischen IP-Adresse für den privaten Gebrauch zwischen Host und Gast. Abgesehen von der Portweiterleitung ist dies möglicherweise die beste Lösung, mit der Ausnahme, dass Sie die zu verwendende IP auswählen müssen.

verwandte Informationen