Як налаштувати мережеві налаштування віртуальної машини?

Віртуальні машини (VM) стали невід'ємною частиною сучасної IT-інфраструктури. Вони дозволяють запускати кілька операційних систем на одному фізичному сервері, заощаджуючи ресурси та спрощуючи управління. Одним із ключових аспектів роботи з віртуальними машинами є налаштування їх мережевих параметрів. Від правильної конфігурації мережі залежить доступність VM, їх взаємодія з іншими системами та безпека даних. У цій статті ми детально розглянемо різні способи налаштування мережевих параметрів віртуальних машин, надавши вам практичні приклади та рекомендації.

Зміст

Основні концепції мережі віртуальних машин

Як налаштувати мережеві налаштування віртуальної машини? - Diagram illustrating the different networking modes (Bridged, NAT, Host-only) and their connectivity patterns.
Перед тим як приступити до налаштування мережевих параметрів віртуальних машин, важливо розуміти основні концепції та режими роботи мережі VM. Основні режими роботи включають в себе: мережевий міст (bridged), NAT (Network Address Translation) і "тільки хост" (host-only). Кожен режим має свої особливості та призначений для різних сценаріїв використання. Вибір правильного режиму залежить від вимог до доступності VM, її взаємодії з іншими системами та вимогам безпеки. Мережевий міст (Bridged Networking) У режимі мережевого мосту віртуальна машина отримує свій власний IP-адресу в тій же мережі, що і хост-машина. Це означає, що VM безпосередньо підключена до фізичної мережі і може взаємодіяти з іншими пристроями в мережі, як якщо б це був окремий фізичний комп'ютер. Цей режим підходить для випадків, коли VM повинна бути доступна ззовні та мати повний доступ до мережі. Приклад: Уявімо, що у вас є фізичний сервер з IP-адресою 192.168.1.100. Ви налаштовуєте віртуальну машину в режимі "мережевий міст". VM отримує IP-адресу 192.168.1.101. Тепер VM може безпосередньо спілкуватися з будь-яким іншим пристроєм в мережі 192.168.1.0/24. NAT (Network Address Translation) У режимі NAT віртуальна машина використовує IP-адресу хост-машини для виходу в мережу. Хост-машина виконує трансляцію мережевих адрес (NAT), приховуючи внутрішній IP-адресу VM. Це забезпечує VM доступ в Інтернет, але обмежує прямий доступ до VM ззовні. Цей режим підходить для випадків, коли VM потрібен доступ в Інтернет, але не потрібно прямого доступу із зовнішньої мережі. Приклад: Хост-машина має IP-адресу 192.168.1.100 і підключена до Інтернету. Віртуальна машина налаштована в режимі NAT і отримує внутрішній IP-адресу, наприклад, 10.0.2.15. Коли VM звертається до веб-сайту в Інтернеті, хост-машина виконує NAT, замінюючи IP-адресу 10.0.2.15 на 192.168.1.100. Відповідь від веб-сайту повертається на хост-машину, яка потім перенаправляє його на VM. Експертна порада: Режим NAT забезпечує додаткову безпеку, оскільки приховує внутрішню IP-адресу VM від зовнішньої мережі. Це може бути корисно для захисту VM від атак. "Тільки хост" (Host-Only Networking) У режимі "тільки хост" віртуальна машина може взаємодіяти тільки з хост-машиною та іншими VM, підключеними до тієї ж мережі "тільки хост". Цей режим створює ізольовану мережу, недоступну ззовні. Він підходить для випадків, коли потрібно створити ізольоване середовище для тестування або розробки. Приклад: Ви створюєте віртуальну машину і налаштовуєте її в режимі "тільки хост". Хост-машина також підключена до цієї мережі "тільки хост". Тепер VM і хост-машина можуть спілкуватися один з одним, але не можуть отримати доступ до Інтернету або інших пристроїв у фізичній мережі. Таблиця порівняння режимів мережі VM:

Потрібен надійний хостинг для вашої віртуальної машини?

Забезпечте стабільну роботу вашої ВМ з нашими VPS-планами. Отримайте продуктивність і гнучкість, необхідні для ваших проектів. — from €4.49/mo.

Вибрати VPS-план →
РежимДоступність ззовніДоступ в ІнтернетІзоляціяЗастосування
Мережевий містТакТакНіКоли VM повинна бути доступна ззовні та мати повний доступ до мережі.
NATНі (через перенаправлення портів)ТакЧастковаКоли VM потрібен доступ в Інтернет, але не потрібно прямого доступу із зовнішньої мережі.
Тільки хостНіНіПовнаКоли потрібно створити ізольоване середовище для тестування або розробки.

Налаштування мережі віртуальної машини через графічний інтерфейс

Як налаштувати мережеві налаштування віртуальної машини? - Screenshots showing the network settings configuration in VMware Workstation or VirtualBox.
Більшість платформ віртуалізації, таких як VMware Workstation, VirtualBox і Hyper-V, надають графічний інтерфейс для налаштування мережевих параметрів віртуальних машин. Цей спосіб є найбільш простим і зручним для початківців. Налаштування мережі в VMware Workstation Щоб налаштувати мережу в VMware Workstation, виконайте наступні кроки:
  • Виберіть віртуальну машину в списку.
  • Натисніть "Edit virtual machine settings".
  • Перейдіть на вкладку "Network Adapter".
  • Виберіть потрібний режим мережі: "Bridged", "NAT" або "Host-only".
  • За необхідності налаштуйте додаткові параметри, такі як MAC-адреса або VLAN.
Приклад: Ви хочете, щоб віртуальна машина була доступна ззовні та мала свій власний IP-адресу в мережі. Ви вибираєте режим "Bridged" і вказуєте, до якого мережевого адаптера хост-машини повинна бути підключена VM. Налаштування мережі в VirtualBox Налаштування мережі в VirtualBox аналогічне VMware Workstation:
  • Виберіть віртуальну машину у списку.
  • Натисніть "Settings".
  • Перейдіть на вкладку "Network".
  • Виберіть адаптер (Adapter 1, Adapter 2 і т.д.).
  • У полі "Attached to" виберіть потрібний режим мережі: "Bridged Adapter", "NAT", "Host-only Adapter".
  • За потреби налаштуйте додаткові параметри, такі як MAC-адреса або тип адаптера.
Приклад: Ви хочете, щоб віртуальна машина мала доступ до Інтернету, але не була безпосередньо доступна ззовні. Ви обираєте режим "NAT". VirtualBox автоматично налаштує трансляцію мережевих адрес для VM. Налаштування статичної IP-адреси в гостьовій ОС Після вибору режиму мережі в налаштуваннях віртуальної машини, часто потрібно налаштувати IP-адресу, маску підмережі, шлюз та DNS-сервер у самій гостьовій операційній системі. Це можна зробити через графічний інтерфейс або через командний рядок (див. наступний розділ). Приклад для Linux (Ubuntu):
  • Відкрийте "Settings" -> "Network".
  • Виберіть підключення (наприклад, "Wired").
  • Натисніть на значок шестерні.
  • Перейдіть на вкладку "IPv4".
  • Виберіть "Manual" в полі "Method".
  • Введіть IP-адресу, маску підмережі, шлюз та DNS-сервери.
  • Натисніть "Apply".
Приклад для Windows:
  • Відкрийте "Control Panel" -> "Network and Internet" -> "Network and Sharing Center".
  • Натисніть на ім'я підключення (наприклад, "Ethernet").
  • Натисніть "Properties".
  • Виберіть "Internet Protocol Version 4 (TCP/IPv4)" і натисніть "Properties".
  • Виберіть "Use the following IP address" і введіть IP-адресу, маску підмережі, шлюз та DNS-сервери.
  • Натисніть "OK".
Увага: Переконайтеся, що IP-адреса, яку ви призначаєте віртуальній машині, не конфліктує з IP-адресами інших пристроїв у мережі.

Конфігурація мережі VM через командний рядок

Налаштування мережі віртуальної машини через командний рядок надає більш гнучкий та потужний спосіб керування мережевими параметрами. Цей метод особливо корисний для автоматизації налаштування, роботи з серверами без графічного інтерфейсу або при використанні скриптів. Налаштування мережі через командний рядок залежить від операційної системи, встановленої на віртуальній машині. Налаштування мережі в Linux У більшості дистрибутивів Linux для налаштування мережі використовуються утиліти ifconfig, ip, route та файли конфігурації, розташовані в директорії /etc/network/interfaces (Debian/Ubuntu) або /etc/sysconfig/network-scripts/ (CentOS/RHEL). Приклад (Debian/Ubuntu): Щоб налаштувати статичну IP-адресу для інтерфейсу eth0, відредагуйте файл /etc/network/interfaces:
# /etc/network/interfaces
auto eth0
iface eth0 inet static
    address 192.168.1.101
    netmask 255.255.255.0
    gateway 192.168.1.1
    dns-nameservers 8.8.8.8 8.8.4.4
Потім перезапустіть мережевий інтерфейс:
sudo ifdown eth0 && sudo ifup eth0
Приклад (CentOS/RHEL): Щоб налаштувати статичну IP-адресу для інтерфейсу eth0, відредагуйте файл /etc/sysconfig/network-scripts/ifcfg-eth0:
# /etc/sysconfig/network-scripts/ifcfg-eth0
TYPE=Ethernet
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.1.101
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=8.8.8.8
DNS2=8.8.4.4
Потім перезапустіть мережеву службу:
sudo systemctl restart network
Використання утиліти ip: Утиліта ip є більш сучасною альтернативою ifconfig і надає більше можливостей для налаштування мережі. Приклад: Призначення IP-адреси та маски підмережі:
sudo ip addr add 192.168.1.101/24 dev eth0
Додавання шлюзу:
sudo ip route add default via 192.168.1.1
Увага: Зміни, внесені за допомогою утиліти ip, не зберігаються після перезавантаження системи. Щоб зміни були постійними, необхідно відредагувати файли конфігурації мережі. Налаштування мережі в Windows У Windows для налаштування мережі через командний рядок використовується утиліта netsh. Приклад: Щоб налаштувати статичну IP-адресу для інтерфейсу "Ethernet", виконайте наступні команди в командному рядку з правами адміністратора:
netsh interface ipv4 set address name="Ethernet" static 192.168.1.101 255.255.255.0 192.168.1.1
netsh interface ipv4 set dns name="Ethernet" static 8.8.8.8 primary
netsh interface ipv4 add dns name="Ethernet" 8.8.4.4 index=2
Ці команди встановлюють IP-адресу, маску підмережі, шлюз та DNS-сервери для інтерфейсу "Ethernet". Автоматизація налаштування мережі за допомогою скриптів: Налаштування мережі через командний рядок дозволяє автоматизувати процес за допомогою скриптів. Це особливо корисно при розгортанні великої кількості віртуальних машин. Наприклад, можна створити скрипт, який автоматично налаштовує IP-адресу, маску підмережі, шлюз та DNS-сервери на основі заданих параметрів. Приклад (bash скрипт для Linux):
#!/bin/bash

INTERFACE="eth0"
IP_ADDRESS="192.168.1.101"
NETMASK="255.255.255.0"
GATEWAY="192.168.1.1"
DNS1="8.8.8.8"
DNS2="8.8.4.4"

echo "Налаштування мережі для інтерфейсу $INTERFACE"

sudo ip addr add $IP_ADDRESS/$NETMASK dev $INTERFACE
sudo ip route add default via $GATEWAY

echo "Додавання DNS серверов в /etc/resolv.conf"
echo "nameserver $DNS1" | sudo tee /etc/resolv.conf
echo "nameserver $DNS2" | sudo tee -a /etc/resolv.conf

echo "Налаштування мережі завершено"

Вирішення типових проблем з мережею віртуальної машини

При роботі з віртуальними машинами часто виникають проблеми з мережею. Деякі з найбільш поширених проблем включають відсутність доступу до Інтернету, неможливість підключитися до VM ззовні або неможливість взаємодії між VM і хост-машиною. У цьому розділі ми розглянемо найбільш типові проблеми та способи їх вирішення. Відсутність доступу до Інтернету Якщо віртуальна машина не має доступу до Інтернету, перевірте наступні пункти:
  • Режим мережі: Переконайтеся, що для VM вибрано режим "Bridged" або "NAT". Якщо вибрано режим "Host-only", VM не матиме доступу до Інтернету.
  • Налаштування IP-адреси, маски підмережі, шлюзу та DNS-серверів: Перевірте, чи правильно налаштовані ці параметри в гостьовій операційній системі. Переконайтеся, що шлюз вказує на IP-адресу маршрутизатора, що забезпечує доступ до Інтернету, а DNS-сервери налаштовані на робочі DNS-сервери (наприклад, 8.8.8.8 та 8.8.4.4).
  • Проблеми з DNS: Спробуйте пінгувати IP-адресу веб-сайту (наприклад, 8.8.8.8). Якщо пінг проходить успішно, проблема, швидше за все, пов'язана з DNS. Перевірте налаштування DNS і переконайтеся, що вони правильні.
  • Брандмауер: Перевірте, чи не блокує брандмауер на хост-машині або в гостьовій операційній системі доступ до Інтернету для VM.
Приклад: Ви налаштували VM в режимі NAT, але вона не має доступу до Інтернету. Ви перевіряєте налаштування IP-адреси, маски підмережі та шлюзу і виявляєте, що шлюз вказаний неправильно. Ви виправляєте шлюз, і VM отримує доступ до Інтернету. Неможливість підключитися до VM ззовні Якщо ви не можете підключитися до VM ззовні, перевірте наступні пункти:
  • Режим мережі: Якщо для VM обрано режим "NAT", необхідно налаштувати перенаправлення портів на хост-машині.
  • Перенаправлення портів: Налаштуйте перенаправлення портів на хост-машині, щоб трафік, що надходить на певний порт хост-машини, перенаправлявся на відповідний порт VM.
  • Брандмауер: Перевірте, чи не блокує брандмауер на хост-машині або в гостьовій операційній системі доступ до портів, на які налаштовано перенаправлення.
Приклад: Ви хочете підключитися до SSH-сервера, що працює на VM в режимі NAT. Ви налаштовуєте перенаправлення порту 22 на хост-машині на порт 22 на VM. Тепер ви можете підключитися до SSH-сервера на VM, підключившись до порту 22 на хост-машині. Цитата: "Правильне налаштування перенаправлення портів є ключем доступу до сервісів, що працюють на віртуальних машинах в режимі NAT." - John Doe, Senior Network Engineer Неможливість взаємодії між VM і хост-машиною Якщо VM і хост-машина не можуть взаємодіяти одна з одною, перевірте наступні пункти:
  • Режим мережі: Якщо для VM обрано режим "Host-only", переконайтеся, що хост-машина підключена до тієї ж мережі "тільки хост".
  • IP-адреси: Переконайтеся, що IP-адреси VM і хост-машини знаходяться в одній підмережі.
  • Брандмауер: Перевірте, чи не блокує брандмауер на хост-машині або в гостьовій операційній системі трафік між VM і хост-машиною.
Приклад: Ви налаштували VM в режимі "Host-only", але не можете отримати доступ до веб-сервера, що працює на VM, з хост-машини. Ви перевіряєте IP-адреси і виявляєте, що IP-адреса хост-машини не знаходиться в тій самій підмережі, що й IP-адреса VM. Ви змінюєте IP-адресу хост-машини, і ви можете отримати доступ до веб-сервера на VM.

Масштабуйте свої проєкти з хмарними інстансами

Після налаштування вашої ВМ, переходьте до масштабованих рішень. Наші хмарні інстанси пропонують гнучкість та високу доступність для будь-яких задач.

Запустити інстанс →