Немає доступу до Інтернету через віртуальних машин в мережі NAT у VirtualBox


14

Я створив NAT-мережу в VirtulBox 5 In Ubuntu 14.04 LTS з наступними налаштуваннями

Назва Natework: NetworkNidwrok1
Network CIDR: 10.0.2.0/24
Підтримка DHCP: включена
підтримка IPv6: відключена
без переадресації портів

Крім того, у мене є два VM (обидва клони Xubuntu), я встановив мережеві настройки, щоб увімкнути два NIC на кожному з VM з наступними налаштуваннями у всіх чотирьох адаптерах:

Додано до: "NAT Network"
Назва: "NatNetwrok1"

Коли я запускаю обидва віртуальних машин, я бачу наступні налаштування роботи команди ifconfig

ifconfig результати на Xubuntu1

eth0      Link encap:Ethernet  HWaddr 08:00:27:00:8c:03  
          inet addr:10.0.2.9  Bcast:10.0.2.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fe00:8c03/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:43 errors:0 dropped:0 overruns:0 frame:0
          TX packets:47 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:12133 (12.1 KB)  TX bytes:8517 (8.5 KB)

eth1      Link encap:Ethernet  HWaddr 08:00:27:9e:20:e8  
          inet addr:10.0.2.8  Bcast:10.0.2.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fe9e:20e8/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:43 errors:0 dropped:0 overruns:0 frame:0
          TX packets:48 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:10294 (10.2 KB)  TX bytes:8798 (8.7 KB)

ifconfig призводить до Xubutracentu2

eth0      Link encap:Ethernet  HWaddr 08:00:27:00:8c:03  
          inet addr:10.0.2.9  Bcast:10.0.2.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fe00:8c03/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:43 errors:0 dropped:0 overruns:0 frame:0
          TX packets:47 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:12133 (12.1 KB)  TX bytes:8517 (8.5 KB)

eth1      Link encap:Ethernet  HWaddr 08:00:27:9e:20:e8  
          inet addr:10.0.2.8  Bcast:10.0.2.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fe9e:20e8/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:43 errors:0 dropped:0 overruns:0 frame:0
          TX packets:48 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:10294 (10.2 KB)  TX bytes:8798 (8.7 KB)

Пінг між цими 4-ма IP-адресами працює добре,
але я не можу отримати доступ до Інтернету на жодних із цих віртуальних машин.
Хоча якщо змінити “NAT Network” на “NAT”, я можу отримати доступ до мережі, але, здається, я став частиною іншої віртуальної мережі, і я не можу пінгувати вони можуть один від одного
Чи може хто-небудь допомогти мені у виявленні та вирішенні проблеми

Чи може хтось також пояснити, в чому різниця між NAT та NAT Network


Те саме питання ... Може хтось допоможе?
монітор35

Нещодавно я зіткнувся з цією проблемою, використовуючи віртуальну коробку 5.0.40 від ubuntu repo за замовчуванням. Щоб обійти його, я налаштував кожен VM з двома інтерфейсами. Один із внутрішнім NatNetwork, а другий з використанням мостового режиму. У гостьовій ОС (ubuntu 16.04) вам потрібно буде налаштувати / etc / network / інтерфейси для того, щоб другий інтерфейс з’явився у гостя. Це дало можливість кожному ВМ бути у внутрішній NAT і одночасно мати доступ до Інтернету.
JulioHM

Відповіді:


7

Чому б не працювати?

В 16.04 (і , можливо , 14.04) мережі NAT , особливість основний упакованої версії VirtualBox (5.0.36) буде прослуховуватися .

Перевір це!

Ви можете перевірити це самостійно: якщо ls /usr/lib/virtualbox/VBoxNetNATвиконуваний файл є, то у вас може виникнути інша проблема.

Полагодити!

Ця помилка виправлена ​​в нових версіях. Тож вам слід встановити нову версію:

Видалити стару версію

Наприклад, якщо ви встановили за допомогою, aptви можете запустити:

sudo apt remove virtualbox --auto-remove

Встановіть нову версію

Виправлення доступне для нових версій (Ubuntu yakkety +). Для старих версій:

  • Відвідайте virtualbox.org та завантажте найновішу версію вручну
  • АБО
  • Використовуйте такий сценарій:

    # add the official repository
    wget -q -O - https://www.virtualbox.org/download/oracle_vbox_2016.asc | sudo apt-key add -
    echo deb http://download.virtualbox.org/virtualbox/debian `lsb_release -cs` non-free contrib | sudo tee /etc/apt/sources.list.d/virtualbox.org.list
    # install the newer version
    sudo apt install virtualbox-5.1
    

1
Якщо у вас встановлена ​​попередня версія віртуальної скриньки, переконайтеся, що ви також видалили virtualbox-dkmsцю помилку . В іншому випадку ви все ще можете застрягнути без Інтернету
Барак Іткін

7

Я наткнувся на це за допомогою VirtualBox 5.0.40 з підходящого сховища apt. Щоб обійти його, я налаштував кожну віртуальну машину для використання двох мережевих інтерфейсів.

  • Адаптер 1: Адаптер мосту (до вашого справжнього ніку)
  • Адаптер 2: NAT Network (на ваш вибір)

Під Gets OS (Ubuntu 16.04) вам потрібно буде налаштувати, /etc/network/interfacesщоб з’явився другий інтерфейс. У моєму випадку мені знадобилися віртуальні машини для використання статичних IP-адрес всередині мережі NAT, тому я це і отримав.

## Bridge to Internet
auto enp0s3
iface enp0s3 inet dhcp

## NAT Network among VMs
## Static is optional
## DHCP if you don't need it
auto enp0s8
iface enp0s8 inet static
  address 10.10.11.100
  netmask 255.255.255.0

Це, звичайно, передбачає, що моя мережа NAT використовує підмережу 10.10.11.0/24. Адаптуйте номери до свого сценарію або просто залиште його на dhcp, як хочете.

ПРИМІТКА. У статичному конфігурації слід зауважити, що для цього конкретного сценарію ви не можете призначити його шлюзом за замовчуванням. Якщо enp0s8встановити за замовчуванням (наприклад, 10.10.11.1), ОС призведе до створення маршруту до цього шлюзу, і цей маршрут також може накрутити ваш доступ до Інтернету. Вам слід це робити лише тоді, коли для цього конкретного інтерфейсу потрібні маршрути до інших мереж, окрім конфігурованих для нього.

Дізнатися імена інтерфейсу, призначені Ubuntu для вашого середовища, ви можете dmesg | grep eth.

введіть тут опис зображення


Моя працювала краще, коли я використовував 'dhcp' як для eth0, так і для eth1. Це просто автоматично призначено 10.0.2.15 для NAT, і мій загальнодоступний Інтернет eth1 не має IP-адреси, але я можу пінтувати Інтернет від VM!
Мілін

6

Відповідно до посібника VirtualBox, це мережеві можливості для ваших віртуальних машин:

  • NAT: Внутрішня мережа між VM та хостом. Крім того, ви можете отримати доступ до Інтернету. Два або більше віртуальних машин у режимі NAT не мають зв'язку між ними, лише з хостом і Інтернетом.

  • Внутрішня. Усі віртуальні пристрої з цією конфігурацією матимуть зв’язок між ними, але не з хостом чи Інтернетом.

  • Тільки хост: між хостом та всіма віртуальними машинами з цією конфігурацією буде створена віртуальна мережа, але у вас не буде доступу до Інтернету.

  • NAT Network: Ви можете отримати доступ до всіх віртуальних машин у одній заздалегідь визначеній NAT мережі та хості, але ви не зможете підключитися до Інтернету.

  • З'єднано: Ваш VM буде перебувати в тій самій мережі, що і ваш хост, як якщо б це був інший комп'ютер / сервер у цій мережі, і, таким чином, він матиме доступ до Інтернету, якщо у вашого хоста.

  • Загальне: розширена та більш конкретна конфігурація використовується рідко.

Отже, якщо ви хочете створити внутрішню мережу з підключенням до хоста, виберіть NAT Network, але зауважте, що у вас не буде доступу до Інтернету. NAT встановлюється лише тоді, коли ви просто хочете отримати доступ до Інтернету зі свого віртуального комп'ютера та нічого іншого.

Однак жоден із цих налаштувань з вами не в порядку, якщо ви хочете мати будь-який зв'язок між віртуальними машинами та Інтернетом. Наскільки я знаю, ваш єдиний вибір - налаштувати обидва VM в мостовому режимі, тож вони будуть "різними" комп’ютерами у вашій хост-мережі, і ви зможете відстежувати їх усі та Інтернет з будь-якого з них.

З іншого боку, вам здається, що ви клонували один VM з іншого, оскільки обидві машини мають однакову MAC-адресу ( HWaddr у інформації про команду ifconfig), майте на увазі, що ви повинні встановити прапорець, який пише: " Повторно ініціалізуйте MAC-адресу всіх мережевих карт "при клонуванні. Два пристрої з однаковою MAC-адресою завжди створюють проблеми.

Я не є експертом у VirtualBox, тому, можливо, інші користувачі можуть сказати вам інші можливі конфігурації, щоб отримати те, що ви хочете. Сподіваюсь, ви вважаєте цю інформацію корисною.

Для отримання додаткової інформації ви можете прочитати це .


3
Неправда, що NAT Network заважає вашим гостям підключатися до Інтернету. Я можу підключитися до Інтернету від гостей VM в мережі NAT. Відповідно до останнього коментаря на forums.virtualbox.org/viewtopic.php?f=3&t=69504 , "режим NAT означає, що кожен VM є ізольованим за власним маршрутизатором ... NAT Network така ж, як NAT, за винятком того, що у вас може бути кілька VM підключений до того ж внутрішнього маршрутизатора. "
eebbesen

2

Це може бути помилка у VirtualBox. Я пережив те саме (Ubuntu 16.04.2 LTS, VirtualBox 5.0.32_Ubuntu r112930): Налаштуйте NAT-мережу, налаштовану для двох VM-файлів Ubuntu. Кожен VM міг пінг / SSH в інший, і за допомогою переадресації портів я міг SSH від хоста до кожної VM. Але немає доступу до Інтернету зсередини віртуальних машин. Колега спробував те ж саме з хостом Windows, VirtualBox (невідома версія) та тими ж VM, і це спрацювало.

Для вирішення проблеми я налаштував другу мережеву карту для кожного VM: перша використовує NAT для доступу до Інтернету, друга використовує NAT Network для доступу до інших гостей. Мені довелося налаштувати перенаправлення порту SSH на першій (NAT) картці та налаштувати інший порт SSH на одній VM (тобто 2222 -> 22 на VM1, 2223 -> 23 на VM2).

Виходячи з документації , і NAT, і NAT мережа повинні мати доступ до Інтернету. Різниця полягає в тому, що перший має відокремлене з'єднання між хостом і гостями, тому гості не можуть отримати доступ один до одного, лише хост. Останній об'єднує всіх гостей в єдину мережу (і надає такі послуги, як DHCP), щоб вони мали доступ один до одного.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.