• Дигитални аксесоари
  • сървър
  • Дигитален живот
  • Политика за поверителност
  • Свържете се с нас
  1. Home
  2. Article
  3. Не можете да пингвате VirtualBox? Ръководство за отстраняване на неизправности и решение

Не можете да пингвате VirtualBox? Ръководство за отстраняване на неизправности и решение

Rsdaa 21/11/2021 1283

Ако току-що сте инсталирали гост OS като дистрибуция на Linux, Windows 10 или macOS на VirtualBox и хоствате мрежова услуга на тази виртуална машина, тогава трябва да конфигурирате някои настройки на виртуалната кутия, така че да можете да пингвате към тази виртуална машина и да комуникирате с нея по мрежата от всяка машина във вашата локална мрежа.

Тази статия ви показва промените в конфигурацията, които трябва да направите във вашата виртуална кутия, за да стане възможно. Написах тази статия, имайки предвид напълно начинаещите, така че вместо просто да отговоря на въпроса „какво да направя, за да работи?“ Отговорих и на въпросите „защо не работи?“ и „каква е причината зад настройките по подразбиране?“

Ако сте напреднал потребител или ако просто се интересувате от решението, не се колебайте просто да преминете към раздел 5 „Кратката версия на отговора“, като използвате съдържанието по-долу.

Така че да започваме!

Основи на VirtualBox

Този раздел ви запознава с различната терминология, използвана в останалата част от статията.

Какво е VirtualBox? VirtualBox е приложение за хипервизор, което ни позволява да хостваме операционни системи във виртуализирана среда. С по-прости думи, това е основно приложение, което работи на една операционна система (Хост операционната система) и ни позволява да стартираме други операционни системи (Гост OS) като приложение в рамките на Хост ОС.

Хост ОС може да бъде Windows, Linux или Mac OS, а гостът също може да бъде един от тях. Така че, ако имате Macbook и искате да стартирате някои Windows приложения на него, които не са налични за macOS, тогава можете да го стартирате, като инсталирате Windows във VirtualBox.

Конфигуриране на VirtualBox

Какви са наличните опции за конфигурация във VirtualBox за споделяне на ресурси между хост и гост операционни системи?

VirtualBox ни позволява да разпределяме ресурси за гост OS. Тези ресурси включват следното

RAMCPU ядра, пространство на твърдия диск, мрежа, USB устройства и др.

Можете да стигнете до тези опции, като щракнете върху иконата за настройки, както е показано на изображението по-долу.

Да приемем, че вашият компютър, работещ с Host OS, е лаптоп с Windows 10, който има четириядрен процесор, 16 GB RAM и 1 TB място на твърдия диск. Ако искате да стартирате Linux на него, можете да кажете на приложението за виртуална кутия да му разпредели едно от процесорните ядра, 4 GB RAM и 25 GB пространство на твърдия диск, така че да можете да стартирате и двете операционни системи гладко и едновременно.

Ако желаете да стартирате повече от една ОС за гости, това също е възможно, просто трябва да имате достатъчно ресурси и да ги разпределите по подходящ начин за всяка от ОС за гости, така че да останат достатъчно ресурси за хост ОС, Windows 10 в нашия пример, за да работи гладко.

Освен CPU, RAM и пространство на твърдия диск, можете също да разпределите мрежови ресурси и USB устройства към операционната система за гости.

Мишката и клавиатурата автоматично ще бъдат прехвърлени към операционната система за гости веднага щом поставите фокус върху виртуалната машина, като щракнете върху нея.

Да приемем, че имате друго USB устройство, което трябва да използвате от операционната система за гости. След това, като използвате опциите за конфигуриране, можете да го посочите в настройките, така че специалното USB устройство също да се прехвърли към операционната система за гости, след като го стартирате.

Сега, след като видяхме основните опции за конфигурация на VirtualBox, нека да разгледаме опциите за конфигурация на мрежата, които са основният фокус на тази статия.

Опции за мрежова конфигурация във VirtualBox

Можете да стигнете до опциите за мрежова конфигурация, като щракнете върху раздела Мрежа, както е показано на снимката по-долу.

Това са настройките по подразбиране, които VirtualBox ви предоставя, след като инсталирате която и да е OS за гости на него. Както можете да видите, полето „Прикачено към“ е зададено като NAT.

Значения на тези мрежови опции

Таблицата по-долу показва различните налични опции за полето „Прикачено към“, показано на екранната снимка по-горе, и техните значения

VMHostVM1VM2VM->InternetVMHostOnlyyesyesNoNoInternalNoYesNoNoBridgedYesYesYesYesNATNoNoYes Port forward NATNetNoYesYes Port forward

От <https://forums.virtualbox.org/viewtopic.php?f=6&t=82939>

Както можете да видите в таблицата по-горе, за опцията NAT няма връзка с хоста (ред 4, колона 1). За да разберем защо е така, нека видим какво е NAT, каква е нуждата от NAT, как работи и каква е причината да бъде избран като стандартен от разработчиците на VirtualBox.

Основи на NAT

Какво е NAT? NAT означава превод на мрежови адреси. Това е протокол, който се използва на рутери за превод между 2 комплекта IP адреси, а именно публични и частни IP адреси. Той прави това, използвайки концепцията за препращане на порт.

Необходимост от NAT

Както знаем, IP адресът версия-4 (ipv4) е дълъг 32 бита. Това означава, че можем да имаме до 2^32 комбинации, което означава около 4 294 967 296 или 4 милиарда уникални адреса. Но тъй като живеем в ерата на интернет и всеки от нас има около 5 устройства на човек (офис лаптоп, домашен лаптоп, мобилни телефони, смарт телевизори, настолни компютри, таблети и т.н.), свързани с интернет. Следователно имаме нужда от повече от 4 милиарда адреса, което е възможно чрез ipv4. За да преодолеят този проблем, инженерите излязоха с ipv6 адреси, които са 64-битови адреси, така че можем да имаме около 18,446,744,073,709,551,616 устройства. Това число е повече от броя на песъчинките по всички плажове по света, така че трябва да сме добри с ipv6 в обозримо бъдеще!

Но като всички технологии, адаптирането към ipv6 адреси ще отнеме известно време. Тук се намесва NAT. Ако продължите и напишете в google какъв е моят IP адрес? Ще видите резултат, който е различен от показания, ако въведете командата ifconfig (ако сте на Mac или Linux) или ipconfig (на Windows) на терминала.

Всъщност, ако отидете на което и да е устройство във вашата локална мрежа (LAN) и потърсите в Google какъв е моят IP адрес? ще получите един и същ IP адрес за всички устройства. Това е IP адресът на рутера, предоставен от вашия доставчик на интернет услуги (ISP), а не от вашия компютър.

Това е така, защото в нашите мрежи използваме 2 комплекта IP адреси, а именно частен IP адрес и публичен IP адрес. Рутерът превежда между частни и публични IP адреси, използвайки NAT протокола, така че да може да изпраща резултатите от вашето търсене в Google на вашия компютър, а не на компютъра на вашия колега!

Изображението по-долу показва йерархията на IP адресите и използването на NAT

Как работи NAT?

За да обясня накратко как работи, рутерът следи кой компютър е поискал какъв ресурс с помощта на нещо, наречено таблици за преобразуване на адреси, така че когато се получи мрежов пакет от интернет може да изпрати получените пакети до правилния компютър във вашата локална мрежа.

Надявам се, че сте разбрали необходимостта от NAT и как концептуално работи. Точните механизми на NAT и неговите различни видове са извън обхвата на тази статия, така че нека спрем до тук. Препоръчвам ви да направите повече изследвания за това, ако се интересувате.

Проблемът

Запазвайки настройките по подразбиране, стартирах моята виртуална машина ubuntu и получих нейния IP адрес с помощта на командата ifconfig, както е показано на екранната снимка по-долу.

В Linux inet адресът е IP адресът.

Когато се опитам да изпратя ping до този IP от моята хост ОС (windows10), получавам следните резултати.

Както можем да видим от екранната снимка по-горе, моята хост Windows машина не може да види виртуалната машина в моята мрежа.

Нека опитаме да пингваме по друг начин. Получих IP адреса на моята Windows машина с помощта на командата ipconfig, както е показано на екранната снимка по-долу.

След това се опитах да пингувам този IP от операционната система за гости и можете да видите екранната снимка по-долу.

Както можете да видите на екранната снимка по-долу, пингването от операционната система за гости към операционната система хост е успешно.

Това е така, защото VirtualBox използва протокола NAT за превод между IP адреса на вашата хост ОС и IP адреса на гост ОС.

Причина само едностранното пингване да работи

Част от този NAT протокол е, че NAT ще позволи само мрежов трафик, произхождащ от вътрешната страна на NAT.

Например, когато отворите браузъра си и отидете на google.com, вие изпращате заявка до сървъра на Google от вътрешната страна на NAT (LAN страна) и рутерът изпраща тази заявка напред към сървъра на Google който е във външната страна на NAT (интернет) и след като сървърът изпрати исканата страница обратно, вашият рутер я изпраща обратно на вашия компютър.

Диаграмата по-долу показва йерархията на NAT в типична мрежа, като устройствата са физическите компютри, а vm са виртуалните машини, работещи във физически компютри.

Причина NAT е избран по подразбиране

В типична организация можете да видите няколко компютъра, работещи с множество vm на всеки компютър. Те също така обикновено имат стриктна мрежова политика, която позволява само удостоверени устройства да имат достъп до LAN от съображения за сигурност. Ако разработчиците трябва да говорят с мрежовите администратори всеки път, когато искат да направят виртуална машина, тогава този процес ще стане досаден за всички.

По този начин, като използвате NAT, можете да имате толкова работещи виртуални машини, колкото желаете, и не използвате нито едно от IP адресите във вашата LAN. С други думи, VirtualBox се опитва да създаде подмрежа под вашия локален IP, използвайки NAT, така че

не е нужно да говорите с вашия мрежов администратор всеки път, когато трябва да направите виртуална машина, тези машини остават невидими за другите устройства в LAN.

Необходимост №2 за NAT

Това ни води до Нужда №2 от NAT, която е, че никой извън вашата локална мрежа не може да инициира сесия с вашия компютър и никой от интернет не може да хакне вашия компютър.

Сега нека разширим аналогията с интернет & LAN към вашия хост & гост ОС. По същия начин можете да инициирате сесия от вашата LAN към интернет, но не и обратното, вашата гост ОС може да общува с машини извън NAT, в нашия случай хост ОС, но не и обратното. Надявам се, че разбрахте идеята.

Решението

Но какво ще стане, ако трябва да настроите мрежово приложение като уеб сървър или файлов сървър във виртуалната кутия, така че вашите колеги да имат достъп до него от своите машини? Или може би трябва да влезете във вашата виртуална машина дистанционно през SSH?

След това трябва виртуалната машина да действа като отделен компютър в LAN, както е показано на изображението по-долу.

За да постигнете това, трябва да промените опцията от NAT на Bridged Adapter, както е показано на екранната снимка по-долу.

След като отново промених настройките, стартирах моята виртуална машина ubuntu и получих нейния IP адрес с помощта на командата ifconfig, както е показано на екранната снимка по-долу.

Сега, за да проверите дали работи, отидете отново на командния ред и опитайте да пингвате IP адреса, за да видите дали работи. Когато се опитам да изпратя ping до този IP от моята хост ОС (windows10), получавам следните резултати.

Така че сега мога да изпращам ping към моята гост ОС от моята хост ОС.

Мисията е изпълнена!!

Кратката версия на отговора

За да обобщите решението, трябва да следвате тези стъпки, за да можете да пингвате вашата виртуална машина от всяко друго устройство във вашата мрежа

Стъпка №1: Изберете вашата виртуална машина и щракнете върху настройките

Стъпка №2: Отидете на мрежовите настройки

Стъпка №3: ​​Изберете мостов адаптер

Стъпка №4: Рестартирайте виртуалната машина

Стъпка №5: Вземете IP адреса на виртуалната машина и я проверете, за да видите дали работи!

Това е най-лесното решение просто да оставите виртуалната машина да бъде на същото ниво като другите машини във вашата LAN. Ако правите това с домашната си мрежа, трябва да работи добре. Ако го правите в офиса си, не забравяйте да се свържете с вашия мрежов администратор, за да се уверите, че ще ви отвори IP, ако е необходимо!

Извършихте ли всички стъпки правилно и все още не работи? след това прочетете за още някои настройки, които можете да промените, които може да ви помогнат да работите според нуждите ви.

Други настройки, които може да помогнат

1. Проверете вашите IP настройки

Уверете се, че са в една и съща подмрежа и имат същия DNS и шлюз. Ако DHCP е активиран, тогава виртуалната кутия трябва автоматично да получи правилните IP настройки (dns, gateway и ip адреси)

Какво е DHCP? DHCP означава Dynamic Host Configuration Protocol. Това е мрежов протокол, който присвоява IP настройки на вашето устройство.

Ако е деактивиран във вашата операционна система за гости, опитайте да го активирате и вижте дали това решава проблемите.

Тъй като процесът за промяна на DHCP настройките на всяка операционна система варира много, оставям на вас да потърсите в Google и да разберете как да го промените.

2. Проверете вашата защитна стена

Конфигурирайте настройките на защитната стена на хост ОС, за да дадете всички разрешения на виртуалното приложение box.

Какво е защитна стена? Това е програма, която сканира всички входящи мрежови пакети и разрешава само тези, както е указано от нейните настройки.

Оставям на вас да потърсите в Google и да разберете как да направите това за вашата конкретна хост ОС.

3. Проверете вашия MAC адрес

MAC означава Media Access Control, това е уникален адрес, който се присвоява на всяко хардуерно устройство, което може да се свързва с интернет.

Уверете се, че MAC адресът, както е показан на екранната снимка по-долу, не е дубликат във вашата LAN. С други думи, уверете се, че никой от другите компютри във вашата LAN няма този MAC адрес.

Още няколко заобиколни решения

Решение №1: Опитайте да активирате безразборния режим

Този режим основно пропуска вътрешната обработка на получените пакети и изпраща всички входящи пакети направо към процесора.

Това може да стане чрез промяна на настройките на VirtualBox, както е показано по-долу.

Но бъдете внимателни, тъй като безразборният режим е настроен да отказва по основателна причина, така че никой да не може да хакне нашите машини. Уверете се, че нямате чувствителни данни във вашата виртуална кутия гост OS, ако искате да я включите.

Трябва да сте готови да продължите, докато

рутерът, който свързва вашата локална мрежа с интернет, има добра защитна стена и във вашата локална мрежа няма никакви хакери! Решение № 2: Опитайте да споделите папка

Комбинацията от ОС хост/гост, за която е установено, че работи това решение, е показана по-долу

ОС за гост: Windows XP или 7

Хост ОС: Ubuntu

Добавете поне 1 споделена папка от гост към хост

Но това не е най-доброто решение, тъй като не е практично, тъй като може да стане досадно да споделяте папка с всички настоящи и бъдещи устройства, които може да се наложи да се свържат с мрежовата услуга на вашата виртуална машина.

Ако искате да се свържете само с една или 2 машини, тогава си струва да опитате.

Има други начини да го накарате да работи. Например, ако целта ви е просто да се свържете с вашия VirtualBox чрез SSH и да не позволявате на всички други машини във вашата LAN да виждат вашата виртуална машина, тогава винаги можете да отворите порт 22 в настройките на NAT и да се свържете с него от конкретната машина, която ви интересува и го пазете скрит за всички други машини. Можете да научите повече за това как да постигнете това на тази връзка.

Допълнителен съвет

Още един съвет, преди да завърша тази статия! Опитайте да активирате хардуерна виртуализация в BIOS на вашия хост компютър, ако го поддържа, тъй като това ще увеличи производителността на вашия VirtualBox. Можете да потърсите в Google как да направите това, като потърсите „как да активирате виртуализацията в“

Добре, нека спрем до тук.

Надявам се, че сте научили нещо чрез тази публикация и се надявам, че ви е било полезно.

Можете да ни изпратите имейл или да се свържете с нас чрез тази връзка, ако имате въпроси или предложения.

Ако ви е харесала публикацията, не се колебайте да я споделите с вашите приятели и колеги!


PREV: Ръководство за Rust „Wipe Day“ – GameserverKings

NEXT: Как да: Хоствате свой собствен Rust сървър — Rustafied

Popular Articles

Hot Articles

Navigation Lists

Back to Top