System gościa VirtualBox uzyskujący dostęp do lokalnego serwera na systemie operacyjnym hosta

107

Na moim hoście Ubuntu mam lokalny serwer WWW. Zainstalowałem VirtualBox i Debian jako gość.

Chciałbym, aby gość Debiana mógł trafić na mój serwer WWW działający na moim hoście Ubuntu (na przykład po prostu piszę http://localhost:8080/w przeglądarce pod Debianem).

Jak można to zrobić?

Maksyma
źródło

Odpowiedzi:

176

Włącz JEDNĄ kartę sieciową. Ustaw na NAT i uruchom maszynę. Nie musisz niczego konfigurować.

W przeglądarce komputera gościa wpisz http://10.0.2.2, który wyświetli tę samą treść, co „localhost” w systemie operacyjnym hosta.

10.0.2.2 jest „bramą domyślną” dla połączeń NAT, a adres IP systemu-gościa to 10.0.2.15

Oczywiście możesz ustawić „TYLKO HOST” lub „sieć wewnętrzną”, co pozwoli ci na inne zaawansowane konfiguracje. Polecam pozostać przy NAT.

Cieszyć się

M.

Melvyn
źródło
1
„Włącz JEDNĄ kartę sieciową”. Gdzie to jest zrobione?
jshen
1
Uwaga: Jeśli masz hosty wirtualne oparte na nazwie skonfigurowane w apache na maszynie hosta, możesz uzyskać do nich dostęp, po prostu tworząc mapowanie w pliku hostów maszyn gościa dla 10.0.2.2 yourvirtualhostname.local (or whatever)
użytkownika
@ Użytkownik, czy jesteś pewien, że Twój ostatni komentarz zadziała? Mam wirtualnego hosta na moim hoście VB ustawionym na http://example.dev, a mapowanie 10.0.2.2na cokolwiek na moim gościu VB wcale nie pomaga w uzyskaniu do niego dostępu.
Томица Кораћ
1
@ ТомицаКораћ to działa. Na przykład patrz: askubuntu.com/questions/36183/... jednak prawdopodobnie powinieneś otworzyć osobne pytanie, aby rozwiązać ten problem.
Użytkownik
1
„Włącz JEDNĄ kartę sieciową” oznacza, że ​​w ustawieniach sieciowych maszyny wirtualnej (w VirtualBox) włącz tylko jedną kartę. Trochę się zdezorientowałem, kiedy pierwszy raz go przeczytałem.
Marquez,
5

Podczas korzystania z adresu IP 10.0.2.2 należy również zwrócić uwagę, jeśli używasz MAMP, na przykład dodaj numer portu: 8888, aby pełny adres został odczytany http://10.0.2.2:8888

Paweł
źródło
3

Najłatwiejszym sposobem na zapewnienie nieprzerwanego dostępu do maszyny VirtualBox Guest jest ustawienie urządzenia sieciowego jako „pomostu” do interfejsu eth0 w sieci LAN.

Maszyna gościa pobierze adres IP sieci LAN przez router z routera.

Ash Palmer
źródło
Wyjaśnienie: To ustawienie w aplikacji klienckiej. To działało dla mnie - zajęło mi to trochę czasu, ponieważ IE był zbyt głupi, aby zakładać, że chcę połączenia HTTP, gdy wpisuję adres IP i port w pasku adresu.
Michael Scheper,
2

To, co znalazłem, rozwiązało problem dla mnie, upewniając się, że adapter Windows VirtualHost-Only był ustawiony na adres .1 dla zakresu adresów ip, więc mój adapter tylko hosta wirtualnego boxa to 192.168.58.20, ale ip dla adaptera Windows to 192.168. 58,1

Jason Hardin
źródło
2

Jeśli rozwiązanie @Melvyn nie działa, alternatywnie możesz ustawić mostek sieciowy.
Przejdź do Settings-> Network->, a następnie zmień Attached tona Bridged Adapter.

wprowadź opis zdjęcia tutaj

Powinieneś być w stanie zadzwonić do rodzica po nazwie hosta lub zewnętrznym adresie IP, który możesz uzyskać, przechodząc do wiersza polecenia i wpisując ipconfig /all wprowadź opis zdjęcia tutaj

wprowadź opis zdjęcia tutaj

Aktualizacja Jeśli debugujesz za pomocą Visual Studio i używasz IIS Express.

iść do C:\Users\[uesername]\Documents\IISExpress\config\applicationhost.config

znajdź swoją stronę internetową <configuration>/<system.applicationHost>/<sites>/<site> (nazwa może wprowadzać w błąd, spróbuj sprawdzić lokalizację na dysku w physicalPathatrybucie)

następnie dodaj do <bindings>sekcji nowe powiązanie

<bindings>
    <binding protocol="http" bindingInformation="*:50766:localhost" />
    <binding protocol="http" bindingInformation="*:50766:48qzr12" />
</bindings>

gdzie jest bindInformation *:[port]:[machineName]

Mam nadzieję, że to pozwoli Ci zaoszczędzić trochę czasu.

Matas Vaitkevicius
źródło
-1

Możesz sprawić, by Debian uderzył w twój serwer WWW, ale nie używa localhost. Musisz użyć adresu IP hosta Ubuntu.

Zakładając, że system operacyjny gościa jest podłączony do sieci, aby pobrać adres IP, otwórz terminal i wpisz ifconfig. Powinien wyglądać jak 192.168.0.2.

Jivings
źródło
Cześć! Przepraszam za spóźnioną odpowiedź. ifconfig na moim hoście pokazuje 192.168.0.102 dla eth0. Kiedy wpisuję ten adres ip w firefoxie gościa, próbuje on połączyć się przez chwilę, a następnie połączenie zostaje zakończone: „Serwer 192.168.0.102 trwa zbyt długo, aby odpowiedzieć” ... Więc co mam teraz spróbować? Z góry dziękuję.
Maxim