Jak mogę uzyskać dostęp do Apache (gościa VirtualBox) z hosta?

142

Zainstalowałem Apache na maszynie Wirtualnej Ubuntu. Kiedy wchodzę do gościa i ładuję Firefoksa, widzę, że Apache działa dobrze, gdy przeglądam localhost.

Chciałbym uzyskać dostęp do tej samej strony za pośrednictwem hosta. Próbowałem użyć adresu IP gościa, ale nic nie wychodzi.

Idealnie chciałbym skonfigurować mój system Windows 7 (host) na żądanie http://guestserver.comserwera Apache na gościu. Jak mogę to zrobić?

urok93
źródło
Znalazłem stronę, która pomogła mi go rozwiązać. Poniższe odpowiedzi są poprawne, ale nie pokazują niczego na temat tworzenia wirtualnego adaptera na maszynie wirtualnej. Witryna, o której mowa, to: christophermaier.name/2010/09/01/…
Sudhir Dhumal

Odpowiedzi:

156

Jeśli potrzebujesz innych maszyn w sieci fizycznej, aby móc połączyć się z maszyną wirtualną (lub jeśli maszyna wirtualna potrzebuje dostępu do Internetu), skorzystaj z sieci mostkowej. W przeciwnym razie trzymaj się sieci tylko hosta.

  1. Zatrzymaj maszynę wirtualną i otwórz jej ustawienia w Menedżerze VirtualBox (OSE)
  2. Przejdź na kartę Sieć
  3. Wybierz tryb sieci do wyboru (sieć zmostkowana lub tylko host) (w poniższym przykładzie używam tylko hosta)

    Jeśli chcesz korzystać z mostkowanej sieci, musisz wybrać odpowiednią kartę sieciową w polu Nazwa . W przypadku połączeń przewodowych wybierz coś o nazwie jak eth0. Połączenia bezprzewodowe są zwykle nazywane wlan0(liczby mogą się różnić)

  4. Zapisz ustawienia
  5. Uruchom maszynę Wirtualną Ubuntu
  6. Po uruchomieniu możesz uzyskać adres IP, uruchamiając:

    ifconfig | grep addr
    

    W wynikach poniżej podano 192.168.56.101adres IP, którego można użyć w systemie hosta Win7 w celu uzyskania dostępu do maszyny wirtualnej:

    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. W systemie hosta Windows edytuj C:\Windows\System32\drivers\etc\hostsjako administrator i dodaj wiersz:

    192.168.56.101   guestserver.com
    

    Jeśli masz system hosta Ubuntu, edytuj /etc/hostsza pomocąsudo nano /etc/hosts

  8. Zysk!
Lekensteyn
źródło
2
Działa to doskonale w przypadku sieci tylko dla hosta i mogę teraz uzyskać dostęp do gościa z przeglądarki hosta. Jednak z połączeniem mostkowym, które chciałbym, nie mam dostępu do Internetu od gościa.
urok93
5
ipconfig nie jest poleceniem w Linuksie, to ifconfig. Miałeś na myśli to?
Maks.
7
W systemie Windows 7/8 plik hosta znajduje się tutaj: C: \ Windows \ System32 \ drivers \ etc \ hosts
Dalen
2
@begueradj Powyższe kroki dotyczą sieci pomostowej, ale niektóre sieci nie pozwalają / nie dają wielu adresów. Na moim unii nie mogłem używać mostka sieciowego, dlatego w takich sytuacjach używałbym NAT z przekierowaniem portów.
Lekensteyn
1
Włączenie dwóch kart sieciowych, jednego NAT i zmostkowanego, pozwoliło mi zobaczyć i być widzianym.
stenci
13

W moim przypadku mam router przypisujący statyczny adres IP do komputera hosta.

  1. Ustaw kartę sieciową jako most:

    Ustawienia> Sieć> Karta 1 ( Włącz kartę sieciową )> Dołączone do: ( Karta sieciowa )> OK

  2. Uruchom maszynę wirtualną> zaloguj się

  3. Zmień adres IP VirtualMachine z dynamicznego na statyczny

    sudo nano / etc / network / interfaces

  4. W obszarze Podstawowy interfejs sieci zmień słowo dhcp na static i wprowadź nowy statyczny adres IP lub skomentuj wiersz i dodaj nowy

:

#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

Zauważ, że mój router działa pod adresem xxx.xxx. 10 .x i twój może być na xxx.xxx. 0 .x lub xxx.xxx. 1 .x lub inny.

Po wykonaniu tej czynności możesz połączyć się z Internetem zarówno na hoście, jak i na komputerze-gościu, i wpisać statyczny adres IP w przeglądarce, aby sprawdzić serwer apache.

Nuc134rB0t
źródło
Zapomniałem powiedzieć, że musisz się upewnić, że twoja / etc / nazwa hosta jest poprawnie skonfigurowana w ten sposób: nameserver [your_isp_primary_dns] i nameserver [your_isp_secondary_dns]
Nuc134rB0t
8

Zamiast próbować ustawić karty na Bridged lub Host Only Network Adapter, możesz spróbować przekierować porty w Firewall / Inne porty, przy braku ustawionego portu na połączenia TCP i UDP.

sp123
źródło
6

Przyjęta odpowiedź nie działała dla mnie (zainstalowałem virutalbox w Ubuntu 12.04 LTS i wewnątrz virtualbox zainstalowałem Ubuntu 14.04 LTS Server). Właśnie zamieniłem ustawienia sieciowe na Adapter1 i Adapter2, tj. Skonfigurowałem Adapter1 na „mostkowane sieci” i Adapter2 na „NAT” i zaczęło działać.

Gaurav Pandey
źródło
Było to przydatne, ale zmień kolejność adapterów, aby gość domyślnie używał NAT i mógł połączyć się z Internetem.
MadeOfAir
To faktycznie działało dla mnie. Próbuję uzyskać dostęp do maszyny wirtualnej z systemem Windows z poziomu hosta Mac.
benjaminz
1
Po wielu godzinach czytania i wypróbowywania każdego innego rozwiązania, jakie mogłem znaleźć w Internecie, ten twój pomysł zadziałał jak urok. Dziękuję bardzo za napisanie tego! Używanie Ubuntu 18.04 jako hosta i gościa.
Jan
5

Jeśli potrzebujesz tylko określonego portu (powiedz, jeśli korzystasz z aplikacji internetowej, takiej jak Jetty lub Tomcat), po prostu wykonaj następujące czynności:

Ustawienia -> Sieć -> Ustaw jedną z kart jako NAT -> Naciśnij „Przekazywanie portów” -> Ustaw odpowiedni port hosta i gościa.

Gdy zapiszesz, możesz po prostu przejść z komputera lokalnego do localhost: hostport, a przekierujemy go do odpowiedniego portu skrzynki wirtualnej i gotowe.

StationaryTraveller
źródło
4

Jeśli nie możesz połączyć się przez IP, prawdopodobnie nie odniesiesz sukcesu z nazwami DNS przy domyślnej instalacji apache.

sprawdź ustawienia sieci wirtualnego hosta, zawsze ustawiam go na mostku, aby uzyskać do niego dostęp w całej sieci.

PvdL
źródło
Ustawiłem na mostek, ale teraz gość nie łączy się z Internetem.
urok93
otrzymujesz adres IP w systemie operacyjnym zadania? Zazwyczaj konfiguruję wiele kart sieciowych, aby pasowały do ​​wszystkich moich fizycznych kart sieciowych. Czy możesz
rzucić
Kiedy pracuję z siecią bezprzewodową, działa, ale bez kabla, oto kilka zrzutów ekranu pokazujących moją konfigurację: 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
jakaś pomoc w tej sprawie proszę?
urok93
wygląda na to, że twój komputer jest bezpośrednio podłączony do Internetu i może to być przyczyną, dla której twój klient nie otrzymuje adresu IP (v4)
PvdL
3

W trybie zmostkowanym, jeśli host używa statycznego adresu IP, należy ręcznie skonfigurować adres IP gościa w tym samym zakresie co adres IP hosta. W przeciwnym razie gość nie zostanie automatycznie przydzielony z prawidłowym adresem IP. HTH.

platinor
źródło
2

Odpowiedź Lekensteyna jest słuszna. Ale jeśli jesteś w środowisku firmowym, być może będziesz musiał wyłączyć serwer proxy dla adresu IP gościa. Na przykład, jeśli używasz Mozilla Firefox na komputerze hosta i próbujesz uzyskać dostęp do 192.168.56.101/ na gościu, musisz przejść do Firefox's Tools-> Opcje-> Zaawansowane-> Sieć-> Ustawienia i użyć „Nie” Proxy ”lub„ Brak proxy dla -> 192.168.56.101 ”.

SpaceRook
źródło
2

Jeśli potrzebujesz dostępu do gościa, który uzyska inny adres IP z powodu korzystania z DHCP, sugeruję dostęp za pośrednictwem jego nazwy hosta. Jednak dostęp za pośrednictwem nazwy hosta, gdy hostem jest system Windows, może wymagać dodatkowego narzędzia.

Poniższy tekst został skopiowany z mojej własnej odpowiedzi na superuser.com. :

Sugeruję skorzystanie z usługi Multicast DNS, aby to naprawić.

Ubuntu używa tego domyślnie przez Avahi .

Host systemu Windows potrzebuje klienta Avahi, aby mógł odkryć inne usługi Avahi. Jeśli Twój host korzysta już z oprogramowania Apple, prawdopodobnie jest już dostępny za pośrednictwem usługi o nazwie Bonjour. Jeśli jednak nie zostało to jeszcze zainstalowane, można pobrać tutaj małą wersję Bonjour: Usługi drukowania Bonjour . Po instalacji powinieneś mieć dostęp do swojego gościa poprzez .local.

Uwaga: Wydaje się, że system mDNS domyślnie stosuje lokalny postfiks. Tak więc, jeśli Twoja nazwa hosta to „dev.myapp.com”, wówczas rzeczywista nazwa hosta to „dev.myapp.com.local”.

Spiralis
źródło