Wie kann ich vom Host aus auf Apache (auf VirtualBox-Gast) zugreifen?


142

Ich habe Apache auf einer Ubuntu-VM installiert. Wenn ich in den Gast gehe und Firefox lade, kann ich sehen, dass Apache gut funktioniert, wenn ich zu localhost navigiere.

Ich möchte über den Host auf dieselbe Seite zugreifen. Ich habe versucht, die IP-Adresse des Gasts zu verwenden, aber es wird nichts angezeigt.

Idealerweise würde ich gerne mein Windows 7 (Host) einrichten, um http://guestserver.comvom Apache-Server auf dem Gast anzufordern . Wie kann ich das machen?


Ich habe eine Seite gefunden, die mir bei der Lösung geholfen hat. Die folgenden Antworten sind korrekt, enthalten jedoch keine Informationen zum Erstellen eines virtuellen Adapters in einer virtuellen Maschine. Die Seite, auf die ich verwiesen habe, ist: christophermaier.name/2010/09/01/…
Sudhir Dhumal

Antworten:


156

Wenn Sie andere Computer in Ihrem physischen Netzwerk benötigen, um Ihre VM zu erreichen (oder wenn die VM einen Internetzugang benötigt), verwenden Sie Bridged Networking. Andernfalls bleiben Sie beim Host-Only-Networking.

  1. Stoppen Sie Ihre VM und öffnen Sie deren Einstellungen im VirtualBox (OSE) Manager
  2. Gehen Sie zur Registerkarte Netzwerk
  3. Wählen Sie den Netzwerkmodus Ihrer Wahl (Bridged-Netzwerk oder Nur-Host) (im folgenden Beispiel verwende ich Nur-Host).

    Wenn Sie ein Bridged-Netzwerk verwenden möchten, müssen Sie den richtigen Netzwerkadapter unter Name auswählen . Für kabelgebundene Verbindungen wählen Sie einen Namen wie eth0. Drahtlose Verbindungen werden normalerweise benannt wlan0(die Nummern können variieren)

  4. Speichern Sie die Einstellungen
  5. Starten Sie die Ubuntu VM
  6. Im aktiven Zustand können Sie die IP-Adresse ermitteln, indem Sie Folgendes ausführen:

    ifconfig | grep addr
    

    In der folgenden Ausgabe 192.168.56.101ist die IP-Adresse, die in Ihrem Win7-Hostsystem für den Zugriff auf Ihre VM verwendet werden kann:

    eth0  Link encap:Ethernet  HWaddr 08:00:27:70:27:fe  
          inet addr:192.168.56.101  Bcast:192.168.56.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fe7b:25fe/64 Scope:Link
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
    
  7. Bearbeiten Sie in Ihrem Windows-Hostsystem C:\Windows\System32\drivers\etc\hostsals Administrator und fügen Sie eine Zeile hinzu:

    192.168.56.101   guestserver.com
    

    Wenn Sie ein Ubuntu-Hostsystem haben, bearbeiten Sie es /etc/hostsmitsudo nano /etc/hosts

  8. Profitieren!

2
Dies funktionierte perfekt für Host-Only-Netzwerke und ich kann jetzt über den Browser des Hosts auf den Gast zugreifen. Mit einer überbrückten Verbindung, die ich möchte, habe ich jedoch keinen Zugang zum Internet vom Gast.
Urok93

5
ipconfig ist unter Linux kein Befehl, sondern ifconfig. Meinten Sie das?
Max

7
Unter Windows 7/8 befindet sich die Hostdatei hier: C: \ Windows \ System32 \ drivers \ etc \ hosts
Dalen,

2
@begueradj Die oben genannten Schritte gelten für überbrückte Netzwerke, aber einige Netzwerke erlauben / geben Ihnen nicht mehrere Adressen. Auf meiner Uni konnte ich aus diesem Grund kein Bridged-Netzwerk verwenden. In solchen Situationen würde ich stattdessen NAT mit Portweiterleitung verwenden.
Lekensteyn

1
Durch die Aktivierung von zwei Netzwerkadaptern, einem NAT und Bridged, konnte ich sehen und gesehen werden.
Stenci

13

In meinem Fall weist ein Router meinem Host-PC eine statische IP-Adresse zu.

  1. Stellen Sie den Netzwerkadapter als Bridge ein:

    Einstellungen> Netzwerk> Adapter 1 ( Netzwerkadapter aktivieren )> Angeschlossen an: ( Brückenadapter )> OK

  2. Starten Sie die virtuelle Maschine> melden Sie sich an

  3. Ändern Sie die IP-Adresse der VirtualMachine von dynamisch in statisch

    sudo nano / etc / network / interfaces

  4. Ändern Sie unter Die primäre Netzwerkschnittstelle das Wort dhcp in statisch und geben Sie Ihre neue statische IP ein, oder kommentieren Sie die Zeile und fügen Sie eine neue hinzu

:

#iface eth0 inet dhcp
iface eth0 inet static
        address 192.168.10.110
        netmask 255.255.255.0
        gateway 192.168.10.1
        network 192.168.10.0
        broadcast 192.168.10.255

Beachten Sie, dass mein Router bei xxx.xxx arbeitet. 10 .x und deine könnten bei xxx.xxx sein. 0 .x oder xxx.xxx. 1 .x oder etwas anderes.

Anschließend können Sie sowohl auf dem Host- als auch auf dem Gastcomputer eine Internetverbindung herstellen und diese statische IP-Adresse in Ihren Webbrowser eingeben, um den Apache-Server zu überprüfen.


Ich habe vergessen zu sagen, dass Sie sicherstellen müssen, dass Ihr / etc / hostname folgendermaßen richtig konfiguriert ist: nameserver [your_isp_primary_dns] und nameserver [your_isp_secondary_dns]
Nuc134rB0t

8

Anstatt zu versuchen, die Adapter auf Bridged oder Host Only Network Adapter einzustellen, können Sie die Portweiterleitung unter Firewall / Andere Ports versuchen, wobei Ihr Port nicht auf TCP- und UDP-Verbindungen eingestellt ist.


6

Die akzeptierte Antwort hat bei mir nicht funktioniert (Ich habe virutalbox in Ubuntu 12.04 LTS und Virtualbox in Ubuntu 14.04 LTS Server installiert). Ich habe gerade die Netzwerkeinstellungen für Adapter1 und Adapter2 ausgetauscht, dh Adapter1 für "Bridged Networing" und Adapter2 für "NAT" eingerichtet, und es hat funktioniert.


Dies war nützlich, aber ändern Sie die Adapterreihenfolge, damit der Gast standardmäßig NAT verwendet und eine Verbindung zum Internet herstellen kann.
MadeOfAir

Das hat bei mir tatsächlich funktioniert. Ich versuche, von einem Mac-Host aus auf eine Windows-VM zuzugreifen.
Benjaminz

1
Nachdem ich stundenlang gelesen und jede andere Lösung ausprobiert hatte, die ich online finden konnte, wirkte Ihre Idee wie ein Zauber. Vielen Dank für das Schreiben! Verwendung von Ubuntu 18.04 als Host und Gast.
John

5

Wenn Sie nur einen bestimmten Port benötigen (z. B. wenn Sie eine Webanwendung wie Jetty oder Tomcat ausführen), gehen Sie wie folgt vor:

Einstellungen -> Netzwerk -> Setzen Sie einen der Adapter auf NAT -> Drücken Sie 'Portweiterleitung' -> Stellen Sie den entsprechenden Host- und Gast-Port ein.

Sobald Sie gespeichert haben, können Sie einfach von Ihrem lokalen Computer zu localhost: hostport wechseln und es wird zu dem für die virtuelle Box relevanten Port umgeleitet, und Sie sind fertig.


4

Wenn Sie keine Verbindung über IP herstellen können, ist es unwahrscheinlich, dass bei einer Apache-Standardinstallation DNS-Namen verwendet werden.

Überprüfen Sie die Netzwerkeinstellungen des virtuellen Hosts, ich putte es immer, um es zu überbrücken kann im gesamten Netzwerk zugegriffen werden.


Ich habe Bridged eingestellt, aber jetzt stellt der Gast keine Verbindung zum Internet her.
Urok93

bekommst du eine IP im Quest OS? Normalerweise richte ich mehrere Netzwerkkarten ein, die mit allen meinen physischen Netzwerkkarten übereinstimmen. Können Sie vielleicht Ihre ifconfig von der Suche und Host
PvdL

Wenn ich mit WLAN arbeite, aber mit Kabel Nr., Sind hier einige Screenshots, die meine Konfiguration zeigen: imageshack.us/photo/my-images/832/guestr.png imageshack.us/photo/my-images/846/virtualbox .png imageshack.us/photo/my-images/9/hostwin7.png
urok93

Hilfe dazu bitte?
Urok93

Es sieht so aus, als ob Ihr Computer direkt mit dem Internet verbunden ist.
Dies

3

Wenn Ihr Host im Bridged-Modus eine statische IP-Adresse verwendet, sollten Sie Ihre Gast-IP manuell im selben Bereich wie die Host-IP konfigurieren. Andernfalls wird dem Gast nicht automatisch eine gültige IP-Adresse zugewiesen. HTH.


2

Lekensteyns Antwort ist richtig. Wenn Sie sich jedoch in einer Unternehmensumgebung befinden, müssen Sie möglicherweise den Proxyserver für die IP-Adresse Ihres Gasts deaktivieren. Wenn Sie beispielsweise Mozilla Firefox auf Ihrem Host-Computer verwenden und versuchen, auf 192.168.56.101/ des Gasts zuzugreifen, müssen Sie zu Firefox Tools-> Options-> Advanced-> Network-> Settings wechseln und "No Proxy "oder" Kein Proxy für -> 192.168.56.101 ".


2

Wenn Sie auf einen Gast zugreifen müssen, der aufgrund der Verwendung von DHCP eine andere IP-Adresse hat, empfehle ich den Zugriff über den Hostnamen. Für den Zugriff über den Hostnamen unter Windows ist möglicherweise ein zusätzliches Tool erforderlich.

Der folgende Text wurde von meiner eigenen Antwort auf superuser.com kopiert . :

Ich schlage vor, Sie verwenden Multicast-DNS , um dies zu beheben.

Ubuntu verwendet dies standardmäßig über Avahi .

Der Windows-Host benötigt einen Avahi-Client, um andere Avahi-Dienste zu erkennen. Wenn Ihr Host bereits Apple-Software verwendet, ist diese wahrscheinlich bereits über einen Dienst namens Bonjour verfügbar. Wenn dies jedoch noch nicht installiert ist, können Sie hier eine kleine Version von Bonjour herunterladen: Bonjour Print Services . Nach der Installation sollten Sie über .local auf Ihren Gast zugreifen können.

Hinweis: Das mDNS-System scheint standardmäßig das lokale Postfix zu verwenden. Wenn Ihr Hostname also "dev.myapp.com" lautet, lautet der tatsächliche Hostname "dev.myapp.com.local".

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.