Jak uzyskać dostęp do serwera WWW na maszynie wirtualnej z komputera hosta [zamknięte]

29

Mam maszynę z systemem Windows Vista, na której VirtualBox działa Ubuntu.

W Ubuntu prowadzę serwer WWW pod adresem http://127.0.0.1:3000/

Jak uzyskać dostęp do tego adresu z mojego hosta (okno systemu Windows)?

Argh
źródło
Najprostszą opcją jest użycie przekierowania portów. Można go skonfigurować w Ustawienia-> Sieć. Sprawdź ten link
spartan
Jeśli naprawdę skonfigurowałeś serwer WWW gościa na 127.0.0.1, to nie możesz uzyskać do niego dostępu z zewnątrz gościa. Localhost / 127.0.0.1 jest adapterem pętli zwrotnej (w pamięci) i nawet nie wymaga prawidłowej instalacji karty sieciowej. Jeśli zmienisz adres IP swojego serwera na inny niż sprzężenie zwrotne, poniższe odpowiedzi będą w stanie ci pomóc.
Mladen B.,

Odpowiedzi:

28

Możesz zmienić tryb sieci dla gości z NAT na Bridged. Po prostu zamknij gościa Ubuntu, przejdź do strony Ustawienia w VirtualBox, wybierz kategorię Sieć i zmień pole listy Dołącz do z NAT na Tryb Bridged.

Edytować:

Po wykonaniu powyższych kroków uruchom ponownie Ubuntu, a przydzielony adres IP pojawi się na ekranie powitalnym po załadowaniu. tzn. w wiadomości powitalnej powinien zawierać następujące informacje:

Adres IP dla eth0: 192.168.1.3

Użyj tego adresu na pasku przeglądarki komputera hosta, a następnie portu, którego używasz. Jeśli jest to coś innego niż port 80, tzn. Jeśli skonfigurujesz go tak, aby korzystał z portu 666, adres będzie wynosił 192.168.1.3:666

Innym sposobem na znalezienie adresu IP jest połączenie z serwerem HTTP wbudowanym w router i sprawdzenie ustawień sieci LAN. Każda maszyna w sieci powinna być wymieniona według nazwy hosta i adresu IP. Na moim routerze większość innych, które miałem, możesz to zrobić, wpisując 192.168.1.1 w pasku adresu. jeśli to się nie powiedzie, spróbuj tego samego adresu na porcie 81. Jeśli to się nie powiedzie, PRZECZYTAJ INSTRUKCJĘ.

slm
źródło
Ale w jaki sposób możesz dowiedzieć się, jaki jest adres IP? Thx
SSH
To zadziała, ale opcja tylko hosta nie ujawniła tego vm w sieci korporacyjnej
Carlos Garcia
2
Czy jestem tu jedynym, który uważa, że ​​do punktu końcowego gościa 127.0.0.1 można dotrzeć tylko z poziomu gościa (to jest punkt hosta lokalnego)? Dostęp do tego rodzaju punktu końcowego nie powinien być możliwy z niczego poza maszyną gościa (ponieważ jest to adapter pętli zwrotnej, nie wymaga nawet zainstalowanej karty sieciowej).
Mladen B.,
jeśli podam ten 192.1681.3 jako adres IP rekordu A na urządzeniu GoDaddy, to nie działa, oczywiście oczekuje zewnętrznego adresu IP, jeśli to powiem, nadal nie działa dla niektórych reaosn, chcę przetestować nazwę domeny wcześniej na EC2
PirateApp
10

Zależy od konfiguracji sieci w systemie-gościu Ubuntu. Jeśli skonfigurowałeś go do używania NAT i masz serwer DHCP działający w twojej sieci, po prostu uruchom to:

ifconfig | grep inet

w polu Ubuntu - zobaczysz adres IP przypisany do gościa Ubuntu.

Przykład:

#ifconfig | grep inet
  inet addr:10.0.0.2  Bcast:10.255.255.255  Mask:255.255.255.0
  inet addr:127.0.0.1  Mask:255.0.0.0

Następnie wystarczy dotknąć http://10.0.0.2:3000

fsckin
źródło
Cóż, w moim przypadku adres powinien wynosić 10.0.2.15:3000/public i domyślnie Vista działa w trybie DHCP .. (maszyna Ubuntu jest również skonfigurowana do korzystania z NAT), ale nie otrzymuję odpowiedzi :(
Argh
Hmmm właśnie zdałem sobie sprawę, że nie mam serwera DHCP - uruchamiam vista home ...
Argh
VirtualBox ma własny serwer DHCP, który obsługuje maszyny wirtualne - w przeciwnym razie maszyny wirtualne nie uzyskałyby automatycznie adresu IP bez ustawienia go statycznie. Myślę, że twoim problemem może być to, że Apache nie nasłuchuje na wszystkich interfejsach - po prostu localhost (127.0.0.1). Upewnij się, że w / etc / apache2 / sites-available / default dyrektywa Listen mówi 80, a nie 127.0.0.1:80 na help.ubuntu.com/9.04/serverguide/C/httpd.html
Cory Plastek
To prawdopodobnie przyczyna.
fsckin
4

Zarówno okno systemu Windows, jak i pole Ubuntu (zarówno fizyczne, jak i wirtualne, w tym przypadku tak naprawdę nie mają znaczenia) muszą mieć adres IP w tej samej podsieci, aby mogły komunikować się ze sobą za pośrednictwem protokołu TCP / IP. Możesz przypisać dodatkowy adres do każdego systemu operacyjnego za pomocą jednej z prywatnych podsieci IP (patrz RFC 1918 ). Gdy oba adresy będą miały adres w tej samej podsieci, skonfiguruj serwer WWW, aby nasłuchiwał tego, który podałeś Ubuntu, a następnie użyj tego adresu IP w przeglądarce w systemie Windows, aby go załadować.

Adres IP, który skonfigurowałeś teraz, 127.0.0.1, to adres sprzężenia zwrotnego dla interfejsu sieci lokalnej. Nigdy nie użyjesz tego adresu, aby uzyskać dostęp do czegoś w innym systemie, a jedynie w celu odniesienia się do tego samego systemu, w którym jesteś. Korzystając z systemu wirtualnego, traktuj go tak, jakbyś był oddzielnym komputerem z punktu widzenia sieci.

Justin Scott
źródło
2

Aby rozwiązać problem, sugeruję dodanie nowej karty sieciowej i skonfigurowanie jej jako karty tylko hosta .

Teraz uruchamiasz instancję wirtualnego pudełka, a następnie sugestie fsckin, aby zobaczyć, jaki jest ip nowej sieci .

W ten sposób masz podsieć z komputerem i maszyną wirtualną.

fampinheiro
źródło
Więc ... zrobiłem, jak powiedziałeś, złapałem mój adres IP. Następnie próbowałem uzyskać dostęp do serwera WWW (do którego mogę uzyskać dostęp jako gość jako 127.0.0.1:3000 ) przy użyciu przydzielonego adresu IP : 3000 i nie otrzymałem odpowiedzi. Mogłem jednak
pingować
Musisz otworzyć zaporę na porcie 3000.
fampinheiro
Host nie działa od
razu po
0

Przede wszystkim musisz zrobić to, co mówi Odpowiedź 1:

„Możesz zmienić tryb sieci gościa z NAT na Bridged. Po prostu zamknij gościa Ubuntu, przejdź do strony Ustawienia w VirtualBox, wybierz kategorię Sieć i zmień pole listy Attached to z NAT na Bridged Mode”.

Następnie, aby uzyskać adres IP:

Na maszynie wirtualnej otwórz wiersz polecenia i wykonaj:

ip addr show

Prawdopodobnie zobaczysz linię, która wygląda mniej więcej tak:

inet 192.168.43.96/24 ....

Przed tym jest też linia z

inet 127.0.0.1

Ale nie chcesz tego! Chcesz adres 192. To jest adres twojej maszyny wirtualnej w sieci lokalnej. Powinien być dostępny dla każdego urządzenia podłączonego do tej samej sieci lokalnej.

Teraz na komputerze hosta edytuj plik / etc / hosts (Not ~ / etc) Nazwa pliku to hosts (nie jest to nazwa folderu)

dodaj linię, która wygląda następująco:

192.168.43.96 myvm.nameofmywebsite.com

Teraz przejdź do przeglądarki komputera hosta i wpisz myvm.nameofmywebsite.com

Mam nadzieję, że to się uda!

Jednak możesz mieć router z funkcjami bezpieczeństwa, które będą przeszkadzać w wyświetlaniu twojego adresu lokalnego. Możesz spróbować wykorzystać hotspot telefonu komórkowego jako sieć. To działa dla mnie. Pamiętaj tylko, że po zmianie sieci na hoście musisz ponownie uruchomić wirtualną skrzynkę.

Andy Weinstein
źródło