Вопрос Подключиться к главной машине с гостевой ОС VirtualBox?


Мне бы хотелось получить доступ к моему компьютеру от гостя в VirtualBox. Есть ли IP-адрес для моего хоста, который я могу использовать у гостя? Необходимы ли дополнительные шаги для его настройки? Я хотел бы получить доступ к сервисам Apache, FTP и SSH для моего хоста.


186
2017-07-14 22:53


происхождения


Трудно решить без каких-либо намеков, какие сетевые конфликты у вашего гостя на самом деле. Некоторые не разрешают доступ к хосту. Попробуйте указать адрес шлюза по умолчанию для гостя. - Turbo J
Оказывается, я могу связаться с ним через мой шлюз по умолчанию в 10.0.2.2. - Naftuli Kay
Связанный: stackoverflow.com/q/19933550/1157054  stackoverflow.com/q/16244601/1157054 - Ajedi32


ответы:


Этот ответ касается почти настройки гостевой ОС в VirtualBox; вам просто нужно использовать адрес сетевого шлюза на гостевой ОС для подключения к ОС хоста из гостевой ОС.

В настройке Vagrant по умолчанию вы можете получить доступ к вашему хосту через шлюз по умолчанию.

В гостевой системе Windows вы можете легко определить этот IP-адрес, выполнив команду:

ipconfig

Он должен сбрасывать что-то вроде этого:

Windows IP Configuration

Ethernet adapter Local Area Connection:

        Connection-specific DNS Suffix  . :
        IP Address. . . . . . . . . . . . : 10.0.2.15
        Subnet Mask . . . . . . . . . . . : 255.255.255.0
        Default Gateway . . . . . . . . . : 10.0.2.2

В этом примере гость может дойти до главной машины 10.0.2.2,


В гостевых Unix / Linux используйте команду:

netstat -rn

Он должен сбрасывать что-то вроде этого:

Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
192.168.1.0     0.0.0.0         255.255.255.0   U         0 0          0 wlan0
169.254.0.0     0.0.0.0         255.255.0.0     U         0 0          0 wlan0
0.0.0.0         192.168.1.1     0.0.0.0         UG        0 0          0 wlan0

В этом примере гость может дойти до главной машины 192.168.1.1,


236
2017-07-15 01:49



Любая идея, почему подключение было бы ужасно медленным при подключении с использованием шлюза по умолчанию в соответствии с вашим ответом? - Ben Swinburne
Кажется, это не работало для меня (Ubuntu 12.04, Vagrant 1.0). По умолчанию шлюз внутри гостевого 10.0.2.2, и nmap этого IP не удался. 192.168.33.1 представляется правильным IP. (Я имел config.vm.network :hostonly, "192.168.33.52" в моей конфигурации.) - Ajedi32
На самом деле, неважно. Это сработало. nmap просто не работал по какой-то причине; не знаю почему. Я все еще мог подключиться к службам, запущенным на хосте с этого IP-адреса, хотя nmap не показывал их. - Ajedi32
netstat -rn на CentOS 7.2, Docker 1.11 отобразил 172.17 адрес как мой шлюз, но этот IP-адрес не соответствует моему хосту. Оказывается, что 10.0.2.2 сделал. - Spencer Williams


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

  • Идти к приборы и выберите Сетевые адаптеры... 
  • В настройках адаптера проверьте Прикреплено к,
  • Если значение равно NAT, выполните следующие

  • Шлюз по умолчанию при настройке виртуальной коробки обычно 10.0.2.2 как значение по умолчанию. Если вы ничего не изменили, это сработает. Но если вы изменили его и гостевую машину, вы работают окна выполните следующую команду и найдите значение по умолчанию шлюз

    ipconfig /all

    Если вы находитесь на Linux, Unix или Mac OS, выполните следующую команду: возьми

    netstat -rn | grep 'default' | awk '{print $2}'

  • Перейдите в веб-браузер и введите этот шлюз по умолчанию и нажмите клавишу ввода. Доступ к веб-серверу возможен.

  • Если значение равно Мостовой адаптер, выполните следующие
    • найти IP-адрес хоста и гостя
      • если вы находитесь в окнах, запустите ipconfig и получить IP-адрес
      • если вы работаете в Linux, Unix или Mac OS, запустите ifconfig | grep 'inet' и получить ip-адрес
      • ip-адрес похож на 192.168.1.1
    • если вы хотите получить доступ к хосту, запустите браузер в гостевой системе и введите IP-адрес хоста
    • если вы хотите получить доступ к гостю, запустите браузер на хосте и введите IP-адрес гостя

29
2017-07-14 12:27





Другой способ сделать это - использовать виртуальную сеть «Host». Это дает вам интерфейс в гостевой ОС с адресом в локальной подсети другой из подсети (ов) «внешнего мира», на которой находится ваша хост-машина. Чтобы выполнить эту работу, вы должны убедиться в нескольких вещах:

  • На вашей виртуальной машине настроен адаптер «только хост»;
  • Ваши хост-службы должны прослушивать все локальные адаптеры или, по крайней мере, те, с которыми вы хотите связаться;
  • Ваш хост получит свой собственный виртуальный адаптер, и вы захотите выяснить его IP-адрес и добавить его в файл «hosts» в гостевой ОС (однако это работает для гостевой ОС, а в Windows XP это просто " хосты ", которые были скопированы в C: / WINDOWS / system32 / drivers / etc). Дайте ему имя, которое вы хотите использовать для имени хоста хоста.

После того, как вы это сделали, вы сможете «видеть» хост с виртуальной машины через имя, которое вы закодировали в файл хоста.

Например, на моем хосте Ubuntu 11.04 я получаю виртуальный интерфейс «vboxnet0» на странице 192.168.56.1. Адаптеры в машинах придумали что-то вроде 192.168.56.101. Мне не нужно идти в на мои виртуальные машины, но я полагаю, что это возможно благодаря симметричному изменению хост-файла хоста. я добавить

192.168.56.1 mymachine

к гостевым файлам хоста ОС, и они могут (например) видеть веб-сервер моей главной машины в

http://mymachine/whatever

Разумеется, вы можете настроить как мосты, так и адаптеры только для хоста.


8
2017-07-17 18:37





Вы можете создавать общие папки в VirtualBox. Это автоматически создаст «сетевой ресурс» в Virtual Box для доступа к папкам в вашей операционной системе.

Вот пошаговая версия гостевой ОС Windows XP:

http://www.giannistsakiris.com/index.php/2007/09/28/virtualbox-access-shared-folders-from-windows-xp-guest-os/


0
2017-07-14 23:08



Итак, я могу получить доступ к моему хосту в / vboxsvr / ShareName? - Naftuli Kay
Да, вы должны установить папку, такую ​​как C: \ STUFF, для совместного использования с VirtualBox. В гостевой ОС VirtualBox вы можете перейти на этот vbox сервер и получить доступ к общим папкам. - kobaltz
На самом деле мне не нужна общая папка. Мне нужен IP-адрес для моего хост-компьютера. Когда я получу его, я хотел бы использовать его для использования служб на моей главной машине, то есть: echo "GET /\r\n\r\n" | nc 192.168.100.100 80 (отправьте HTTP-запрос GET на мой хост-компьютер у гостя). - Naftuli Kay
В этом случае вам может потребоваться установить сетевой адаптер гостевой ОС на мост. Это приведет к удалению IP-адреса с вашего DHCP или маршрутизатора. Затем вы сможете напрямую обращаться к своей машине с помощью IP-адреса вместо общей папки VBox. - kobaltz


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


0
2018-03-28 15:12



Добро пожаловать в Суперпользователя! Это было бы хорошо чтобы включить здесь основные части ответа и предоставить ссылку только для справок в будущем. - slhck