Tre sätt att konfigurera nätverket i Virtual Box

Utvecklar man med många olika projekt är det alltid bra att ha egna dedikerade servrar för vart och en av dom – olika kunder ställer olika krav på mjukvaran. Att ha dom virtualiserade i arbetsdatorn har aldrig varit enklare – här visar vi hur nätverket kan konfigureras på tre olika sätt mot Virtual Box och Ubuntu som LAMP-server.

Virtual Box är en mjukvara för virtualisering av X86-system som finns både i en kommersiell och en gratis begränsad version släppt under GPL. Här använder vi GPL-versionen som fungerar bra för ändamålet.

Att ställa in nätverken för att ansluta från värdsystemet (i vårt fall Mac OS X) till gästsystemet kan vara lite krångligt. Det finns tre sätt med olika för- och nackdelar.

Den virtuella maskinens nätverksadapter som NAT, bryggat nätverkskort och virtuellt nätverkskort

NAT – Network Address Translation

Som standard är ett nytt gästsystem konfigurerat att ansluta mot internet med NAT vilket förenklat betyder att Virtual Box fungerar som en router med en extern IP-adress i samma serie som värdsystemet från din router. Gästsystemen får IP-nummer i en egen serie på insidan (10.0.X.15) som även skiljer sig åt mellan gästsystemen.

För att komma åt gästsystem måste man göra portmappningar för dom tjänster man vill ansluta till. Gästsystemen kan i sin tur utan problem komma ut på internet men inte kommunicera med varandra.

För att göra en portmappning måste man använda terminalen med följande kommandon:

VBoxManage setextradata "guestname" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guesthttp/Protocol" TCP

VBoxManage setextradata "guestname" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guesthttp/GuestPort" 80

VBoxManage setextradata "guestname" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guesthttp/HostPort" 8080

Guestname är namnet på gästsystemet, pcnet är den virtuella nätverksadaptern (det finna även andra att välja på så man måste ange rätt), guesthttp kan vara vad du vill men bör beskriva tjänsten. Dom sista siffrorna är porten för tjänsten man ansluter mot, vilket måste vara högre än 1024 på värdsystemet – i det här faller använder vi 8080 till webbservern på port 80 i gästsytemet. Inställningarna sparas i en xml-fil för respektive gästsystem under Bibliotek / VirtualBox / Machines.

Nu går det att ansluta till webbsevern genom att ange IP-adressen till Virtual Box (den går att hitta i din routers logg) följt av ett kolon och porten 8080. Vill man komma åt fler tjänster måste man portmappa även dessa – för exempelvis SSH port 2222 på värdsidan till 22 på gästsidan. Har man flera gästsystem måste dessa ha olika portnummer på värdsidan.

Bryggat nätverkskort

Det absolut enklaste sättet att ansluta till gästsystemet är genom att byta till bryggat nätverkskort under maskinens nätverksintällningar. Då får maskinen ett IP-nummer i samma serie som värdsystemet från din router – gästmaskiner och värdsystemet kan alltså kommunicera direkt med varandra. Har du en bärbar dator är det bäst att välja Airport som nätverkskort så det även fungerar om nätverkssladden inte är ansluten.

Endast värdnätverk

Värdnätverket fungerar som en router i Virtual Box samt skapar ett virtuellt nätverkskortet (vboxnet) i värdsystemet. Virtual Box delar som standard ut adressen 192.168.56.1 till värdsystemet och adresser över 192.168.56.100 till gästsystemen. Normalt finns ingen orsak att ändra detta, men det går både att redigera och lägga till fler virtuella kort under Virtual Box, Preferences och Nätverk i menyn. Det virtuella nätverkskortet syns inte under nätverksinställningarna i Mac OS X men genom att lista nätverken i konsolen med ifconfig kan vi se att det finns.

Precis som med bryggat nätverkskort kan gästmaskiner och värdsystemet kommunicera med varandra direkt. Problemet är att gästmaskinen inte kommer ut på internet – en av fördelarna med att använde Linux som server är just hur enkelt det är att installera mjukvara med kommandon som apt-get, vilket alltså inte är möjligt utan en internetanslutning.

För att lösa det här kan man konfigurera Adapter 2 på gästsystemet som NAT eller bryggat nätverkskort, samt i slutet av /etc/network/interfaces på gästmaskinen lägga till följande rader:

auto eth1

iface eth1 inet dhcp

Nu går det att ansluta mot maskinen även när man saknar nätverk samt komma åt internet på den när man har tillgång till det.

Den virtuella maskinens nätverksuppgifter från kommandot ifconfig

Det finns flera nackdelar med dom första två sätten – det blir många portar att hålla reda på och svårt att använda statiska IP-adresser ifall man flyttar datorn mellan olika nätverk. Ett viktigt problem är att man hela tiden är beroende av att vara ansluten till ett fysiskt nätverk – vill man exempelvis jobba på tåget eller demonstrera ett projekt hos en kund går det inte.

Den bästa lösningen är därför att använda det virtuella nätverkskortet i Virtual Box.

Virtual Box finns att ladda ner här. Vill du lära dig mer finns det bland annat en mycket en mycket bra användarmanual på engelska som PDF.

Hoppa högst upp på sidan