Czy połączyć się z maszyną hosta z systemu gościa VirtualBox?

214

Zasadniczo chciałbym uzyskać dostęp do mojego komputera hosta od gościa w VirtualBox. Czy dla mojego hosta podano adres IP, którego mogę używać od gościa? Czy są wymagane dodatkowe kroki, aby to skonfigurować? Chciałbym uzyskać dostęp do usług Apache, FTP i SSH mojego hosta.

Naftuli Kay
źródło
1
Trudne do rozwiązania bez żadnej wskazówki, jaką konfigurację sieci ma gość. Niektóre nie zezwalają na dostęp do hosta. Wypróbuj domyślny adres bramy gościa.
Turbo J
7
Okazuje się, że mogę do niego dotrzeć przez moją domyślną bramę o 10.0.2.2.
Naftuli Kay

Odpowiedzi:

258

Ta odpowiedź dotyczy w zasadzie konfiguracji systemu gościa w VirtualBox; wystarczy użyć adresu bramy sieciowej w systemie-gościu, aby połączyć się z systemem-hostem z systemu-gościa.

W domyślnej konfiguracji Vagrant powinieneś być w stanie dotrzeć do swojego hosta przez domyślną bramę.

W przypadku gości opartych na systemie Windows można łatwo ustalić ten adres IP, uruchamiając polecenie:

ipconfig

Powinien zrzucić coś takiego:

Windows IP Configuration

Ethernet adapter Local Area Connection:

        Connection-specific DNS Suffix  . :
        IP Address. . . . . . . . . . . . : 10.0.2.15
        Subnet Mask . . . . . . . . . . . : 255.255.255.0
        Default Gateway . . . . . . . . . : 10.0.2.2

W tym przykładzie gość może uzyskać dostęp do komputera hosta 10.0.2.2.


W przypadku gości opartych na systemie Unix / Linux użyj polecenia:

netstat -rn

Powinien zrzucić coś takiego:

Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
192.168.1.0     0.0.0.0         255.255.255.0   U         0 0          0 wlan0
169.254.0.0     0.0.0.0         255.255.0.0     U         0 0          0 wlan0
0.0.0.0         192.168.1.1     0.0.0.0         UG        0 0          0 wlan0

W tym przykładzie gość może uzyskać dostęp do komputera hosta 192.168.1.1.

Naftuli Kay
źródło
Masz pojęcie, dlaczego łączność byłaby strasznie wolna podczas łączenia za pomocą domyślnej bramy zgodnie z Twoją odpowiedzią?
Ben Swinburne
To chyba nie działało dla mnie (Ubuntu 12.04, Vagrant 1.0). Domyślna brama wewnątrz gościa pokazała się jako 10.0.2.2i mapa nm tego adresu IP zawiodła. 192.168.33.1 wydaje się być właściwym adresem IP. (Miałem config.vm.network :hostonly, "192.168.33.52"w konfiguracji).
Ajedi32,
Właściwie nieważne. To zadziałało. nmap po prostu nie działał z jakiegoś powodu; nie pewny dlaczego. Nadal mogłem połączyć się z usługami uruchomionymi na hoście z tego adresu IP, nawet jeśli nmap ich nie pokazywał.
Ajedi32,
1
netstat -rnw CentOS 7.2 Docker 1.11 wyświetlał 172.17adres jako moją bramę, ale ten adres IP nie zgadzał się z moim hostem. Okazuje się, że 10.0.2.2tak.
Spencer Williams
1
Skąd wiemy, który z tych wpisów jest bramą?
Kramer
36

Dostęp do serwera WWW komputera-hosta od gościa jest łatwy. Można to łatwo zrobić za pomocą dwóch metod. Najpierw wykonaj następujące czynności

  • Przejdź do Urządzenia i wybierz Karty sieciowe ...
  • W ustawieniach adaptera sprawdź opcję Attached to .
  • Jeśli wartością jest NAT , wykonaj następujące czynności

  • Domyślna brama podczas konfigurowania Virtual box jest ogólnie 10.0.2.2wartością domyślną. Jeśli nic nie zmieniłeś, zadziała. Ale jeśli go zmieniłeś, a uruchomionym komputerem-gościem jest system Windows, uruchom polecenie i znajdź domyślną bramę

    ipconfig /all

    Jeśli korzystasz z systemu Linux, Unix lub Mac OS, uruchom następujące polecenie, aby je uzyskać

    netstat -rn | grep 'default' | awk '{print $2}'

  • Przejdź do przeglądarki internetowej, wpisz domyślną bramę i naciśnij klawisz Enter. Dostęp do serwera internetowego jest możliwy.

  • Jeśli wartością jest Bridged Adapter , wykonaj następujące czynności
    • znajdź adres IP hosta i gościa
      • jeśli korzystasz z systemu Windows, uruchom ipconfigi uzyskaj adres IP
      • jeśli korzystasz z systemu Linux, Unix lub Mac OS, uruchom ifconfig | grep 'inet' i uzyskaj adres IP
      • adres IP jest jak 192.168.1.1
    • jeśli chcesz uzyskać dostęp do hosta, uruchom przeglądarkę w gościu i wprowadź adres IP hosta
    • jeśli chcesz uzyskać dostęp do gościa, uruchom przeglądarkę na hoście i wprowadź adres IP gościa
Prabhu
źródło
9

Innym sposobem na to jest użycie sieci wirtualnej typu „Host”. To daje interfejs w systemie-gościu z adresem w lokalnej podsieci, innym niż podsieć („świat zewnętrzny”), na której znajduje się komputer. Aby to zadziałało, musisz upewnić się o kilku rzeczach:

  • W maszynie wirtualnej skonfigurowano adapter „tylko host”;
  • Usługi hosta muszą nasłuchiwać na wszystkich lokalnych adapterach lub przynajmniej tych, z którymi chcesz się skontaktować;
  • Twój host otrzyma własny adapter wirtualny, a będziesz musiał dowiedzieć się, jaki jest jego adres IP i dodać go do pliku „hosts” w systemie gościa (jednak działa to w przypadku systemu gościa; w systemie Windows XP jest to po prostu „ hosts ”zakopany w C: / WINDOWS / system32 / drivers / etc). Nadaj mu nazwę, której chcesz używać dla nazwy hosta hosta.

Po wykonaniu tej czynności powinieneś być w stanie „zobaczyć” hosta z maszyny wirtualnej za pomocą nazwy zakodowanej w pliku hosta.

Na przykład na moim hoście Ubuntu 11.04 otrzymuję interfejs wirtualny „vboxnet0” na 192.168.56.1. Adaptery w maszynach mają coś w rodzaju 192.168.56.101. Nie trzeba iść w moim maszyn wirtualnych, ale przypuszczam, że byłoby to możliwe za pomocą symetrycznego zmiany pliku hosta gospodarza. Dodaję

192.168.56.1 mymachine

do plików hosta systemu-gościa i mogą (na przykład) zobaczyć serwer WWW mojego hosta pod adresem

http://mymachine/whatever

Oczywiście można skonfigurować zarówno mostki, jak i tylko hosty.

Pointy
źródło
0

Możesz tworzyć foldery współdzielone w VirtualBox. Spowoduje to automatyczne utworzenie „udziału sieciowego” w Virtual Box w celu uzyskania dostępu do folderów w systemie operacyjnym hosta.

Oto przyzwoity krok po kroku w systemie gościa Windows XP:

http://www.giannistsakiris.com/index.php/2007/09/28/virtualbox-access-shared-folders-from-windows-xp-guest-os/

Kobaltz
źródło
Więc mogę uzyskać dostęp do mojego hosta w / vboxsvr / ShareName?
Naftuli Kay
Tak, należy ustawić folder taki jak C: \ STUFF, który będzie udostępniany VirtualBox. W VirtualBox Guest OS możesz przejść do tego serwera vbox i uzyskać dostęp do folderów współdzielonych.
kobaltz
Tak naprawdę nie chcę udostępnionego folderu. Chcę adres IP mojej maszyny hosta. Gdy go otrzymam, chciałbym go użyć do korzystania z usług na moim komputerze hosta, tj .: echo "GET /\r\n\r\n" | nc 192.168.100.100 80(wyślij żądanie GET HTTP na moją maszynę hosta od gościa).
Naftuli Kay
1
W takim przypadku może być konieczne ustawienie karty sieciowej Guest OS na Bridge. Spowoduje to pobranie adresu IP z DHCP lub routera. Będziesz wtedy mógł natywnie uzyskać dostęp do komputera hosta poprzez adres IP zamiast folderu współdzielonego VBox.
kobaltz
0

Oto inne rozwiązanie tego problemu poprzez użycie dodatkowego interfejsu sieciowego i ustawienie ruchu przeznaczonego dla hosta do kierowania przez dodatkowy interfejs.

programr101
źródło
4
Witamy w Super User! Byłoby miło dołączyć tutaj istotne części odpowiedzi i podać link tylko do wykorzystania w przyszłości.
slhck