Ip адрес виртуальной машины linux

Как настроить сеть между гостевой виртуальной машиной и хостом в Oracle VirtualBox

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

В этой статье мы опишем самый простой и прямой метод настройки сети для гостевых виртуальных машин и хоста в Linux.

Для целей этого руководства:

  1. Основная операционная система – Linux Mint 18
  2. ОС виртуальной машины — CentOS 7 и Ubuntu 16.10

Требования

  1. Рабочий Oracle Virtualbox, установленный на хост-компьютере.
  2. У вас должна быть установлена гостевая операционная система, такая как Ubuntu, Fedora, CentOS, Linux Mint или любая другая по вашему выбору в виртуальной машине Oracle.
  3. Выключайте виртуальные машины по мере выполнения настроек вплоть до шага, на котором требуется их включить.

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

Сетевая карта по умолчанию (адаптер 1) обычно используется для подключения гостевых машин к Интернету с помощью NAT через хост-компьютер.

Важно. Всегда устанавливайте первый адаптер для связи с хостом, а второй адаптер для подключения к Интернету.

Создайте сеть для гостей и хост-машины

В интерфейсе диспетчера Virtualbox ниже начните с создания сети, в которой будут работать хост и гости.

Перейдите в Файл –> Настройки или нажмите Ctrl + G :

В следующем интерфейсе есть два варианта; выберите Host-only Networks, нажав на него. Затем используйте знак + справа, чтобы добавить новую сеть только для хоста.

Ниже приведен снимок экрана, показывающий, что была создана новая сеть только для хоста с именем vboxnet0.

При желании вы можете удалить его, нажав кнопку — посередине, а для просмотра сведений/настроек сети нажмите кнопку изменить.

Вы также можете изменить значения в соответствии с вашими предпочтениями, такие как сетевой адрес, маска сети и т. д.

Примечание. Адрес IPv4 в интерфейсе ниже — это IP-адрес вашего хост-компьютера.

В следующем интерфейсе вы можете настроить сервер DHCP, если вы хотите, чтобы гостевые машины использовали динамический IP-адрес (перед использованием убедитесь, что он включен). Но я рекомендую использовать статический IP-адрес для виртуальных машин.

Теперь нажмите ОК во всех интерфейсах сетевых настроек ниже, чтобы сохранить изменения.

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

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

Вернувшись в интерфейс диспетчера виртуальных ящиков, выберите свою гостевую виртуальную машину, например сервер Ubuntu 16.10 или CentOS 7, и щелкните меню Настройки.

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

Выберите параметр Сеть в интерфейсе выше. После этого настройте первую сетевую карту (Адаптер 1) со следующими параметрами:

  1. Отметьте параметр \Включить сетевой адаптер, чтобы включить его.
  2. В поле Прикреплено к: выберите Адаптер только для хоста
  3. Затем выберите имя сети: vboxnet0
Читайте также:  Создать сетевую папку linux mint

Как показано на снимке экрана ниже, нажмите OK, чтобы сохранить настройки:

Настройка адаптера для подключения виртуальной машины к Интернету

Затем добавьте вторую сетевую карту (адаптер 2), чтобы подключить виртуальную машину к Интернету через хост. Используйте настройки ниже:

  1. Отметьте параметр \Включить сетевой адаптер, чтобы активировать его.
  2. В поле Подключено к: выберите NAT

Настройка статического IP-адреса для гостевой виртуальной машины

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

На снимке экрана выше видно, что на виртуальной машине включены три интерфейса:

  1. lo – петлевой интерфейс
  2. enp0s3 (адаптер 1) — для связи только с хостом, использующей DHCP, установленный на одном из предыдущих шагов, а затем настроенный со статическим IP-адресом.
  3. enp0s8 (Адаптер 2) — для подключения к Интернету. По умолчанию будет использоваться DHCP.
В Debian/Ubuntu/Linux Mint

Важно: здесь я использовал сервер Ubuntu 16.10: IP-адрес: 192.168.56.5.

Откройте файл /etc/network/interfaces в своем любимом редакторе с правами суперпользователя:

$ sudo vi /etc/network/interfaces

Используйте следующие настройки интерфейса enp0s3 (используйте здесь предпочтительные значения):

auto enp0s3 iface enp0s3 inet static address 192.168.56.5 network 192.168.56.0 netmask 255.255.255.0 gateway 192.168.56.1 dns-nameservers 8.8.8.8 192.168.56.1

Затем перезапустите сетевые службы следующим образом:

$ sudo systemctl restart networking

Либо перезагрузите систему и внимательно проверьте, использует ли интерфейс новые IP-адреса:

В RHEL/CentOS/Fedora

Важно. Для этого раздела я использовал CentOS 7: IP-адрес: 192.168.56.10.

Начните с открытия файла для enp0s3 — сетевого интерфейса только для хоста; /etc/sysconfig/network-scripts/ifcfg-enp0s3 в вашем любимом редакторе с правами суперпользователя:

$ sudo vi /etc/sysconfig/network-scripts/ifcfg-enp0s3

Создайте/измените следующие настройки (используйте здесь предпочтительные значения):

BOOTPROTO=static ONBOOT=yes IPADDR=192.168.56.10 NETWORK=192.168.56.0 NETMASK=255.255.255.0 GATEWAY=192.168.56.1 DNS=8.8.8.8 192.168.56.1 NM_CONTROLLED=no #use this file not network manager to manage interface

Сохраните файл и выйдите. Затем перезапустите сетевую службу следующим образом (вы также можете перезагрузиться):

$ sudo systemctl restart network.service

Проверьте, использует ли интерфейс новые IP-адреса, следующим образом:

Управление виртуальными машинами с хоста с помощью SSH

На хост-компьютере используйте SSH для управления виртуальными машинами. В следующем примере я получаю доступ к серверу CentOS 7 (192.168.56.10) с помощью SSH:

Вот и все! В этом посте мы описали простой способ настройки сети между гостевой виртуальной машиной и хостом. Поделитесь своими мыслями об этом уроке, используя раздел обратной связи ниже.

Источник

How to find IP of virtual machine?

If I have a VM (using VirtualBox, for instance) running inside my main OS; how can I identify the virtual interface and IP address (of the VM) from within the original (host) OS? I thought I could just use ifconfig , ip a , or similar; but no information related to the connected VM is displayed. Although it shows the main (host) OS has been assigned 192.168.1.104 via wlan0 . However, if I run one of those commands from inside the VM, I can confirm that it’s currently active @ 10.0.2.15 via eth0 .

Читайте также:  Best ubuntu based linux

If you use NAT mode for network emulation (default), it setups private network within VirtualBox which is not visible externally. You’ll need bridged or host-only network configuration.

@myaut Ah. Okay, I thought it was bridged by default. But, even despite NAT; if the VM is receiving it’s LAN connection, and it’s route to the internet, from the main host; surely, the main host must have some kind of record of that link in the IP chain. Because it’s accommodating what is effectively another system; forwarding packets back and forth, and that sort of thing. Right?

4 Answers 4

Virtualbox includes a tool called VBoxManage . This tool can access information about the guest OS.

In this example (Windows 10, in a PowerShell window), I want to find the IP of my VM called DS201 :

PS C:\Program Files\Oracle\VirtualBox> .\VBoxManage.exe guestproperty get DS201 "/VirtualBox/GuestInfo/Net/0/V4/IP" Value: 10.0.2.15 

(It works the same in Linux and Mac OS X as it does in Windows)

Documentation about the capabilities of VBoxManage can be found at https://www.virtualbox.org/manual/ch08.html.

To your comment that the ‘host must . record . the IP chain’ it’s VirtualBox, not the host as such, that does this:

The network frames sent out by the guest operating system are received by VirtualBox’s NAT engine, which extracts the TCP/IP data and resends it using the host operating system. To an application on the host, or to another computer on the same network as the host, it looks like the data was sent by the VirtualBox application on the host, using an IP address belonging to the host. VirtualBox listens for replies to the packages sent, and repacks and resends them to the guest machine on its private network.

To your original Q, it is only VirtualBox that knows about the guest’s simulated address:

The virtual machine receives its network address and configuration on the private network from a DHCP server integrated into VirtualBox. The IP address thus assigned to the virtual machine is usually on a completely different network than the host. As more than one card of a virtual machine can be set up to use NAT, the first card is connected to the private network 10.0.2.0, the second card to the network 10.0.3.0 and so on. If you need to change the guest-assigned IP range for some reason, please refer to Section 9.11, “Fine-tuning the VirtualBox NAT engine”.

Источник

How to get IP address assigned to VM running in background?

I run my Ubuntu instance out of Virtual Box in the background using the following command: VBoxManage startvm $ —type headless The main difference between that and running it through the GUI is that, when I am in the GUI after it starts, I can check ifconfig to see what the IP address is so that I can ssh into it from my terminal on the host and obviously can’t do that in the background. Assuming a dynamic assignment of IP addresses on the network, is there a way to extract the assigned IP to the newly created instance for ssh purposes OR is there a way to ssh into it without knowing the IP (e.g. via a backdoor port on the host)?

Читайте также:  Alt linux поменять разрешение экрана

9 Answers 9

You can use the VBoxManage command to extract the IP address, as shown in this forum post on virtualbox.org:

VBoxManage guestproperty enumerate

Unless you have very good reasons, though, you’ll want to strongly consider assigning a static IP address to your guest vm. This is possible even though you are probably using DHCP. Just pick an IP address outside the range that your DHCP server allocates.

First at all make sure you have installed VirtualBox Extension Pack or install it if don’t.

> wget http://download.virtualbox.org/virtualbox/4.2.12/Oracle_VM_VirtualBox_Extension_Pack-4.2.12-84980.vbox-extpack > sudo VBoxManage extpack install ./Oracle_VM_VirtualBox_Extension_Pack-4.2.12-84980.vbox-extpack 

After that you can get IP of VM

VBoxManage guestproperty enumerate | grep IP | grep -o -w -P -e '\d\.\d\.\d\.\d' 

for OSX — VBoxManage guestproperty enumerate 4ab1029f-23ff-4c5c-b4bd-3b6d68aa7cc0 | grep IP | grep -oE «\b(7<1,3>\.)2<1,3>\b» Regex for IP I took stackoverflow.com/questions/11482951/…

You can do it without install Guest Addition

two network adapters

But you need to know your networks
for example, we have VM with two adapters

one for Internet communication
second for host only communication

you can see network with command VBoxManage list

% VBoxManage list natnets NetworkName: NatNetwork IP: 10.10.12.1 Network: 10.10.12.0/24 DHCP Enabled: Yes Enabled: Yes
% VBoxManage list hostonlyifs Name: vboxnet0 DHCP: Disabled IPAddress: 192.168.6.1 NetworkMask: 255.255.255.240

here is main part
show running VMs

% vboxmanage list runningvms «centos7 node0 ip test»

we need VM uuid
it is 46ec9075-f49b-4d16-9867-d56710b6a3da

now we can fetch MAC addresses

% vboxmanage showvminfo --details 46ec9075-f49b-4d16-9867-d56710b6a3da | fgrep MAC NIC 1: MAC: 08002783E8BB, Attachment: NAT Network 'NatNetwork', Cable connected: on, Trace: off (file: none), Type: 82540EM, Reported speed: 0 Mbps, Boot priority: 0, Promisc Policy: deny, Bandwidth group: none NIC 2: MAC: 080027D992F0, Attachment: Host-only Interface 'vboxnet0', Cable connected: on, Trace: off (file: none), Type: 82540EM, Reported speed: 0 Mbps, Boot priority: 0, Promisc Policy: deny, Bandwidth group: none

08002783E8BB for first adapter in ‘NatNetwork’ network
080027D992F0 for second adapter for ‘vboxnet0’ interface

now we can get IP from DHCP table for first adapter

% vboxmanage dhcpserver findlease --network NatNetwork --mac-address=08002783E8BB IP Address: 10.10.12.4 MAC Address: 08:00:27:83:e8:bb State: acked Issued: 2020-07-13T13:31:20Z (1594647080) Expire: 2020-07-13T13:41:20Z (1594647680) TTL: 600 sec, currently 586 sec left
% vboxmanage dhcpserver findlease --interface vboxnet0 --mac-address=080027D992F0 IP Address: 192.168.6.3 MAC Address: 08:00:27:d9:92:f0 State: acked Issued: 2020-07-13T13:29:06Z (1594646946) Expire: 2020-07-13T13:39:06Z (1594647546) TTL: 600 sec, currently 399 sec left

please note
for nat network we use option —network
for host only adapter we use option —interface

now we connect to this VM from host by ssh

% ssh root@192.168.6.3 root@192.168.6.3's password: Last login: Mon Jul 13 09:05:33 2020 [root@node0 ~]#

Источник

Оцените статью
Adblock
detector