Я пытаюсь настроить виртуальную машину в VirtualBox в Linux (Fedora 22). Его сеть должна иметь следующие свойства:

  • IP-адрес 192.168.1.2/24
  • Шлюз по умолчанию - 192.168.1.1
  • Нет DHCP
  • Сетевое подключение к внешнему миру

Не требуется, чтобы другие системы в моей сети могли подключаться к виртуальной машине. Консоли VirtualBox пока хватит.

Сначала я попробовал драйвер "NAT", но не могу понять, как заставить его использовать 192.168.1.1 в качестве шлюза по умолчанию. У меня он обслуживает адреса DHCP в 192.168.1.0/24, но он настаивает на использовании 192.168.1.2 в качестве шлюза. Я также попытался использовать драйвер "NAT Network", используя диапазон сети 192.168.1.0/24 и отключенный DHCP (как описано на https://virtualbox.org/manual/ch06.html#network_nat_service); после ручной настройки сетевого адреса и маршрута по умолчанию в моей виртуальной машине я не получаю подключения к восходящему каналу и не могу даже использовать ARP 192.168.1.1. Если я использую "Сеть NAT" с включенным DHCP, он снова использует 192.168.1.2 в качестве шлюза по умолчанию, и я все еще не получаю подключение к восходящему каналу. Драйвер Bridged Adapter не подходит, потому что виртуальная машина размещена на компьютере, который использует другой диапазон сети (172.16.1.0/24).

На данный момент ОС внутри виртуальной машины - это образ установочного компакт-диска Gentoo. Конечная цель этой виртуальной машины - быть тестовой средой для производственного устройства; следовательно, он должен использовать ту же конфигурацию сети, что и реальное устройство.

Любые предложения о том, как заставить это работать?

Изменить: Кажется, что VirtualBox не может сделать это, по крайней мере, не перепрыгивая через много обручей, таких как внесение изменений в настройки сети хоста или добавление второй виртуальной машины, чтобы действовать в качестве шлюза по умолчанию для первого. Я думаю, мне придется попробовать другой менеджер VM.

2 ответа2

0

Хотя на первый взгляд это может показаться нелогичным, сеть, которая необходима для решения вашей проблемы, - это только Хост: она единственная, которая позволяет вам контролировать каждый аспект соединения. Я предполагаю, что вы используете какой-то вариант Linux как в качестве хоста, так и в качестве гостя, если нет, пожалуйста, адаптируйтесь соответственно.

Перед настройкой виртуальной машины в графическом интерфейсе VirtualBox выберите Файл -> Параметры -> Сеть -> Сети только для хоста. Добавьте одну такую сеть, нажав знак «плюс» в правой части окна. Появится новая сеть с именем vboxnet0 , теперь нажмите на отвертку. Под IPv4-адресом пишите 192.168.1.1 , под маской - 255.255.255.0 . Теперь нажмите DHCP-сервер и убедитесь, что он отключен.

На хосте вы сейчас увидите

            ip addr show

что у вас есть новый интерфейс с именем vboxnet0. Убедитесь, что вы правильно перенаправляете запросы от виртуальной машины, выпуская (как sudo)

   echo 1 > /proc/sys/net/ipv4/ip_forward
   iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

(при этом предполагается, что ваш хост подключен к Интернету через интерфейс eth0 , если не изменяется соответствующим образом).

Теперь вернитесь к графическому интерфейсу VirtualBox, выберите свою виртуальную машину, затем Сеть -> Адаптер 1 -> Включить сетевой адаптер, в разделе Attached to выберите адаптер только для хоста и в поле Name выберите vboxnet0.

Загрузите виртуальную машину, затем установите статический IP-адрес. Это зависит от гостевой ОС. Я просто покажу вам, как это сделать в Linux, если у вас есть Windows или Mac OS X, и вы не знаете, как это сделать, вам придется искать это с помощью Googling, это не сложно.

Введите следующие команды, всегда как sudo:

    ip link set dev eth0 down
    ip addr flush dev eth0
    ip addr add 192.168.1.2/24 dev eth0 
    ip link set dev eth0 up
    ip route add default via 192.168.1.1
    echo nameserver 8.8.8.8 >> /etc/resolv.conf
    echo nameserver 8.8.4.4 >> /etc/resolv.conf

Выше предполагается, что ваш основной интерфейс в виртуальной машине называется eth0, если нет, пожалуйста, измените соответствующим образом. Все вышеперечисленное можно легко написать в сценарии, но это зависит от дистрибутива Linux. Тебе хорошо идти.

-1

В виртуальной коробке ваш физический компьютер, т.е. HOST, будет вашим шлюзом. Если вы хотите изменить свой шлюз, попробуйте настроить адаптер виртуальной коробки HOST по своему усмотрению. Если вы включили NAT и хотите общаться извне с вашим виртуальным компьютером, вам нужно создать запись перевода в virtualbox.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .