mabue88
Goto Top

Eigener Webserver in VirtualBox von außen nicht erreichbar

Hallo,

falls ich den Thread im falschen Bereich erstellt habe, bitte ich darum ihn entsprechend zu verschieben.


Ich habe einen kleinen "Webserver" in C# erstellt. Seine Aufgabe ist es Daten von Clients per POST entgegen zunehmen und in C# weiter zu verarbeiten.
Innerhalb von C# habe ich hierfür einen HttpListener verwendet.
Dieser Server läuft virtuell (Windows 7, VirtualBox). Als Netzwerkanbindung habe ich für die Maschine eine Netzwerkbrücke verwendet. Damit wird der Maschine vom Router/DHCP eine eigene IP zugewiesen.
Zudem habe ich die Exe meines Programmes in die Berechtigungsliste der Windows-Firewall aufgenommen.

Allerdings ist der Server nur innerhalb der virtuellen Maschine erreichbar. Von außerhalb, z.B. vom physischen PC (Host), auf dem die VirtualBox läuft, erreiche ich den Server nicht.

Rein zum Testen habe ich bei der virtuellen Maschine auch mal die Firewall komplett deaktiviert. Aber auch dann kann ich den Server nicht vom Host.

Bei VirtualBox können mit der Einstellung "Netzwerkbrücke" keine zusätzlichen Einstellungen bzgl. Portfreigaben vorgenommen werden.


Hatte jemand schon mal so einen Fall und weiß was das Problem verursachen könnte?

Danke
Gruss
mabue


PS: Mir ist gerade noch eingefallen, dass die virtuelle Maschine per Ping erreichbar ist.

Content-Key: 260761

Url: https://administrator.de/contentid/260761

Printed on: April 18, 2024 at 10:04 o'clock

Member: mabue88
mabue88 Jan 22, 2015 at 09:45:52 (UTC)
Goto Top
Update:
Nachdem ich zum Testen die Windows-Firewall deaktivierte, muss ich wohl vergessen haben den Server neu zu starten. Also wenn die Firewall deaktiviert ist, ist der Server von außerhalb erreichbar.

In den Firewalleinstellungen habe ich die eingehenden Regeln geprüft.
Dort habe ich eine Regel für mein Programm angepasst. Nicht erschrecken, die Einstellungen sind jetzt nur mal bis die Sache läuft:

- Allgemein
- Aktion: Verbindung zulassen
- Protokolle und Ports
- Protokolltyp: Alle
- Erweitert
- Profile: Domäne, Privat & Öffentlich
- Edgeausnahme: Edgeausnahme zulassen


Mit aktivierter Firewall und dieser Regel ist der Server aber wieder nicht erreichbar. Auch nicht nach einem Neustart des Programmes...
Member: aqui
aqui Jan 22, 2015 updated at 12:39:27 (UTC)
Goto Top
Leider wie immer eine öberflächliche Schilderung face-sad
Kardinalsfrage ist: WIE ist die NIC eingerichtet auf der Virtual Box:
  • Host Modus ?
  • NAT (Adress Translation) ?
  • Bridging ?
Ohne das das sicher gekärt ist kommen wir nicht einen Schritt weiter.

Nur so viel:
Am einfachsten wäre es wenn der VB NIC Adapter im Bridging Mode arbeitet, denn dann hat der Server eine IP aus dem lokalen Netz in dem auch der Hypervisor (VB) selber betrieben wird. Beide NICs sind mit Layer 2 Bridging verbunden.
Dann richtet man ganz simpel auf dem Internet Router ein Port Forwarding ein was den Port TCP 80 auf die lokale IP des Webservers mit TCP 80 forwardet und gut iss...
Achtung: !!
Das simple Port Forwarding funktioniert NICHT wenn du einen Mobilfunk Zugang hast der private RFC 1918 Adressierung mit Provider zentralem NAT verwendet oder bei DS-Lite von TV Kabelnetz Providern !!
Siehe dazu: VPN über webn walk Stick IV nicht mehr möglich
Alles Sachen die du vorher besser klären solltest !
Member: mabue88
mabue88 Jan 22, 2015 at 12:46:22 (UTC)
Goto Top
Hallo aqui,

nur weil ich nicht den englischen Begriff verwendet habe, heißt das nicht, dass ich nicht die grundlegenden Informationen gegeben habe... face-wink

Wie beschrieben verwende ich eine Netzwerkbrücke (Bridge / Bridging). Soweit sollte das ja passen.

Das Port-Forwarding am Router interessiert mich derzeit noch gar nicht, da ich noch nicht einmal von anderen Rechner im selben Netzwerk auf den Server zugreifen kann (wenn die Windows Firewall eingeschaltet ist).

An den VirtualBox-Einstellungen wird es meiner Meinung nach dann nicht liegen...
Member: colinardo
colinardo Jan 22, 2015 updated at 13:00:57 (UTC)
Goto Top
Hallo mabue,
ich vermute mal das es da ein Netzwerkkarten-Treiberproblem gibt. Normalerweise sollte der Host vom Traffic des Guests im Bridge-Modus von VirtualBox nichts mitbekommen. Das scheint ein Bug zu sein, da du nicht der einzige mit dem Problem zu sein scheinst:
https://forums.virtualbox.org/viewtopic.php?f=6&t=39091
http://ubuntuforums.org/showthread.php?t=1786307&page=2&s=0a8d9 ...

Grüße Uwe

-edit- ich hoffe nicht das du die Windows "Netzwerkbrücke" meinst ...
Member: mabue88
mabue88 Jan 22, 2015 at 13:03:48 (UTC)
Goto Top
Hallo colinardo,

nein, mit der "Netzwerkbrücke" meine ich die Netzwerkeinstellung in VirtualBox.
Dann muss ich den Server wohl auf einem anderen System laufen lassen...

Danke

Gruss
mabue
Member: aqui
aqui Jan 22, 2015 updated at 13:32:21 (UTC)
Goto Top
da ich noch nicht einmal von anderen Rechner im selben Netzwerk auf den Server zugreifen kann (wenn die Windows Firewall eingeschaltet ist).
Sorry, aber dann hast du ja auch noch nichtmal deine Hausaufgaben gemacht.
Wenn die VB auf einem Winblows OS rennt ist es ja klar das man die lokale Firewall auch auf den VB Nics entsprechend customizen muss.
Stichwort: Firewall mit erweiterter Einstellung im Suchfeld !
Minimal aber das Profil anpassen das es nicht auf einem Öffentlichen Netz steht. Oder die Holzhammermethode zum Testen die FW gänzlich deaktivieren.
So geht man doch erstmal strategisch vor um wenigstens erstmal den lokalen Zugriff auf die VM wasserdicht zu testen ?!
Klar....das Router Port Forwarding kommt danach, keine Frage, da hast du Recht !
Member: mabue88
mabue88 Mar 02, 2015 updated at 20:56:05 (UTC)
Goto Top
Ich habe doch eine Lösung für das Problem gefunden.

Windows-Firewall:
- Eingehende Regel erstellen
- Anstelle eines Programms im Reiter "Programme und Dienste" einzutragen, einfach in die Textbox unter "Dieses Programm" das Wort "SYSTEM" eintragen
- Entsprechender Port eintragen

Damit funktioniert das Ganze!


Damit bin ich auf die Lösung gekommen:
http://stackoverflow.com/questions/17801251/why-does-httplistener-ignor ...
Member: aqui
aqui Mar 02, 2015 at 20:53:52 (UTC)
Goto Top
Der Klassiker face-wink