Jak uzyskać dostęp do serwera Ubuntu działającego w VirtualBox z zewnątrz

44

Zainstalowałem Ubuntu Server 12.04 LTS na moim laptopie przez VirtualBox. Zainstalowałem LAMP, OpenSSH, serwer pocztowy.

Gdy się zalogowałem, pobiegłem ifconfig. Dał mi adres inet 192.168.0.3.

To powinien być adres, pod którym powinienem mieć dostęp do serwera, prawda? Ale nie jestem w stanie uzyskać do niego dostępu przez przeglądarkę .. serwer cały czas działa na VirtualBox - ale nadal nie działa na innych przeglądarkach lub telefonie komórkowym. Co muszę zrobić, aby udostępnić go publicznie?

Podbródki
źródło

Odpowiedzi:

58

Domyślnie maszyna gościa w VirtualBox jest skonfigurowana do korzystania z tzw. Sieci NAT - IP karty sieciowej gościa znajduje się w „wirtualnej” podsieci, która obejmuje gościa i nadrzędną aplikację VirtualBox, która działa jako brama. Dla gościa wygląda to tak, jakby łączył się z Internetem za pomocą zwykłego modemu DSL, ale gość nie jest dostępny z dowolnego miejsca, podobnie jak nie można uzyskać dostępu do maszyn w sieci lokalnej z Internetu bez szczególnej konfiguracji modemu, aby umożliwić takie dostęp.

Dokumentacja VirtualBox zawiera następującą listę trybów sieciowych:

Każdą z ośmiu kart sieciowych można osobno skonfigurować do pracy w jednym z następujących trybów:

Nie dołączone

W tym trybie VirtualBox zgłasza gościowi, że karta sieciowa jest obecna, ale nie ma połączenia - tak jakby do karty nie podłączono kabla Ethernet. W ten sposób można „pociągnąć” wirtualny kabel Ethernet i przerwać połączenie, co może być przydatne do poinformowania systemu operacyjnego gościa, że ​​żadne połączenie sieciowe nie jest dostępne i wymuszenia rekonfiguracji.

Tłumaczenie adresów sieciowych (NAT)

Jeśli wszystko, czego potrzebujesz, to przeglądanie Internetu, pobieranie plików i przeglądanie wiadomości e-mail wewnątrz gościa, ten domyślny tryb powinien być dla Ciebie wystarczający i możesz bezpiecznie pominąć resztę tej sekcji. Należy pamiętać, że istnieją pewne ograniczenia podczas korzystania z udostępniania plików Windows (szczegółowe informacje można znaleźć w sekcji „Ograniczenia NAT”).

Bridged networking

Jest to przeznaczone do bardziej zaawansowanych potrzeb sieciowych, takich jak symulacje sieciowe i uruchamianie serwerów u gościa. Po włączeniu VirtualBox łączy się z jedną z zainstalowanych kart sieciowych i wymienia pakiety sieciowe bezpośrednio, omijając stos sieciowy systemu operacyjnego hosta.

Sieć wewnętrzna

Można to wykorzystać do stworzenia innego rodzaju sieci opartej na oprogramowaniu, która będzie widoczna dla wybranych maszyn wirtualnych, ale nie dla aplikacji działających na hoście lub na zewnątrz.

Sieć tylko dla hosta

Można to wykorzystać do utworzenia sieci zawierającej hosta i zestaw maszyn wirtualnych, bez potrzeby korzystania z fizycznego interfejsu sieciowego hosta. Zamiast tego na hoście tworzony jest interfejs sieci wirtualnej (podobny do interfejsu pętli zwrotnej), zapewniający łączność między maszynami wirtualnymi a hostem.

Ogólne sieci

Rzadko używane tryby mają ten sam ogólny interfejs sieciowy, pozwalając użytkownikowi wybrać sterownik, który może być dołączony do VirtualBox lub dystrybuowany w pakiecie rozszerzeń.

Jeśli potrzebujesz uzyskać dostęp do swojego gościa z zewnątrz, musisz skonfigurować mostek sieciowy, który da mu własny adres IP w sieci lokalnej. Konfiguracja odbywa się w ustawieniach VirtualBox, a nie w systemie gościa.

Aby uzyskać dostęp do serwera z telefonu komórkowego (tj. Spoza sieci LAN), po skonfigurowaniu sieci musisz dodatkowo skonfigurować przekierowanie portów w modemie DSL.

Siergiej
źródło
3
+1 za wzmiankę o domyślnej konfiguracji NAT i sugerowanie zmostkowania.
Mark Mikofski
+1 za nauczenie mnie czegoś nowego, pomocnego i odpowiedniego do mojej sytuacji. Dzięki!
heypaleblue
Dziękuję za odpowiedź, ale czy nie muszę instalować DNS na moim serwerze, aby był dostępny dla innych przez Internet?
Podbródki
@Chins: Nie, zdecydowanie nie musisz instalować DNS na swoim serwerze. Wszystko, co do tej pory omawialiśmy, w ogóle nie dotyczy DNS.
Siergiej
1
@Sergey - Skonfigurowałem moją maszynę wirtualną za pomocą Bridged Adapter. Adres IP wyświetlany przy uruchamianiu ifconfig to 10.210.xx, ale nadal nie mogę wypisać mojego vm z komputera hosta. Co może być nie tak?
Andy Dufresne
9

Aby podać trochę więcej informacji, są to rzeczywiste kroki, które należy wykonać, aby skonfigurować sieć zmostkowaną:

Aby włączyć sieci pomostowe, wystarczy otworzyć okno dialogowe ustawień maszyny wirtualnej, przejść do strony „Sieć” i wybrać „Sieć zmostkowana” z listy rozwijanej w polu „Dołączony do”. Na koniec wybierz żądany interfejs hosta z listy na dole strony, która zawiera fizyczne interfejsy sieciowe twoich systemów. Na przykład w typowym MacBooku pozwala to wybrać pomiędzy „en1: AirPort” (który jest interfejsem bezprzewodowym) a „en0: Ethernet”, który reprezentuje interfejs za pomocą kabla sieciowego.

Źródło

Następnie zrestartowałem maszynę wirtualną i byłem w stanie połączyć się z nią zewnętrznie.

mnd
źródło
Należy pamiętać, że na Mac OS 10.1.11, na przykład, nie można bezpośrednio mostkować adaptera Wi-Fi, ale najpierw należy utworzyć „adapter mostka” w ustawieniach sieciowych
twicejr
1
ale w jaki sposób statyczne adresy IP działają w trybie zmostkowanym? Czy zatem wszystko jest w tym samym połączeniu? Czy serwer WWW na maszynie wirtualnej będzie na localhost zamiast jakiegoś adresu IP? Czy porty są przekierowywane 1: 1? Więc jeśli Tomcat jest na maszynie wirtualnej na localhost: 8080, czy maszyna hosta po prostu wpisuje localhost: 8080 w swojej przeglądarce, aby zobaczyć maszynę wirtualną?
anon58192932