Pokud jste právě nainstalovali hostující OS, jako je distribuce Linuxu, Windows 10 nebo macOS na VirtualBox a na tomto virtuálním počítači hostujete nějakou síťovou službu, musíte nakonfigurovat některá nastavení na virtuálním boxu, abyste mohli pingnout na tento virtuální počítač a komunikovat s ním po síti z libovolného počítače ve vaší místní síti.
V tomto článku jsou uvedeny změny konfigurace, které je třeba provést na vašem virtuálním boxu, aby to bylo možné. Tento článek jsem napsal s ohledem na úplné začátečníky, takže místo pouhé odpovědi na otázku „co udělat, aby to fungovalo?“ Odpověděl jsem také na otázky "proč to nefunguje?" a „Jaký je důvod výchozího nastavení?“
Jste-li pokročilý uživatel nebo máte o řešení pouze zájem, můžete pomocí níže uvedeného obsahu přeskočit na část 5 „Krátká verze odpovědi“.
Takže začneme!
V této části se seznámíte s různými terminologiemi používanými ve zbytku článku.
Co je VirtualBox? VirtualBox je hypervisorová aplikace, která nám umožňuje hostovat operační systémy ve virtualizovaném prostředí. Jednodušeji řečeno, je to v podstatě aplikace, která běží na jednom operačním systému (The Host Operating System) a umožňuje nám spouštět další operační systémy (Guest OS) jako aplikaci v rámci hostitelského OS.
Hostitelský OS může být Windows, Linux nebo Mac OS a hostem může být také jeden z nich. Pokud tedy máte Macbook a chcete na něm spouštět některé aplikace pro Windows, které nejsou dostupné pro macOS, můžete jej spustit instalací Windows do VirtualBoxu.
Jaké jsou možnosti konfigurace dostupné ve VirtualBoxu pro sdílení prostředků mezi hostitelským a hostujícím OS?
VirtualBox nám umožňuje alokovat zdroje pro hostující OS. Tyto zdroje zahrnují následující
Jádra RAMCPU Prostor na pevném disku Síťová zařízení USB atd.K těmto možnostem se dostanete kliknutím na ikonu nastavení, jak je znázorněno na obrázku níže.
Předpokládejme, že váš počítač s hostitelským operačním systémem je notebook se systémem Windows 10, který má čtyřjádrový procesor, 16 GB paměti RAM a 1 TB místa na pevném disku. Pokud na něm chcete provozovat Linux, můžete aplikaci virtuální krabice sdělit, aby jí přidělila jedno z procesorových jader, 4 GB RAM a 25 GB místa na pevném disku, abyste mohli oba tyto operační systémy spouštět hladce a současně.
Pokud si přejete provozovat více než jeden hostující OS, pak je to také možné, stačí mít dostatek prostředků a vhodně je přidělit každému hostujícímu OS, aby zbylo dostatek prostředků pro hostitelský OS, Windows 10 v našem příkladu, aby běžel hladce.
Kromě CPU, RAM a místa na pevném disku můžete hostujícímu OS také přidělit síťové zdroje a zařízení USB.
Myš a klávesnice se automaticky přenesou do hostujícího operačního systému, jakmile na virtuální počítač kliknete.
Předpokládejme, že máte další USB zařízení, které potřebujete použít z hostujícího operačního systému. Poté pomocí možností konfigurace jej můžete určit v nastavení, aby se speciální USB zařízení také přeneslo do hostujícího operačního systému, jakmile jej spustíte.
Nyní, když jsme viděli základní možnosti konfigurace VirtualBoxu, pojďme se dále podívat na možnosti konfigurace sítě, na které se tento článek zaměřuje.
K možnostem konfigurace sítě se dostanete kliknutím na kartu Síť, jak je znázorněno na obrázku níže.
Toto jsou výchozí nastavení, která vám VirtualBox poskytuje, jakmile na něj nainstalujete jakýkoli hostující OS. Jak můžete vidět, pole „Attached to“ je nastaveno jako NAT.
V tabulce níže jsou uvedeny různé dostupné možnosti pro pole Připojeno k zobrazenému na snímku obrazovky výše a jejich význam
VMHostVM1VM2VM->InternetVMHostOnlyyesyesNeNoInternalNoYesNoNoBridgedYesYesYesYesNATNoNeYes Přesměrování portu NATNetNeAnoAno Přesměrování portuZ <https://forums.virtualbox.org&viewtopic.php=8299&
Jak můžete vidět v tabulce výše, pro možnost NAT neexistuje žádné připojení k hostiteli (řádek 4, sloupec 1). Abychom pochopili, proč tomu tak je, podívejme se, co je NAT, jaká je potřeba NAT, jak funguje a jaký je důvod, proč jej vývojáři VirtualBoxu vybrali jako výchozí.
Co je NAT?NAT znamená překlad síťových adres. Jedná se o protokol, který se používá na routerech k překladu mezi 2 sadami IP adres, jmenovitě veřejnou a privátní IP adresou. Dělá to pomocí konceptu přesměrování portů.
Jak víme, adresa IP verze 4 (ipv4) je dlouhá 32 bitů. To znamená, že můžeme mít až 2^32 kombinací, což odpovídá přibližně 4 294 967 296 nebo 4 miliardám unikátních adres. Jelikož ale žijeme v době internetu a každý z nás má k internetu připojeno asi 5 zařízení na osobu (kancelářský notebook, domácí notebook, mobilní telefony, chytré televize, stolní počítače, tablety atd.). Potřebujeme tedy více než 4 miliardy adres, což je možné prostřednictvím ipv4. Aby se tento problém vyřešil, inženýři přišli s adresami ipv6, které jsou 64bitové, takže můžeme mít přibližně 18 446 744 073 709 551 616 zařízení. Toto číslo je větší než počet zrnek písku na všech plážích po celém světě, takže v dohledné době bychom měli být s ipv6 dobří!
Ale stejně jako všechny technologie bude adaptace na adresy ipv6 nějakou dobu trvat. Zde přichází na řadu NAT. Pokud budete pokračovat a zadáte do google, jaká je moje IP? Pokud na terminálu zadáte příkaz ifconfig (pokud používáte Mac nebo Linux) nebo ipconfig (na Windows), uvidíte výsledek, který se liší od toho, který je zobrazen.
Ve skutečnosti, pokud přejdete na jakékoli zařízení ve vaší místní síti (LAN) a vygooglujete, jakou mám IP?, získáte stejnou IP adresu pro všechna zařízení. Toto je IP adresa routeru poskytnutá vaším poskytovatelem internetových služeb (ISP), nikoli vaším počítačem.
Je to proto, že v našich sítích používáme 2 sady IP adres, a to soukromou IP adresu a veřejnou IP adresu. Router překládá mezi soukromou a veřejnou IP adresou pomocí protokolu NAT, takže může odeslat výsledky vašeho vyhledávání Google do vašeho počítače a ne do počítače vašeho kolegy!
Obrázek níže ukazuje hierarchii IP adres a použití NAT
Aby bylo stručně vysvětleno, jak to funguje, router sleduje, který počítač požadoval jaký zdroj pomocí něčeho, čemu se říká tabulky překladu adres, takže když je přijat síťový paket ze internet může odeslat přijaté pakety do správného počítače ve vaší místní síti.
Doufám, že jste pochopili potřebu NAT a jak koncepčně funguje. Přesné mechanismy NAT a jeho různé typy jsou nad rámec tohoto článku, takže se zde zastavme. Pokud máte zájem, doporučuji vám o tom více prozkoumat.
Při zachování výchozího nastavení jsem spustil svůj virtuální počítač ubuntu a získal jsem jeho IP pomocí příkazu ifconfig, jak je znázorněno na obrázku níže.
V systému Linux je adresa inet adresa IP.
Když se pokusím pingnout na tuto IP z mého hostitelského operačního systému (windows10), dostanu následující výsledky.
Jak vidíme na výše uvedeném snímku obrazovky, můj hostitelský počítač se systémem Windows nevidí virtuální počítač v mé síti.
Zkusme ping jinak. Získal jsem IP svého počítače se systémem Windows pomocí příkazu ipconfig, jak je znázorněno na obrázku níže.
Potom jsem zkusil pingnout tuto IP z hostujícího OS a můžete vidět snímek obrazovky níže.
Jak můžete vidět na níže uvedeném snímku obrazovky, ping z hostujícího OS na hostitelský OS je úspěšný.
Je to proto, že VirtualBox používá k překladu mezi IP hostitelského operačního systému a IP hostujícího operačního systému protokol NAT.
Součástí tohoto protokolu NAT je, že NAT povolí pouze síťový provoz pocházející z vnitřní strany NAT.
Když například otevřete prohlížeč a přejdete na stránku google.com, odešlete požadavek na server google z vnitřní strany NAT (strana LAN) a router odešle tento požadavek dál na server Google který je na vnější straně NAT (internetu) a jakmile server odešle požadovanou stránku zpět, váš router ji odešle zpět do vašeho počítače.
Diagram níže ukazuje hierarchii NAT v typické síti se zařízeními jako fyzickými počítači a virtuálními stroji běžícími ve fyzických počítačích.
V typické organizaci můžete vidět několik počítačů s několika virtuálními počítači na každém počítači. Obvykle mají také přísnou síťovou politiku, která z bezpečnostních důvodů umožňuje přístup do LAN pouze ověřeným zařízením. Pokud vývojáři potřebují mluvit se správci sítě pokaždé, když chtějí vytvořit virtuální stroj, pak bude tento proces pro každého únavný.
Pomocí NAT tedy můžete mít spuštěno tolik virtuálních strojů, kolik chcete, a nevyužíváte žádnou z IP adres ve vaší LAN. Jinými slovy, VirtualBox se pokusí vytvořit podsíť pod vaší místní IP pomocí NAT, aby
nemusíte mluvit se svým správcem sítě pokaždé, když potřebujete zajistit, aby VM tyto stroje zůstaly neviditelné pro ostatní zařízení v síti LAN.To nás přivádí k Potřeba č. 2 NAT, což je, že nikdo mimo vaši LAN nemůže zahájit relaci s vaším počítačem a nikdo z internetu nemůže hacknout váš počítač.
Nyní rozšíříme analogii internetu a amp; LAN k vašemu hostiteli & hostující OS. Stejným způsobem můžete zahájit relaci z vaší LAN k internetu, ale ne naopak, váš hostující OS může mluvit se stroji na vnější straně NAT, v našem případě s hostitelským OS, ale ne s jinak. Doufám, že jsi pochopil pointu.
Co když ale potřebujete nastavit síťovou aplikaci, jako je webový server nebo souborový server, uvnitř virtuální schránky, aby k ní měli vaši kolegové přístup ze svých počítačů? Nebo se možná potřebujete přihlásit ke svému virtuálnímu počítači vzdáleně přes SSH?
Potom potřebujete, aby virtuální počítač fungoval jako samostatný počítač v síti LAN, jak je znázorněno na obrázku níže.
Abyste toho dosáhli, musíte změnit možnost z NAT na Bridged Adapter, jak je znázorněno na snímku obrazovky níže.
Po opětovné změně nastavení jsem spustil svůj virtuální počítač ubuntu a získal jsem jeho IP pomocí příkazu ifconfig, jak je znázorněno na obrázku níže.
Nyní otestujte, zda to funguje, přejděte znovu na příkazový řádek a zkuste zadat příkaz ping na IP, abyste zjistili, zda to funguje. Když se pokusím pingnout na tuto IP z mého hostitelského OS (windows10), dostanu následující výsledky.
Takže nyní mohu pingnout na můj hostující OS z mého hostitelského OS.
Mise splněna!!
Aby bylo možné shrnout řešení, musíte provést následující kroky, abyste mohli pingnout svůj virtuální počítač z jakéhokoli jiného zařízení ve vaší síti
Krok č. 1: Vyberte svůj virtuální počítač a klikněte na nastavení
Krok č. 2: Přejděte do nastavení sítě
Krok č. 3: Vyberte možnost Bridged adapter
Krok č. 4: Restartujte virtuální počítač
Krok č. 5: Získejte IP adresu virtuálního počítače a pingněte na něj, abyste zjistili, zda funguje!
Toto je nejjednodušší řešení, jak nechat virtuální stroj na stejné úrovni jako ostatní stroje ve vaší LAN. Pokud to děláte s domácí sítí, mělo by to fungovat dobře. Pokud to děláte ve své kanceláři, nezapomeňte se ohlásit u svého správce sítě, abyste se ujistili, že vám v případě potřeby otevře IP!
Proběhly všechny kroky správně a stále to nefunguje? pak si přečtěte další nastavení, která můžete změnit a která by mohla pomoci, aby to fungovalo tak, jak potřebujete.
Ujistěte se, že jsou ve stejné podsíti a mají stejný DNS a bránu. Pokud je povoleno DHCP, měl by virtuální box automaticky získat správná nastavení IP (dns, brána a IP adresy)
Co je DHCP? DHCP je zkratka pro Dynamic Host Configuration Protocol. Je to síťový protokol, který vašemu zařízení přiřadí nastavení IP.
Pokud je ve vašem hostujícím operačním systému deaktivována, zkuste ji povolit a zjistěte, zda to problém nevyřeší.
Protože se proces změny nastavení DHCP v jednotlivých operačních systémech velmi liší, nechám to na vás, abyste vygooglili a zjistili, jak to změnit.
Nakonfigurujte nastavení brány firewall v hostitelském operačním systému tak, aby udělila všechna oprávnění virtuální aplikaci boxapp.
Co je firewall? Je to program, který prohledá všechny příchozí síťové packery a povolí pouze ty, které mu nařizuje jeho nastavení.
Nechám na vás, abyste vyhledali Google a zjistili, jak to udělat pro váš konkrétní hostitelský operační systém.
MAC je zkratka pro Media Access Control, je to jedinečná adresa, která je přiřazena každému hardwarovému zařízení schopnému připojení k internetu.
Ujistěte se, že adresa MAC zobrazená na obrázku níže není duplicitní ve vaší síti LAN. Jinými slovy, ujistěte se, že žádný z ostatních počítačů ve vaší LAN nemá tuto MAC adresu.
Tento režim v podstatě vynechává interní zpracování přijatých paketů a posílá všechny příchozí pakety přímo do CPU.
To lze provést změnou nastavení VirtualBoxu, jak je uvedeno níže.
Buďte ale opatrní, protože promiskuitní režim je z dobrého důvodu nastaven na odmítnutí, aby se nikdo nemohl nabourat do našich strojů. Pokud si jej přejete zapnout, ujistěte se, že v hostujícím OS virtuální schránky nemáte citlivá data.
Měli byste jít tak dlouho
router, který připojuje vaši LAN k internetu, má dobrý firewall a vaše LAN nemá žádné hackery! Slovo č. 2: Zkuste sdílet složkuKombinace hostitelského/hostujícího OS, ve které toto řešení funguje, je uvedena níže
Hostující OS: Windows XP nebo 7
Hostitelský OS: Ubuntu
Přidejte alespoň 1 sdílenou složku z hosta do hostitele
To však není nejlepší řešení, protože není praktické, protože sdílení složky se všemi současnými i budoucími zařízeními, která se mohou potřebovat připojit k síťové službě vašeho virtuálního počítače, může být únavné.
Pokud se chcete připojit pouze k jednomu nebo 2 počítačům, stojí za to to zkusit.
Existují další způsoby, jak to uvést do provozu. Pokud je například vaším cílem pouze se připojit k vašemu VirtualBoxu pomocí SSH a nenechat všechny ostatní stroje ve vaší LAN vidět váš virtuální stroj, můžete vždy otevřít port 22 v nastavení NAT a připojit se k němu z konkrétního počítače, který vás zajímá. a skryjte jej pro všechny ostatní stroje. Více o tom, jak toho dosáhnout, se můžete dozvědět na tomto odkazu.
Před uzavřením tohoto článku ještě jeden tip! Zkuste povolit virtualizaci hardwaru v BIOSu hostitelského počítače, pokud ji podporuje, protože to zvýší výkon vašeho VirtualBoxu. Můžete vygooglovat, jak to udělat, vyhledáním „jak povolit virtualizaci v“
Dobře, tady se zastavíme.
Doufám, že jste se z tohoto příspěvku něco naučili a doufám, že pro vás byl užitečný.
Pokud máte nějaké dotazy nebo návrhy, můžete nám poslat e-mail nebo nás kontaktovat prostřednictvím tohoto odkazu.
Pokud se vám příspěvek líbil, neváhejte jej sdílet se svými přáteli a kolegy!
PREV: Průvodce Rustem "Wipe Day" - GameserverKings
NEXT: Jak na to: Hostovat svůj vlastní server Rust — Rustafied