Нет доступа в Интернет на виртуальных машинах в сети NAT в VirtualBox

14

Я создал сеть NAT в VirtulBox 5 в Ubuntu 14.04 LTS со следующими настройками

Имя Natework:
Сетевой CIDR NatNetwrok1: 10.0.2.0/24
Поддержка DHCP: включена
Поддержка IPv6: отключена
без переадресации портов

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

Прикреплено к: «Сеть NAT»
Имя: «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

Ehsan
источник
Та же проблема ... Может ли кто-нибудь помочь?
monitor35
Недавно я столкнулся с этой проблемой, используя виртуальную коробку 5.0.40 из репозитория Ubuntu по умолчанию. Чтобы обойти это, я настроил каждую виртуальную машину с двумя интерфейсами. Один с внутренней NatNetwork, а другой с использованием режима моста. В гостевой ОС (Ubuntu 16.04) вам необходимо настроить / etc / network / interfaces, чтобы второй интерфейс отображался в гостевой системе. Это позволило каждой виртуальной машине находиться во внутреннем 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
    
MrMeszaros
источник
1
Если у вас установлена ​​предыдущая версия virtualbox, убедитесь, что вы также удалили virtualbox-dkmsэто исправление. В противном случае вы все равно можете застрять без интернета
Барак Иткин
7

Я столкнулся с этим, используя VirtualBox 5.0.40 из репозитория apt по умолчанию. Чтобы обойти это, я настроил каждую виртуальную машину на использование двух сетевых интерфейсов.

  • Адаптер 1: Bridge Addapter (к вашей настоящей славе)
  • Адаптер 2: сеть NAT (на ваш выбор)

В операционной системе guets (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.

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

JulioHM
источник
Мой работал лучше, когда я использовал 'dhcp' для eth0 и eth1. Он просто автоматически назначил 10.0.2.15 для NAT, и мой общедоступный интернет eth1 не имеет IP, но я могу пропинговать интернет с виртуальной машины!
Милан
6

Согласно руководству VirtualBox, это сетевые возможности для ваших виртуальных машин:

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

  • Внутренний: все виртуальные машины с этой конфигурацией будут иметь связь между ними, но не с хостом и не с Интернетом.

  • Только хост: виртуальная сеть будет создана между хостом и всеми виртуальными машинами с этой конфигурацией, но у вас не будет доступа в Интернет.

  • Сеть NAT: вы можете подключиться ко всем виртуальным машинам в одной предварительно заданной сети NAT и к хосту, но не сможете подключиться к Интернету.

  • Мост: Ваша виртуальная машина будет находиться в той же сети, что и ваш хост, как если бы это был другой компьютер / сервер в этой сети, и, следовательно, она будет иметь доступ в Интернет, если ваш хост имеет.

  • Универсальный: расширенная и более специфичная конфигурация, редко используемая.

Итак, если вы хотите создать внутреннюю сеть с подключением к хосту, выберите NAT Network, но обратите внимание, что у вас не будет доступа в Интернет. NAT устанавливается только тогда, когда вы просто хотите доступ в Интернет с вашей виртуальной машины и ничего больше.

Однако ни один из этих параметров не подходит для вас, если вы хотите иметь соединение между виртуальными машинами и Интернетом. Насколько я знаю, ваш единственный выбор - настроить обе виртуальные машины в мостовом режиме, чтобы они были «разными» компьютерами в вашей хост-сети, и вы сможете пропинговать их всех и Интернет из любой из них.

С другой стороны, кажется, что вы клонировали одну ВМ от другой, потому что обе машины имеют одинаковый MAC-адрес ( HWaddr в информации команды ifconfig), помните, что вы должны установить флажок « Повторно инициализировать MAC-адрес всех сетевых карт». "когда клонирование. Два устройства с одинаковым MAC-адресом всегда создают проблемы.

Я не эксперт в VirtualBox, поэтому, возможно, другие пользователи могут сказать вам другие возможные конфигурации, чтобы получить то, что вы хотите. Я надеюсь вы найдете эту информацию полезной.

Для получения дополнительной информации вы можете прочитать это .

Pablo288
источник
3
Неверно, что NAT Network не позволит вашим гостям подключиться к Интернету. Я могу подключиться к Интернету от гостей виртуальной машины в сети NAT. В последнем комментарии на forums.virtualbox.org/viewtopic.php?f=3&t=69504 «Режим NAT означает, что каждая виртуальная машина изолирована за собственным маршрутизатором ... Сеть NAT такая же, как и NAT, за исключением того, что вы можете иметь несколько виртуальных машин. подключен к тому же внутреннему маршрутизатору. "
eebbesen
2

Это может быть ошибка в VirtualBox. Я испытал то же самое (Ubuntu 16.04.2 LTS, VirtualBox 5.0.32_Ubuntu r112930): настроить сеть NAT, настроенную для двух виртуальных машин Ubuntu. Каждая ВМ могла пинговать / SSH в другую, и через переадресацию портов я мог SSH от хоста в каждую ВМ. Но нет доступа в Интернет изнутри виртуальных машин. Коллега попробовал то же самое с хостом Windows, VirtualBox (неизвестная версия) и теми же виртуальными машинами, и это сработало.

В качестве обходного пути я настроил вторую сетевую карту для каждой виртуальной машины: первая использует NAT для доступа к Интернету, вторая - «NAT Network» для доступа к другим гостям. Мне пришлось настроить переадресацию порта SSH на первой (NAT) карте и настроить другой порт SSH на одной виртуальной машине (то есть 2222 -> 22 на VM1, 2223 -> 23 на VM2).

Согласно документации , и NAT, и NAT Network должны иметь доступ к Интернету. Разница заключается в том, что первый разделил гостевые соединения хоста и гостя, поэтому гости не могут получить доступ друг к другу, только к хосту. Последний объединяет всех гостей в одну сеть (и предоставляет такие службы, как DHCP), чтобы они могли обращаться друг к другу.

Инго Каркат
источник