DevOps

Настройка сети VirtualBox: связь хоста и гостя

Пошаговое руководство по настройке сетевого соединения в VirtualBox между хост-системой Ubuntu и виртуальной машиной. Решение проблем с пингом в режиме сетевого моста, Host-Only, NAT и устранение неполадок с брандмауэром.

5 ответов 1 просмотр

Как настроить сетевое соединение между хост-системой и виртуальной машиной в VirtualBox для обеспечения взаимной доступности по сети?

Я установил VirtualBox на Ubuntu Desktop 24 и создал виртуальную машину с Ubuntu Server. В настройках сети виртуальной машины я указал тип подключения “сетевой мост” и имя интерфейса enp03s25, а также подключил виртуальный кабель. На хост-системе я назначил IP-адрес 192.168.0.1 с маской подсети 255.255.255.0 для сетевой карты enp03s25. В виртуальной машине я назначил IP-адрес 192.168.0.2. Однако ни хост-система, ни виртуальная машина не могут пинговать друг друга. Что я делаю не так в настройке сети VirtualBox?

Настройка сетевого соединения между хост-системой и виртуальной машиной в VirtualBox требует правильного выбора режима сети и конфигурации IP-адресации. Основная проблема с невозможностью пинга между системами в режиме “сетевой мост” часто связана с настройкой брандмауэра, выбором неверного сетевого интерфейса или конфликтом IP-адресов. Для решения этой проблемы следует проверить настройки брандмауэра, убедиться в правильности выбора сетевого интерфейса и убедиться, что обе системы находятся в одной подсети с корректными масками.


Содержание


Основные режимы сети в VirtualBox: обзор и применение

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

Режим NAT (Network Address Translation) - это режим по умолчанию, при котором виртуальная машина получает доступ в интернет через хост-систему, но является невидимой для локальной сети. В этом режиме хост-система может пинговать виртуальную машину, но виртуальная машина не может инициировать соединение с хост-системой или другими устройствами в сети.

Режим Bridged (Сетевой мост) создает прямое соединение между виртуальной машиной и физическим сетевым интерфейсом хост-системы. В режиме моста виртуальная машина получает IP-адрес от вашего роутера и становится полностью видимым устройством в локальной сети, как если бы это был отдельный компьютер. Это идеальный режим для сценариев, когда виртуальная машина должна быть доступна как из хост-системы, так и из других устройств в сети.

Режим Host-Only (Только для хоста) создает изолированную сеть между хост-системой и виртуальной машиной. В этом режиме виртуальная машина может общаться с хост-системой, но не имеет доступа в интернет или к другим устройствам в сети. Этот режим полезен для разработки и тестирования в изолированной среде.

Режим Internal (Внутренний) создает полностью изолированную сеть, в которой могут участвовать только виртуальные машины, но хост-система не имеет к ней доступа.

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

При выборе режима сети для вашей конфигурации с Ubuntu Desktop 24 и Ubuntu Server, режим “сетевой мост” является наиболее подходящим для обеспечения взаимной доступности между системами.


Настройка мостового режима (Bridged Adapter) для связи хоста и гостя

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

Правильная настройка мостового режима:

  1. Откройте VirtualBox Manager и выберите вашу виртуальную машину
  2. Перейдите в настройки виртуальной машины → Сеть
  3. Включите сетевой адаптер (Adapter 1)
  4. Выберите тип подключения: “Сетевой мост” (Bridged Adapter)
  5. В поле “Имя интерфейса” выберите ваш физический сетевой интерфейс (в вашем случае enp03s25)
  6. Подключите виртуальный кабель (флажок “Подключен”)
Настройка сетевого моста в VirtualBox

Настройка хост-системы:

В вашей хост-системе Ubuntu Desktop 24 убедитесь, что сетевой интерфейс enp03s25 имеет корректную конфигурацию. Интерфейс должен быть активным и иметь статический IP-адрес в вашей локальной сети:

bash
# Проверка состояния интерфейса
ip addr show enp03s25

# Настройка статического IP (если требуется)
sudo nano /etc/netplan/01-netcfg.yaml

Пример конфигурации netplan:

yaml
network:
 version: 2
 renderer: networkd
 ethernets:
 enp03s25:
 dhcp4: no
 addresses:
 - 192.168.0.1/24
 gateway4: 192.168.0.1
 nameservers:
 addresses: [8.8.8.8, 8.8.4.4]

Настройка гостевой системы:

В виртуальной машине с Ubuntu Server настройте IP-адрес в той же подсети, что и хост-система:

bash
# Проверка доступных интерфейсов
ip addr show

# Настройка статического IP
sudo nano /etc/netplan/01-netcfg.yaml

Пример конфигурации для Ubuntu Server:

yaml
network:
 version: 2
 renderer: networkd
 ethernets:
 enp0s3: # или другой интерфейс виртуальной машины
 dhcp4: no
 addresses:
 - 192.168.0.2/24
 gateway4: 192.168.0.1
 nameservers:
 addresses: [8.8.8.8, 8.8.4.4]

Проверка соединения:

После настройки обоих систем проверьте соединение:

bash
# В хост-системе
ping 192.168.0.2

# В гостевой системе
ping 192.168.0.1

Если пинг не работает, переходите к разделу по устранению неполадок.


Альтернативные режимы сети: Host-Only и NAT

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

Режим Host-Only (Только для хоста):

Этот режим создает изолированную сеть между хост-системой и виртуальной машиной. Для настройки:

  1. В VirtualBox Manager перейдите в “Файл” → “Параметры” → “Сеть”
  2. В разделе “Host-only Networks” создайте новую сеть
  3. В настройках виртуальной машины выберите тип подключения “Host-only Adapter”
  4. Назначьте IP-адреса в изолированной подсети (например, 192.168.56.1 для хоста и 192.168.56.2 для виртуальной машины)

Преимущества режима Host-Only:

  • Полная изоляция от внешней сети
  • Простая настройка
  • Гарантированная связь между хостом и гостем

Недостатки:

  • Нет доступа в интернет из виртуальной машины
  • Невозможность доступа к виртуальной машине из других устройств в сети

Режим NAT с пробросом портов:

Если виртуальная машина должна иметь доступ в интернет, но также быть доступной из хост-системы, можно использовать комбинацию режимов:

  1. Настройте основной адаптер в режиме NAT для доступа в интернет
  2. Добавьте второй адаптер в режиме Host-Only для связи с хост-системой
  3. Пробросьте необходимые порты от хоста к гостю

Настройка второго адаптера:

bash
# В настройках виртуальной машины
# Адаптер 1: NAT (для интернета)
# Адаптер 2: Host-only (для связи с хостом)

Настройка IP-адресов:

bash
# В хост-системе
sudo ip addr add 192.168.56.1/24 dev vboxnet0

# В виртуальной машине
sudo ip addr add 192.168.56.2/24 dev eth1

Двухадаптерная конфигурация:

Для максимальной гибкости можно использовать два сетевых адаптера в виртуальной машине:

  • Один в режиме NAT для доступа в интернет
  • Второй в режиме Host-Only для связи с хост-системой

Это позволяет виртуальной машине иметь доступ в интернет при обеспечении полной связи с хост-системой.


Решение проблем с сетевым подключением в VirtualBox

Наиболее частые проблемы при настройке сети в VirtualBox включают конфликты брандмауэра, неправильный выбор сетевого интерфейса и ошибки в конфигурации IP-адресации.

Проверка брандмауэра:

Брандмауэр - одна из самых частых причин невозможности пинга между системами. В Ubuntu Desktop 24 и Ubuntu Server необходимо проверить и настроить брандмауэр:

bash
# В хост-системе (Ubuntu Desktop)
sudo ufw allow from 192.168.0.0/24 to any port 22 proto tcp
sudo ufw allow icmp

# В гостевой системе (Ubuntu Server)
sudo ufw allow from 192.168.0.1 to any port 22 proto tcp
sudo ufw allow icmp

Для Windows хост-системы:

  1. Откройте “Панель управления” → “Брандмауэр Windows”
  2. Разрешите “Oracle VM VirtualBox” в брандмауэре
  3. Включите все три флажка для частных, общедоступных и доменных сетей

Проверка выбора сетевого интерфейса:

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

bash
# Проверка доступных интерфейсов в хост-системе
ip addr show

# Проверка активных интерфейсов
nmcli device status

Проверка конфигурации IP-адресации:

Убедитесь, что обе системы находятся в одной подсети с корректными масками:

bash
# В хост-системе
ip addr show enp03s25

# В гостевой системе
ip addr show

Проверьте, что нет конфликтов IP-адресов и что шлюз настроен правильно.

Проверка работы VirtualBox Network Services:

Убедитесь, что службы VirtualBox Network работают корректно:

bash
# Перезапуск служб VirtualBox
sudo systemctl restart vboxdrv
sudo systemctl restart vboxnetflt

# Проверка состояния
sudo systemctl status vboxdrv
sudo systemctl status vboxnetflt

Дополнительные команды диагностики:

bash
# Проверка маршрутизации
ip route show

# Проверка таблицы ARP
arp -n

# Проверка соединений
netstat -tulpn

# Тестирование на уровне канального слоя
arping -I enp03s25 192.168.0.2

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


Настройка IP-адресации и проверка соединения

Правильная настройка IP-адресации является критически важным шагом для обеспечения связи между хост-системой и виртуальной машиной в VirtualBox.

Конфигурация хост-системы:

В вашей хост-системе Ubuntu Desktop 24 убедитесь, что сетевой интерфейс enp03s25 имеет статическую конфигурацию:

bash
# Проверка текущей конфигурации
ip addr show enp03s25

# Проверка маршрутизации
ip route show

# Проверка DNS-настроек
cat /etc/resolv.conf

Если вы используете Netplan для конфигурации сети, отредактируйте файл конфигурации:

bash
sudo nano /etc/netplan/01-netcfg.yaml

Пример корректной конфигурации:

yaml
network:
 version: 2
 renderer: networkd
 ethernets:
 enp03s25:
 dhcp4: no
 addresses:
 - 192.168.0.1/24
 gateway4: 192.168.0.1
 nameservers:
 addresses: [8.8.8.8, 1.1.1.1]

Примените изменения:

bash
sudo netplan apply

Конфигурация гостевой системы:

В виртуальной машине Ubuntu Server настройте статический IP-адрес в той же подсети:

bash
# Проверка доступных интерфейсов
ip addr show

# Редактирование конфигурации
sudo nano /etc/netplan/01-netcfg.yaml

Пример конфигурации для Ubuntu Server:

yaml
network:
 version: 2
 renderer: networkd
 ethernets:
 enp0s3:
 dhcp4: no
 addresses:
 - 192.168.0.2/24
 gateway4: 192.168.0.1
 nameservers:
 addresses: [8.8.8.8, 1.1.1.1]

Примените изменения:

bash
sudo netplan apply

Проверка соединения:

После настройки обоих систем выполните проверку соединения:

bash
# В хост-системе
ping 192.168.0.2 -c 4

# В гостевой системе
ping 192.168.0.1 -c 4

# Проверка маршрутизации в гостевой системе
ip route show

# Проверка таблицы ARP
arp -n

Дополнительные тесты:

Если базовый ping не работает, выполните более детальную диагностику:

bash
# Проверка на уровне канального слоя
arping -I enp03s25 192.168.0.2

# Проверка доступности портов
nc -zv 192.168.0.2 22

# Тестирование с использованием traceroute
traceroute 192.168.0.2

Настройка DNS:

Убедитесь, что DNS-настройки корректны в обеих системах:

bash
# В хост-системе
cat /etc/resolv.conf

# В гостевой системе
cat /etc/resolv.conf

# Если необходимо, настройте вручную
echo "nameserver 8.8.8.8" | sudo tee /etc/resolv.conf

Мониторинг сетевой активности:

Для отладки используйте инструменты мониторинга сетевой активности:

bash
# Мониторинг сетевых пакетов
tcpdump -i enp03s25 host 192.168.0.2

# Мониторинг соединений
ss -tulpn

Если после всех настроек ping по-прежнему не работает, проверьте, нет ли конфликтов IP-адресов в сети, и убедитесь, что брандмауэры обеих систем разрешают ICMP-трафик.


Продвинутые сценарии: множественные сетевые адаптеры

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

Конфигурация с двумя адаптерами:

Наиболее распространенный сценарий - использование двух адаптеров для обеспечения одновременного доступа в интернет и связи с хост-системой:

  1. Настройте первый адаптер в режиме NAT для доступа в интернет
  2. Настройте второй адаптер в режиме Host-Only для связи с хост-системой

Пример конфигурации в VirtualBox:

  • Адаптер 1: Тип подключения “NAT”
  • Адаптер 2: Тип подключения “Host-only Adapter”

Настройка хост-системы:

Создайте и настройте Host-Only сеть в VirtualBox:

bash
# Проверка существующих сетей VirtualBox
VBoxManage list hostonlyifs

# Создание новой Host-Only сети
VBoxManage hostonlyif create

# Настройка IP-адреса для Host-Only сети
VBoxManage hostonlyif ipconfig vboxnet0 --ip 192.168.56.1 --netmask 255.255.255.0

Настройка гостевой системы:

В виртуальной машине настройте два сетевых интерфейса:

bash
# Первый интерфейс (NAT) - обычно enp0s3
sudo nano /etc/netplan/01-netcfg.yaml

# Второй интерфейс (Host-only) - обычно enp0s8
sudo nano /etc/netplan/02-netcfg.yaml

Пример конфигурации для первого интерфейса (NAT):

yaml
network:
 version: 2
 renderer: networkd
 ethernets:
 enp0s3:
 dhcp4: yes

Пример конфигурации для второго интерфейса (Host-only):

yaml
network:
 version: 2
 renderer: networkd
 ethernets:
 enp0s8:
 dhcp4: no
 addresses:
 - 192.168.56.2/24
 gateway4: 192.168.56.1

Проверка соединения:

После настройки обоих интерфейсов проверьте соединение:

bash
# Проверка доступности интернета
ping 8.8.8.8

# Проверка связи с хост-системой
ping 192.168.56.1

# Проверка обоих интерфейсов
ip addr show

Сценарий с режимом Bridge и Host-Only:

Для максимальной гибкости можно использовать комбинацию режимов Bridge и Host-Only:

  1. Первый адаптер: Bridge (для доступа в интернет и связи с сетью)
  2. Второй адаптер: Host-only (для изолированной связи с хост-системой)

Настройка маршрутизации:

При использовании нескольких адаптеров может потребоваться настройка маршрутизации:

bash
# Добавление маршрута
sudo ip route add 192.168.56.0/24 via 192.168.56.1 dev enp0s8

# Проверка маршрутизации
ip route show

Мониторинг сетевой активности:

Для мониторинга трафика через оба интерфейса используйте:

bash
# Мониторинг первого интерфейса
tcpdump -i enp0s3

# Мониторинг второго интерфейса
tcpdump -i enp0s8

# Комбинированный мониторинг
tcpdump -i any

Управление сетевыми адаптерами через командную строку:

Для автоматизации настройки можно использовать командную строку VirtualBox:

bash
# Добавление сетевого адаптера
VBoxManage modifyvm "Имя_ВМ" --nic1 bridged --bridgeadapter1 enp03s25
VBoxManage modifyvm "Имя_ВМ" --nic2 hostonly --hostonlyadapter2 vboxnet0

# Перезапуск виртуальной машины
VBoxManage controlvm "Имя_ВМ" poweroff
VBoxManage startvm "Имя_ВМ"

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


Источники

  1. VirtualBox Network Modes Guide — Официальная документация по режимам сети VirtualBox: https://www.virtualbox.org/wiki/Network_Advanced
  2. Stack Overflow на русском — Решение проблем с сетевым мостом в VirtualBox: https://ru.stackoverflow.com/questions/949048/Нельзя-пропинговать-виртуальную-машину-с-хоста-и-наоборот
  3. Rus-Linux.net — Подробное руководство по сетям VirtualBox: https://rus-linux.net/MyLDP/vm/VirtualBox-networking.html
  4. Хабр Q&A — Настройка сети между хостом и гостем в VirtualBox: https://qna.habr.com/q/402938
  5. KompSekret — Устранение проблем с ping в VirtualBox: https://kompsekret.ru/q/can-t-ping-guest-os-in-virtualbox-but-guests-can-ping-host-8664/
  6. Ubuntu Documentation — Настройка статического IP в Ubuntu: https://ubuntu.com/tutorials/configure-network#1-overview
  7. Netplan Documentation — Официальная документация по Netplan: https://netplan.io/examples/
  8. VirtualBox Command Line Interface — Руководство по управлению сетью через CLI: https://www.virtualbox.org/manual/ch08.html

Заключение

Настройка сетевого соединения между хост-системой и виртуальной машиной в VirtualBox требует внимательного подхода к выбору режима сети и правильной конфигурации IP-адресации. Основная проблема с невозможностью пинга между системами в режиме “сетевой мост” чаще всего связана с настройками брандмауэра, неправильным выбором сетевого интерфейса или конфликтом IP-адресов.

Для решения вашей проблемы с Ubuntu Desktop 24 и Ubuntu Server рекомендуется проверить следующие аспекты: убедиться, что в настройках мостового режима выбран правильный интерфейс enp03s25, проверить и настроить брандмауэр обеих систем для разрешения ICMP-трафика, а также убедиться, что обе системы находятся в одной подсети с корректными масками. Если мостовой режим вызывает проблемы, альтернативой может служить режим Host-Only, который создает изолированную сеть между хостом и гостем.

Для сложных конфигураций можно использовать несколько сетевых адаптеров в виртуальной машине, обеспечивая одновременно доступ в интернет и связь с хост-системой. Важно помнить, что правильная настройка сети в VirtualBox является основой для успешной работы виртуальных машин в различных сценариях использования, от разработки и тестирования до развертывания_production сред.

Алина / Сетевой администратор

В режиме “Сетевой мост” виртуальная машина должна получать IP из той же подсети, что и хост, но иногда VirtualBox автоматически назначает IP из другой подсети. Для решения используйте двухадаптерную конфигурацию: один адаптер в режиме NAT для доступа в интернет, второй в режиме Host-Only для связи с хост-системой. Перед настройкой создайте сеть в Host Network Manager VirtualBox.

  • Проверьте подсети IP-адресов на хосте и госте
  • Используйте ip addr для диагностики интерфейсов
  • Убедитесь в правильности маски подсети 255.255.255.0
R

При использовании мостового режима (Bridged Adapter) убедитесь, что виртуальная машина получает IP-адрес из той же подсети, что и хост-система. Если VM получает адрес из другой подсети (например, 192.168.2.x вместо 192.168.0.x), хост и VM не смогут видеть друг друга. Альтернатива — режим “Host-only” с сетью 192.168.56.x, или NAT с пробросом портов. Проверьте, что выбранный физический интерфейс хоста подключен и имеет соответствующий IP.

bash
ip addr show
ping 192.168.56.1
W

Для связи между хостом и гостевой системой в VirtualBox используйте режим “Host-Only”. Назначьте хосту IP 192.168.56.1/24, гостю — 192.168.56.2/24. Если ping не работает, проверьте фаервол гостя и разрешите ICMP-запросы. Простой вариант — “Сетевой мост” (Bridged Adapter), где гость получает IP от роутера и доступен как обычный узел.

  • Включите ICMP в ufw allow proto icmp
  • Проверьте статус: ip link show
M

Проблема с пингом часто в брандмауэре Windows: разрешите Oracle VM VirtualBox в панели управления (все три флажка). Для Ubuntu используйте ifconfig -a для интерфейсов и настройте /etc/network/interfaces. В Windows Server включите обнаружение сети (Частный профиль). Добавьте ICMP-правило: netsh advfirewall firewall add rule name="ICMP Allow In V4 Echo" protocol=icmpv4:8,any dir=in action=allow profile=private.

Ключевые шаги:

  • Разрешить VirtualBox в firewall
  • Настроить статические IP в одной подсети
  • Включить ICMP echo requests
Авторы
Алина / Сетевой администратор
Сетевой администратор
R
Технический писатель
С
Технический переводчик
W
Сетевой администратор
Н
Системный администратор
M
Системный администратор
J
Разработчик
A
Системный администратор
D
Системный администратор
Y
Системный администратор
E
Системный администратор
Источники
Портал документации по Linux и виртуализации
Хабр Q&A / Q&A платформа
Q&A платформа
KompSekret / Платформа вопросов и ответов по информационной безопасности и IT
Платформа вопросов и ответов по информационной безопасности и IT
Проверено модерацией
НейроОтветы
Модерация
Настройка сети VirtualBox: связь хоста и гостя