Ustawienia sieciowe VirtualBox: kompletny przewodnik
W dzisiejszym świecie biznesu sieci komputerowe stanowią kluczowy element interaktywnych operacji komputerowych. Trudno sobie wyobrazić, jak mogłaby przebiegać wymiana danych między komputerami bez sieci w świecie, w którym wszystko zmienia się w coraz szybszym tempie. Jedną z głównych idei leżących u podstaw wirtualizacji sprzętu jest możliwość wykorzystania maszyn wirtualnych w niemal wszystkich przypadkach użycia, w których można również używać komputerów fizycznych.
W związku z tym maszyny wirtualne muszą mieć możliwość łączenia się z sieciami fizycznymi i wirtualnymi za pomocą swoich wirtualnych kart sieciowych. Maszyny wirtualne działające w programie VirtualBox mogą być podłączone do różnych sieci. VirtualBox oferuje wiele trybów sieciowych dla maszyn wirtualnych. Ten wpis na blogu omawia ustawienia sieciowe programu VirtualBox, aby pomóc Ci skonfigurować go w sposób najlepiej odpowiadający Twoim potrzebom.
Wirtualne karty sieciowe
Każda maszyna wirtualna w programie VirtualBox może korzystać z maksymalnie ośmiu wirtualnych kart sieciowych, z których każda nazywana jest kontrolerem interfejsu sieciowego (NIC). W graficznym interfejsie użytkownika (GUI) programu VirtualBox można skonfigurować cztery wirtualne karty sieciowe. Wszystkie wirtualne karty sieciowe (maksymalnie 8) można skonfigurować za pomocą polecenia VBoxManage modifyvm . VBoxManage jest narzędziem do zarządzania VirtualBoxem z poziomu wiersza poleceń, które można wykorzystać do konfiguracji wszystkich ustawień programu, w tym ustawień sieciowych. Dostęp do ustawień kart sieciowych VirtualBox można uzyskać w oknie ustawień maszyny wirtualnej (wybierz swoją maszynę wirtualną, kliknij Settings i przejdź do sekcji Network w oknie ustawień maszyny wirtualnej).

Powinieneś tam zobaczyć cztery zakładki kart sieciowych. Jedna karta sieciowa jest domyślnie włączona po utworzeniu maszyny wirtualnej. Można zaznaczyć pole wyboru „ “Enable Network Adapter” ”, aby włączyć kartę sieciową, lub odznaczyć to pole, aby ją wyłączyć (to pole wyboru określa, czy wirtualna karta sieciowa jest podłączona do maszyny wirtualnej, czy nie).
Kliknij „ Advanced ”, aby rozwinąć zaawansowane ustawienia karty sieciowej VirtualBox.
Rodzaje wirtualnych kart sieciowych w VirtualBox
Wirtualna karta sieciowa to urządzenie fizyczne emulowane programowo. Istnieje sześć typów wirtualnych kart sieciowych, które mogą być wirtualizowane przez VirtualBox.
- AMD PCnet-PCI II (Am79C970A). Ta karta sieciowa oparta jest na układzie AMD i może być wykorzystywana w wielu sytuacjach. W przypadku systemów-gości Windows karta ta może być używana w starszych wersjach systemu Windows (takich jak Windows 2000), ponieważ nowsze wersje, takie jak Windows 7, 8 i 10, nie zawierają wbudowanego sterownika dla tej karty. Pierwotnie urządzenie PCI typu „
Am79C970A” zawierało pojedynczy układ kontrolera 10 Mbit oraz zintegrowany moduł DMA. Ta karta sieciowa obsługuje również technologię Magic Packet firmy AMD służącą do zdalnego wybudzania. - AMD PCnet-FAST III (Am79C973). Ta zwirtualizowana karta sieciowa jest obsługiwana przez niemal wszystkie systemy operacyjne-goście, które mogą działać w środowisku VirtualBox. GRUB (program rozruchowy) może wykorzystywać tę kartę do rozruchu sieciowego. Podobnie jak poprzednia karta sieciowa, ta również oparta jest na układzie AMD.
- Intel PRO/1000 MT Desktop (82540EM). Ta karta działa doskonale z systemem Windows Vista i nowszymi wersjami Windows. Większość dystrybucji Linuksa również obsługuje tę kartę.
- Intel PRO/1000 T Server (82543GC). System Windows XP rozpoznaje tę kartę sieciową bez konieczności instalowania dodatkowych sterowników.
- Intel PRO/1000 MT Server (82545EM). Ten model karty sieciowej jest przydatny do importowania szablonów OVF z innych platform i może ułatwić proces importowania.
- Półwirtualizowana karta sieciowa (virtio-net) stanowi szczególny przypadek. Zamiast wirtualizować sprzęt sieciowy obsługiwany przez większość systemów operacyjnych, system operacyjny gościa musi udostępniać specjalny interfejs programowy dla środowisk wirtualnych. Takie podejście pozwala uniknąć złożoności związanej z emulacją sprzętu sieciowego, a w rezultacie może poprawić wydajność sieci.
Sterowniki sieciowe virtIO, będące standardem branżowym, są obsługiwane przez VirtualBox. Sterowniki sieciowe VirtIO stanowią część projektu KVM i są oprogramowaniem typu open source. Sterowniki te są dostępne dla systemu Linux z jądrem w wersji 2.6.25 lub nowszym oraz dla systemu Windows, w tym starszych wersji, takich jak Windows 2000, XP i Vista. Ramy
Jumbo obsługują
. Program VirtualBox zapewnia ograniczone wsparcie dla ram jumbo (ramy Ethernet, które mogą przenosić pakiety o rozmiarze większym niż 1500 bajtów). Jeśli chcesz korzystać z ramek jumbo , wybierz wirtualną kartę sieciową Intel i skonfiguruj ją do pracy w trybie mostkowym. Wirtualne karty sieciowe oparte na procesorach AMD nie posiadają wsparcia dla ramek jumbo . Jeśli spróbujesz włączyć ramki jumbo dla wirtualnych kart sieciowych opartych na procesorach AMD, ramki jumbo będą po cichu odrzucane zarówno w ruchu przychodzącym, jak i wychodzącym. Ramki Jumbo są domyślnie wyłączone.
Tryby sieciowe VirtualBox
VirtualBox oferuje długą listę trybów sieciowych, co stanowi jedną z najciekawszych funkcji ustawień sieciowych programu. Każda wirtualna karta sieciowa może być osobno skonfigurowana do pracy w innym trybie sieciowym. Na przykład można ustawić tryb NAT dla karty 1 oraz tryb Host-only dla karty 2. Tryb sieciowy można wybrać z menu rozwijanego Attached to .

Przyjrzyjmy się szczegółowo każdemu trybowi sieciowemu programu VirtualBox.
Niepodłączony
W maszynie wirtualnej zainstalowana jest wirtualna karta sieciowa, ale brakuje połączenia sieciowego, podobnie jak w przypadku odłączenia kabla sieciowego Ethernet podczas korzystania z fizycznej karty sieciowej. Tryb ten może być przydatny do testowania. Na przykład można włączyć ten tryb sieciowy na krótki czas, aby zasymulować odłączenie kabla. Po wyłączeniu trybu Not Attached poprzez przełączenie na inny tryb sieciowy połączenie sieciowe staje się ponownie dostępne. Można również sprawdzić, czy klient DHCP prawidłowo uzyskuje adres IP, czy odpowiednia aplikacja może wznowić pobieranie po przerwie w połączeniu lub utracie pakietów itp.
Zamiast korzystać z trybu sieciowego Not Attached , można użyć dowolnego innego trybu sieciowego, nie zaznaczając pola wyboru Cable Connected . Pole wyboru można zaznaczyć lub odznaczyć, gdy maszyna wirtualna znajduje się w stanie uruchomionym (patrz zrzut ekranu powyżej). Nie zapomnij kliknąć OK , aby zastosować zmiany w konfiguracji sieci maszyny wirtualnej.
NAT
Ten tryb sieciowy jest domyślnie włączony dla wirtualnej karty sieciowej. System operacyjny gościa na maszynie wirtualnej może uzyskać dostęp do hostów w fizycznej sieci lokalnej (LAN) za pomocą wirtualnego urządzenia NAT (Network Address Translation). Sieci zewnętrzne, w tym Internet, są dostępne z poziomu systemu operacyjnego gościa. Z komputera-gościa nie ma dostępu do komputera-hosta ani do innych komputerów w sieci, gdy w sieci VirtualBox używany jest tryb NAT . Ten domyślny tryb sieciowy jest wystarczający dla użytkowników, którzy chcą korzystać z maszyny wirtualnej na przykład wyłącznie w celu uzyskania dostępu do Internetu.
Adres IP karty sieciowej maszyny wirtualnej jest uzyskiwany za pośrednictwem protokołu DHCP, a adresów IP sieci używanej w tym trybie nie można zmieniać w interfejsie graficznym. VirtualBox posiada wbudowany serwer DHCP oraz silnik NAT. Wirtualne urządzenie NAT wykorzystuje fizyczną kartę sieciową hosta VirtualBox jako zewnętrzny interfejs sieciowy. Domyślny adres wirtualnego serwera DHCP używanego w trybie NAT to 10.0.2.2 (jest to również adres IP domyślnej bramy dla maszyny wirtualnej). Maska sieciowa wynosi 255.255.255.0.
Jeśli skonfigurujesz karty sieciowe dwóch lub więcej maszyn wirtualnych do korzystania z trybu „ NAT ”, każda maszyna wirtualna otrzyma adres IP 10.0.2.15 we własnej, izolowanej sieci za prywatnym wirtualnym urządzeniem NAT. Brama domyślna dla każdej maszyny wirtualnej to 10.0.2.2. W programie VirtualBox adresy IP nie ulegają zmianie podczas korzystania z trybu „ NAT ”, jak widać poniżej:

Aby włączyć tryb „NAT” dla maszyny wirtualnej za pomocą VBoxManage, należy wykonać następujące polecenie:
VBoxManage modifyvm VM_name --nic1 nat
Gdzie:
VM_nameto nazwa maszyny wirtualnej;nic1to numer wirtualnej karty sieciowej;natto nazwa trybu sieciowego VirtualBox, który należy ustawić.
Przekierowanie portów można skonfigurować bezpośrednio w oknie ustawień sieciowych maszyny wirtualnej VirtualBox, klikając przycisk „ Port forwarding ” (widoczny na powyższym zrzucie ekranu). Szczegółowe informacje na temat konfiguracji przekierowania portów w ustawieniach sieciowych programu VirtualBox znajdziesz poniżej, po sekcji Network Modes .
Sieć NAT
Tryb ten jest podobny do trybu NAT , którego używa się do konfiguracji routera. Jeśli zastosujesz tryb NAT Network dla wielu maszyn wirtualnych, będą one mogły komunikować się ze sobą za pośrednictwem sieci. Maszyny wirtualne mają dostęp do innych hostów w sieci fizycznej oraz do sieci zewnętrznych, w tym do Internetu. Żadna maszyna z sieci zewnętrznych, ani z sieci fizycznej, do której podłączony jest komputer hosta, nie ma dostępu do maszyn wirtualnych skonfigurowanych do korzystania z trybu NAT Network (podobnie jak w przypadku konfiguracji routera w celu uzyskania dostępu do Internetu z sieci domowej). W trybie NAT Network nie można uzyskać dostępu do maszyny-gościa z poziomu maszyny-hosta (chyba że skonfiguruje się przekierowanie portów w globalnych ustawieniach sieciowych programu VirtualBox). Wbudowany router NAT programu VirtualBox wykorzystuje fizyczny kontroler interfejsu sieciowego hosta VirtualBox jako zewnętrzny interfejs sieciowy (podobnie jak w przypadku trybu NAT ).

Adres sieciowy i nazwę można zmienić w globalnych preferencjach programu VirtualBox (File > Preferences). W lewym panelu okna Preferences wybierz opcję Network , aby uzyskać dostęp do globalnych ustawień sieciowych programu VirtualBox, a następnie kliknij dwukrotnie istniejącą sieć NAT, aby przeprowadzić edycję ustawień (można również dodać nową sieć lub usunąć istniejącą, klikając ikony + lub x ).

W małym oknie podręcznym, które się pojawi, można również włączyć/wyłączyć DHCP, IPv6 oraz skonfigurować przekierowanie portów.

Domyślny adres sieciNatNetworkto 10.0.2.0/24.
Domyślny adres IP bramy to 10.0.2. 1 (do przypisania domyślnego adresu IP bramy służy szablon x.x.x.1 ). Na przykład, jeśli w programie VirtualBox utworzysz nową sieć wirtualną dla trybu NAT Network i ustawisz adres sieciowy 192.168.22.0/24, adres IP bramy w tej sieci będzie wynosił 192.168.22. 1 . Nie można zmienić adresu IP bramy sieciowej dla sieci działającej w trybie NAT Network ani zmienić zakresu adresów IP przydzielanych przez serwer DHCP. Podobnie domyślny adres IP serwera DHCP to 10.0.2.3 (używany jest szablon x.x.x.3 ).
Na zrzucie ekranu widoczna jest konfiguracja adresów IP maszyny wirtualnej z systemem Windows 7 działającej w programie VirtualBox z wirtualną kartą sieciową skonfigurowaną w trybie NAT Network. 
Jeśli nie chcesz edytować ustawień sieciowych VirtualBox w interfejsie graficznym, możesz dodać nową sieć NAT za pomocą narzędzia VBoxManage, korzystając z polecenia:
VBoxManage natnetwork add --netname natnet1 --network "192.168.22.0/24" --enable
Gdzie:
natnet1to nazwa sieci NAT;192.168.22.0/24to adres tej sieci NAT.
Jeśli chcesz skonfigurować kartę sieciową maszyny wirtualnej w celu korzystania z trybuNAT Networkza pomocą narzędzia VBoxManage, uruchom następujące polecenie:
VBoxManage modifyvm VM_name --nic1 natnetwork
Gdzie:
nic1to pierwsza wirtualna karta sieciowa (kontroler interfejsu sieciowego);natnetworkto nazwa trybu sieciowego programu VirtualBox.
Przed zastosowaniem tych ustawień może być konieczne wyłączenie maszyny wirtualnej.
Aby uniknąć powtarzania tego samego polecenia za pomocą VBoxManage przy wyborze trybu sieciowego dla wirtualnej karty sieciowej maszyny wirtualnej w każdej sekcji artykułu, zapoznaj się z nazwami wszystkich możliwych trybów sieciowych programu VirtualBox:none, null, nat, natnetwork, bridged, intnet, hostonly, generic.
Port forwarding to kolejna opcja, do której można uzyskać dostęp i którą można skonfigurować z poziomu tego okna. Przekierowanie portów można wykorzystać do skonfigurowania dostępu z komputera hosta oraz innych hostów w tej samej sieci fizycznej do usług działających w systemie operacyjnym gościa wewnątrz maszyny wirtualnej (szczegóły poniżej). Jak widać, lokalizacja ustawień przekierowania portów dla trybu NAT oraz trybu NAT Network różni się w interfejsie graficznym VirtualBox. Ustawienia przekierowania portów dla trybu NAT są dostępne w VM > Settings > Network , natomiast ustawienia przekierowania portów dla trybu NAT Network można skonfigurować w File > Preferences > Network. Wynika to z faktu, że reguły przekierowania portów dla trybu NAT są indywidualne dla każdej maszyny wirtualnej, podczas gdy reguły przekierowania portów dla trybu NAT Network są wspólne dla wielu maszyn wirtualnych, których karty sieciowe są podłączone do odpowiedniej sieci NAT. Szczegółowe informacje na temat konfiguracji przekierowania portów znajdują się poniżej w sekcji Port Forwarding .
Karta sieciowa w trybie mostkowym
Tryb ten służy do podłączenia wirtualnej karty sieciowej maszyny wirtualnej do sieci fizycznej, do której podłączona jest fizyczna karta sieciowa komputera hosta VirtualBox. Wirtualna karta sieciowa maszyny wirtualnej wykorzystuje interfejs sieciowy komputera hosta do nawiązania połączenia sieciowego. Mówiąc prościej, pakiety sieciowe są wysyłane i odbierane bezpośrednio przez wirtualną kartę sieciową bez dodatkowego routingu. VirtualBox wykorzystuje specjalny sterownik filtru sieciowego w trybie sieciowym bridged w celu filtrowania danych z fizycznej karty sieciowej komputera hosta. Ten tryb sieciowy może służyć do uruchamiania serwerów na maszynach wirtualnych, które muszą być w pełni dostępne z fizycznej sieci lokalnej. Korzystając z trybu sieciowego „ bridged ” w programie VirtualBox, z maszyny wirtualnej można uzyskać dostęp do komputera hosta, hostów w sieci fizycznej oraz sieci zewnętrznych, w tym do Internetu. Dostęp do maszyny wirtualnej jest możliwy zarówno z komputera hosta, jak i z innych hostów (oraz maszyn wirtualnych) podłączonych do sieci fizycznej.
Jeśli na komputerze hosta znajduje się wiele fizycznych kart sieciowych, w ustawieniach sieciowych programu VirtualBox należy wybrać właściwą kartę. Na poniższym zrzucie ekranu widoczne są dwie fizyczne karty sieciowe – karta Ethernet i karta Wi-Fi. W przypadku korzystania z trybu mostkowego dla karty sieci bezprzewodowej nie można korzystać z funkcji niskopoziomowych tej karty Wi-Fi w systemie operacyjnym gościa. Nie można na przykład wybierać sieci Wi-Fi, z którymi chcesz się połączyć, włączać trybu monitorowania itp. Zamiast tego należy połączyć się z siecią Wi-Fi na komputerze hosta. Jeśli konieczne jest korzystanie ze wszystkich funkcji karty Wi-Fi w systemie operacyjnym gościa maszyny wirtualnej, należy użyć karty Wi-Fi USB oraz funkcji USB Pass-through, zgodnie z opisem w wpisie na blogu dotyczącym Instalacja systemu Kali Linux w programie VirtualBox.

W programie VirtualBox adres IP wirtualnej karty sieciowej maszyny wirtualnej może należeć do tej samej sieci co adres IP fizycznej karty sieciowej komputera hosta, gdy używany jest tryb bridged . Jeśli w sieci fizycznej znajduje się serwer DHCP, wirtualna karta sieciowa maszyny wirtualnej uzyska adres IP automatycznie w trybie bridged (o ile w ustawieniach interfejsu sieciowego systemu operacyjnego gościa włączono automatyczne uzyskiwanie adresu IP). W związku z tym brama domyślna dla wirtualnej karty sieciowej działającej w trybie mostkowym jest taka sama jak dla komputera hosta. Przyjrzyjmy się prostemu przykładowi z adresami IP.
Adres sieci fizycznej: 10.10.10.0/24
Adres IP bramy domyślnej w sieci fizycznej: 10.10.10.1
Adres IP serwera DHCP w sieci fizycznej: 10.10.10.1
Konfiguracja IP komputera hosta: adres IP – 10.10.10.72; maska sieciowa – 255.255.255.0; brama domyślna – 10.10.10.1.
Konfiguracja IP komputera-gościa: adres IP – 10.10.10.91; maska sieciowa – 255.255.255.0; brama domyślna – 10.10.10.1.

Czasami może się okazać, że w sieci fizycznej występuje wiele bram. Można wykorzystać maszynę hosta do łączenia się z niezbędnymi sieciami za pośrednictwem jednej bramy, a maszynę-gościa do łączenia się z innymi sieciami za pośrednictwem drugiej bramy. Można również przeprowadzić edycję tabeli routingu na maszynie wirtualnej i dodać trasy umożliwiające korzystanie z obu bram w celu połączenia się z odpowiednimi sieciami. Jak widać, tryb sieci mostkowej stanowi potężną opcję w ustawieniach sieciowych programu VirtualBox, oferującą wiele przypadków użycia.
Promiscuous mode. Tryb ten pozwala karcie sieciowej na przekazywanie całego odbieranego ruchu, niezależnie od tego, do której karty jest on adresowany. W trybie normalnym karta sieciowa odbiera tylko ramki, które zawierają adres MAC tej konkretnej karty jako adres docelowy w nagłówku. Ramki adresowane do adresu MAC różniącego się od adresu MAC wybranej karty (gdy ruch nie jest rozgłaszany) są odrzucane w trybie normalnym. promiscuous mode umożliwia fizycznej karcie sieciowej posiadanie wielu adresów MAC, co pozwala, aby cały przychodzący ruch przechodził przez fizyczną kartę sieciową komputera-hosta i docierał do wirtualnej karty sieciowej maszyny wirtualnej, która posiada własny adres MAC reprezentowany na karcie hosta, nawet jeśli ruch ten nie jest adresowany do wirtualnej karty sieciowej tej konkretnej maszyny wirtualnej.
Większość bezprzewodowych kart sieciowych nie posiada wsparcia dla trybu promiscuous. Mostkowanie do kart Wi-Fi odbywa się w następujący sposób – VirtualBox zastępuje odpowiednie adresy MAC w nagłówkach ramek Ethernet, które muszą zostać dostarczone do wirtualnej karty sieciowej maszyny wirtualnej (dla tego ruchu należy użyć adresu MAC karty Wi-Fi komputera hosta). Tryb promiscuous jest przydatny do testowania sieci i audytów bezpieczeństwa. Tryb promiscuous można włączyć w ustawieniach sieciowych programu VirtualBox, a ruch sieciowy monitorować za pomocą sniffera.
Istnieją trzy opcje korzystania z trybu „ promiscuous mode”.
Deny. Wszelki ruch, który nie jest przeznaczony dla wirtualnej karty sieciowej maszyny wirtualnej, jest przed nią ukryty. Ta opcja jest domyślnie włączona.Allow VMs. Cały ruch jest ukryty przed kartą sieciową maszyny wirtualnej, z wyjątkiem ruchu przesyłanego do i z innych maszyn wirtualnych.Allow All. W tym trybie nie ma żadnych ograniczeń. Karta sieciowa maszyny wirtualnej ma wgląd we cały ruch przychodzący i wychodzący.
Tryb Promiscuous można stosować nie tylko w trybie sieciowym Bridged , ale także w trybach NAT Network, Internal Network i Host-Only Adapter.
Sieć wewnętrzna
Maszyny wirtualne, których karty sieciowe są skonfigurowane do pracy w trybie VirtualBox Internal Network , są podłączone do izolowanej sieci wirtualnej. Maszyny wirtualne podłączone do tej sieci mogą komunikować się między sobą, ale nie mogą komunikować się z komputerem-hostem VirtualBox ani z żadnymi innymi komputerami-hostami w sieci fizycznej lub w sieciach zewnętrznych. Dostęp do maszyn wirtualnych podłączonych do sieci wewnętrznej nie jest możliwy z komputera-hosta ani z żadnych innych urządzeń. VirtualBox internal network może służyć do modelowania rzeczywistych sieci.
Na przykład można utworzyć trzy maszyny wirtualne, z których każda posiada wirtualną kartę sieciową (Karta 1) podłączoną do sieci wewnętrznej. Adresy IP tych kart sieciowych są definiowane na podstawie podsieci używanej dla sieci wewnętrznej VirtualBox (podsieć należy zdefiniować ręcznie). Jedna z tych maszyn wirtualnych (VM1) posiada również drugą wirtualną kartę sieciową, skonfigurowaną do pracy w trybie NAT . Serwer VM1 jest skonfigurowany jako router (jednym z najlepszych rozwiązań do stworzenia routera jest zainstalowanie systemu Linux i skonfigurowanie IPTABLES, jednak przy pierwszym podejściu można skorzystać z prostszych rozwiązań routingu w przypadku testowania sieci w VirtualBox).
VM2 oraz VM3 , których karty sieciowe są podłączone wyłącznie do sieci wewnętrznej VirtualBox, mogą uzyskać dostęp do sieci zewnętrznych, jeśli adres IP wewnętrznej karty sieciowej VM1 zostanie ustawiony jako brama w ustawieniach sieciowych VM2 oraz VM3 .
Konfiguracja sieciowa zastosowana w tym przykładzie:
VM1. Adres IP – 192.168.23.1 (trybinternal network ); 10.0.2.15 (trybNAT ), brama 10.0.2.2 (adres IP wbudowanego urządzenia NAT programu VirtualBox).
VM2. Adres IP – 192.168.23.2 (sieć wewnętrzna), brama – 192.168.23.1
VM3 . Adres IP – 192.168.23.3 (sieć wewnętrzna), brama – 192.168.23.1
Podsieć wewnętrzna VirtualBox: 192.168.23.0/24
Aby uzyskać większą przejrzystość, zapoznaj się z poniższym schematem.

Uwaga : Taką infrastrukturę wirtualną można również wdrożyć w celu przetestowania reguł zapory sieciowej w IPTABLES przed wdrożeniem ich w rzeczywistej infrastrukturze sieciowej, jednak podczas łączenia się z sieciami zewnętrznymi zaleca się stosowanie trybu bridged zamiast trybu NAT dla drugiej karty sieciowej VM1 .
Karta sieciowa tylko dla hosta
Ten tryb sieciowy służy do komunikacji między hostem a systemami-gośćmi. Maszyna wirtualna może komunikować się z innymi maszynami wirtualnymi podłączonymi do sieci host-only oraz z komputerem hosta. Komputer hosta programu VirtualBox ma dostęp do wszystkich maszyn wirtualnych podłączonych do sieci host-only .

Wirtualna karta sieciowa programu VirtualBox Host-Only jest tworzona w systemie operacyjnym hosta w celu korzystania z sieci host-only . Ustawienia tej sieci VirtualBox można edytować, przechodząc do File > Host Network Manager.

W naszym przypadku domyślny adres sieciowy sieci host-only to 192.168.56.0/24, a adres IP wirtualnej karty sieciowej na komputerze hosta to 192.168.56.1. Adresy IP można edytować ręcznie w zakładce Adapter . Serwer DHCP można włączyć lub wyłączyć, zaznaczając odpowiednie pole wyboru. W zakładce DHCP Server można ustawić adres IP serwera DHCP, maskę sieciową oraz zakres adresów IP, które mają być przydzielane klientom DHCP.

Wirtualne karty sieciowe maszyn wirtualnych nie mają bramy w swojej konfiguracji IP, ponieważ tryb Host-Only nie pozwala na łączenie się z żadnymi urządzeniami poza siecią host-only . Możliwe jest również utworzenie więcej niż jednej wirtualnej karty sieciowej VirtualBox host-only w celu korzystania z różnych sieci host-only — wystarczy nacisnąć przycisk Create . Jeśli sieć tylko dla hosta nie jest już potrzebna, wystarczy wybrać kartę sieciową i kliknąć Remove.
Sterownik ogólny
Ten tryb sieciowy pozwala na współdzielenie ogólnego interfejsu sieciowego. Użytkownik może wybrać odpowiedni sterownik, który jest dystrybuowany w pakiecie rozszerzeń lub dołączony do programu VirtualBox.
Dostępne są dwa podtryby dla programu VirtualBox Generic Driver tryb – UDP Tunnel oraz VDE (Virtual Distributed Ethernet) Networking.
UDP Tunnel. Maszyny wirtualne działające na różnych hostach mogą komunikować się w sposób przezroczysty, korzystając z istniejącej infrastruktury sieciowej.
VDE Networking. Maszyny wirtualne mogą łączyć się z wirtualnym przełącznikiem rozproszonym na hostach z systemem Linux lub FreeBSD. Aby korzystać z sieci VDE, należy skompilować program VirtualBox ze źródeł, ponieważ standardowe pakiety VirtualBox nie zawierają tej funkcji.
Porównanie trybów sieciowych VirtualBox
Dla większej wygody podsumujmy w poniższej tabeli wszystkie informacje dotyczące trybów sieciowych obsługiwanych przez VirtualBox:

Przekierowanie portów
Przekierowanie portów to proces przechwytywania ruchu adresowanego do odpowiedniego adresu IP i portu oraz przekierowywania tego ruchu na inny adres IP i/lub port. Do konfiguracji przekierowania portów można używać specjalnych aplikacji na komputerach i innych urządzeniach typu router. Jednym z najpopularniejszych przypadków użycia przekierowania portów jest zapewnienie dostępu z sieci zewnętrznych do określonych usług sieciowych, które są ukryte za NAT. Po skonfigurowaniu reguł przekierowania portów klienci mogą uzyskać dostęp do odpowiednich usług z zewnątrz, łącząc się z zewnętrznym adresem IP routera (hosta) i określonym portem.
Pakiety są najpierw przechwytywane przez aplikację na routerze, a następnie aplikacja odczytuje docelowy adres IP i numer portu z odpowiednich nagłówków (nagłówki pakietów IP, nagłówki segmentów TCP lub UDP). Jeśli kombinacja docelowego adresu IP i/lub numeru portu w nagłówkach odpowiada warunkowi określonemu w regule przekierowania portów, aplikacja routująca przepisuje informacje w nagłówku (adres IP i/lub numer portu) i wysyła pakiet/segment do innego interfejsu sieciowego zgodnie z regułą przekierowania portów.
Domyślnie połączenie z maszynami wirtualnymi VirtualBox, których karty sieciowe są skonfigurowane do pracy w trybie NAT lub NAT Network , jest niemożliwe z poziomu hosta VirtualBox oraz innych hostów w sieci LAN, jednak VirtualBox udostępnia wbudowaną funkcję przekierowania portów, która umożliwia taki dostęp.
Przykład 1 – Dostęp SSH
Rozważmy teraz konfigurację przekierowania portów w celu połączenia się z maszynami wirtualnymi VirtualBox na przykładzie połączenia z serwerem SSH działającym na maszynie wirtualnej z systemem Ubuntu Linux, która jest podłączona do sieci w trybie NAT . Informacje na temat instalacji systemu Ubuntu w VirtualBox można znaleźć pod adresemten wpis na blogu.
Dane wejściowe:
Adres IP hosta: 10.10.10.72 (fizyczna karta sieciowa).
Adres IP maszyny wirtualnej z systemem Ubuntu: 10.0.2.15 (trybNAT )
Nazwa użytkownika: user1
1. Zainstaluj serwer SSH na maszynie wirtualnej z systemem Ubuntu.
apt-get install openssh-server
2. Edytuj plik konfiguracyjny serwera SSH.
vim /etc/ssh/sshd_config
3. Usuń komentarz z linii włączającej uwierzytelnianie za pomocą haseł.
PasswordAuthentication yes
4. Uruchom ponownie demona (usługę) SSH.
/etc/init.d/ssh restart
5. Sprawdź, czy serwer SSH działa, i spróbuj połączyć się z nim z lokalnego hosta (maszyny wirtualnej z systemem Ubuntu).
ssh user1@127.0.0.1
6. Jeśli wszystko jest w porządku, możesz przystąpić do konfiguracji przekierowania portów w programie VirtualBox.
Jak zapewne pamiętasz, należy otworzyć stronęVM settingsi wybrać sekcjęNetwork. Wybierz swoją wirtualną kartę sieciową skonfigurowaną do pracy w trybieNAT, rozwiń sekcjęAdvanced settings i kliknij przyciskPort Forwarding. Kliknij ikonę+, aby dodać nową regułę przekierowania portów w ustawieniach sieciowych maszyny wirtualnej w programie VirtualBox.

Serwer SSH domyślnie nasłuchuje na 22. porcie TCP. Stwórzmy regułę, która pozwoli przekierowywać wszystkie połączenia z komputera hosta VirtualBox na porcie 8022 do maszyny wirtualnej z systemem Ubuntu na porcie 22, na którym nasłuchuje serwer SSH. Najpierw można utworzyć regułę zezwalającą na połączenia wyłącznie z komputera hosta VirtualBox.
| Nazwa | Protokół | Adres IP hosta | Port hosta | Adres IP gościa | Port gościa |
| Ubuntu-SSH | TCP | 127.0.0.1 | 8022 | 10.0.2.15 | 22 |
Widok okna reguł przekierowania portów w interfejsie graficznym VirtualBox przedstawiono na poniższym zrzucie ekranu.

Otwórz klienta SSH (na przykład PuTTY jeśli korzystasz z systemu Windows) na hoście VirtualBox i połącz się z adresem 127.0.0.1 na porcie 8022.
Inne hosty w sieci fizycznej będą mogły uzyskać dostęp do maszyny wirtualnej z systemem Ubuntu przez SSH, łącząc się z maszyną hosta VirtualBox na porcie 8022, jeśli utworzysz podobną regułę przekierowania portów, w której zamiast adresu IP localhost (127.0.0.1) zostanie zdefiniowany rzeczywisty adres IP fizycznej karty sieciowej hosta VirtualBox. W tym przykładzie adres IP fizycznej karty sieciowej na hoście VirtualBox to 10.10.10.72.
| Nazwa | Protokół | Adres IP hosta | Port hosta | Adres IP gościa | Port gościa |
| Ubuntu-SSH | TCP | 10.10.10.72 | 8022 | 10.0.2.15 | 22 |
Otwórz klienta SSH na hoście VirtualBox lub na innym hoście podłączonym do sieci LAN i połącz się z adresem IP hosta VirtualBox na porcie 8022.
Przykład 2 – Dostęp HTTP
Jeśli chcesz wdrożyć serwer WWW na swojej maszynie wirtualnej i zapewnić dostęp do swoich stron internetowych z zewnątrz, możesz dodać kolejną regułę przekierowania portów. Rozważmy, jak skonfigurować tę regułę przekierowania portów, aby uzyskać dostęp do strony internetowej wdrożonej na maszynie wirtualnej z systemem Ubuntu z komputera hosta VirtualBox oraz innych komputerów podłączonych do fizycznej sieci lokalnej (LAN). W tym przykładzie jako serwer WWW wykorzystywany jest Apache.
Najpierw zainstaluj serwer Apache na maszynie wirtualnej z systemem Ubuntu działającej w programie VirtualBox.
apt-get install apache2
Zapora sieciowa ufw jest domyślnie wyłączona w systemie Ubuntu. Jeśli na Twojej maszynie wirtualnej z systemem Ubuntu zapora jest włączona, upewnij się, że dostęp do portu TCP 80 jest dozwolony.
Po zainstalowaniu serwera Apache otwórz przeglądarkę internetową na maszynie wirtualnej z systemem Ubuntu i przejdź do domyślnej strony serwera Apache, wpisując http://127.0.0.1 w pasku adresu. Jeśli wszystko jest w porządku, w przeglądarce internetowej pojawi się adres Apache2 Ubuntu default page .
Oznacza to, że możesz teraz skonfigurować regułę przekierowania portów w ustawieniach sieciowych programu VirtualBox, aby uzyskać dostęp do swojej strony internetowej hostowanej na maszynie wirtualnej z systemem Ubuntu. Otwórz okno ustawień Port Forwarding , przechodząc na stronę VM settings > Network > [select your adapter] > Port Forwarding (podobnie jak wyjaśniono powyżej). Możesz dodać nową regułę, wykonując następujące czynności:
| Nazwa | Protokół | Adres IP hosta | Port hosta | Adres IP gościa | Port gościa |
| Ubuntu-HTTP80 | TCP | 10.10.10.72 | 8080 | 10.0.2.15 | 80 |
Otwórz przeglądarkę internetową na komputerze hosta lub na dowolnym innym komputerze podłączonym do sieci fizycznej i wprowadź adres IP komputera hosta VirtualBox oraz port zdefiniowany w utworzonej powyżej regule przekierowania portów:
http://10.10.10.72:8080
W obecnym przykładzie 10.10.10.72 jest adresem IP komputera hosta VirtualBox, a 8080 to port TCP, na którym nasłuchuje komputer hosta VirtualBox. Pomyślny wynik konfiguracji przekierowania portów pokazano na poniższym zrzucie ekranu.

Można również utworzyć podobne reguły dostępu do maszyny wirtualnej za pośrednictwem protokołów RDP, FTP i innych.
Konfiguracja przekierowania portów dla maszyn wirtualnych, których wirtualne karty sieciowe działają w trybie NAT Network , przebiega podobnie (patrz sekcja powyżej, w której wyjaśniono tryb NAT Network , aby zlokalizować ustawienia przekierowania portów dla trybu NAT Network ).
Wnioski
VirtualBox to potężne rozwiązanie do wirtualizacji, które jest elastyczne i zapewnia szeroki zakres ustawień sieciowych. Każda maszyna wirtualna może korzystać z maksymalnie ośmiu wirtualnych kart sieciowych, a każda z nich może być emulowana jako odpowiedni model rzeczywistych kart sieciowych (NIC) firm Intel i AMD. Ustawienia kart sieciowych w VirtualBox pozwalają na zmianę adresu MAC każdej wirtualnej karty sieciowej, podłączenie lub odłączenie wirtualnego kabla sieciowego oraz wybór trybu sieciowego. Ustawienie trybu sieciowego dla wirtualnej karty sieciowej jest jedną z najciekawszych i najważniejszych części konfiguracji sieciowej w VirtualBox. Dostępnych jest sześć trybów sieciowych, z których każdy może być wykorzystywany w różnych przypadkach użycia. Przekierowanie portów można skonfigurować w celu uzyskania dostępu z zewnątrz do maszyn wirtualnych, których karty sieciowe działają w trybach NAT lub NAT Network.