it-swarm.com.ru

Обращение к localhost с виртуальной машины VirtualBox

У меня есть локальный сервер тестирования/разработки (HTTP, конечно), прослушивающий порт 8000.

Я работаю в Linux, поэтому для тестирования страницы в Internet Explorer 6, 7, 8 и т.д. Я запускаю виртуальную машину с помощью VirtualBox; Мне также нужно посмотреть, как он выглядит на Firefox в среде Windows (например, шрифты разные).

На моей реальной машине я открываю веб-сайт, просто используя URL-адрес http://localhost:8000, как мне обратиться к этому локальному хосту с виртуальной машины?

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

698
hasen

Погуглил это: http://data.agaric.com/localhost-from-virtualbox-xp-install-ubuntu

Он предлагает использовать IP: http://10.0.2.2, и это сработало для меня.

Итак, я отредактировал файл hosts C:\windows\system32\drivers\etc\hosts и добавил эту запись:

10.0.2.2   outer

Если вы тестируете на IE8, не забудьте поместить http:// в адресную строку. Просто поставить ip напрямую не получится.

Например:

http://10.0.2.2:3000/
879
hasen

macos

Я использую Virtual Box на macOS (ранее OS X), использую Virtual Box для тестирования IE в Windows и т.д.

Перейдите к IE в Virtual Box и получите доступ к localhost через http://10.0.2.2 для localhost или http://10.0.2.2:3000 для localhost:3000

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

375
Jonathan Lin

Чтобы включить это в OSX, мне нужно было сделать следующее:

  1. Выключите вашу виртуальную машину.
  2. Перейдите к VirtualBox Preferences -> Network -> Host-only Networks -> нажмите значок «+». Нажмите ОК.
  3. Выберите свой ящик и нажмите "Settings" icon -> Network -> Adapter 2 ->. В раскрывающемся списке «Attached to:» выберите «Host-only Adapter», и ваша сеть (vboxnet0) должна отобразиться ниже по умолчанию. Нажмите ОК.
  4. Как только вы снова запустите свой ящик, вы сможете получить доступ к localhost по адресу http://10.0.2.2/

Вы можете обратиться к нему с помощью localhost и получить доступ к другим локальным хостам, добавив их ссылки на файл hosts (C:\windows\system32\drivers\etc\hosts), как показано ниже:

10.0.2.2    localhost
10.0.2.2    subdomain.localhost
77
spsaucier

Скорее всего, ваша виртуальная машина настроена на NAT. Если вы установите для сети режим Bridged, вы сможете получить доступ к вашему хост-компьютеру по его имени. Например, если ваше имя хоста «jsmith-Precision-7510» и вы хотите открыть http: // localhost: 3000/ , вы сможете просмотреть эту страницу по адресу http: // jsmith-Precision -7510: 3000/ .

Чтобы найти ваше имя хоста, откройте терминал/консоль и затем выполните команду hostname. Ваше имя хоста будет выведено на следующей строке.

См. документацию VirtualBox для получения инструкций о том, как установить сетевые настройки на Bridged.

49
Nick Haddad

Я обнаружил, что 10.0.2.2:<port> работает, но только если Правильный режим установлен правильно. После установки моей виртуальной машины я перешел в «Настройки»> «Сеть»> «Адаптер 1».

NAT установлен по умолчанию, а выпадающий список Promiscuous Mode отключен. Я переключился с NAT на Bridged Adapter, который включил выпадающий список Promiscuous Mode, а затем изменил значение с «Deny» на «Allow VMs». Затем я переключился обратно на NAT, который снова отключил Promiscuous Mode, но сохранил новое значение.

Только после этого изменения я смог запустить VM и увидеть мои хост-машины localhost:<port> на моем VM в 10.0.2.2:<port>.

27
bluehazetech

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

Settings> Network> Adapter> Advanced> Port forwarding

Просто вставьте новое правило и установите Host port и Guest port в 80 (для http) или 22 (для ssh) и так далее.

Затем вы можете получить доступ к этой машине, введя только http://localhost

Вы также можете переключить NAT в прозрачный режим.

24
Boris Brdarić

Вам необходимо отредактировать файл hosts на виртуальной машине Windows так же, как вы делаете это для локального хоста:

C:\WINDOWS\system32\Drivers\Etc\хостов

И свяжите ваши виртуальные хосты с 10.0.2.2, если вы просто используете localhost, замените

127.0.0.1 localhost с 10.0.2.2 localhost

Например:

10.0.2.2 localhost
10.0.2.2 local.site1.com
10.0.2.2 local.site2.com

Это говорит вашей виртуальной машине указывать на вашу локальную машину эти доменные имена.

20
William

MacOS

Если вы хотите настроить среду Windows с Virtualbox на Mac, Просто используйте стандартные настройки NAT на адаптере, И в вашей виртуальной машине Windows, перейдите в файл hosts и добавьте следующее:

10.0.2.2       localhost
10.0.2.2       127.0.0.1

В отличие от ответов выше, важно включить обе строки, иначе это не сработает.

19
Artipixel

Мне пришлось зайти в virtualbox и изменить настройки сети на «NAT». После этого я смог запустить localhost, запущенный на моей хост-машине, из моего эмулятора в virtualbox через http://10.0.2.2:3000

17
Pytth

Вам не нужно менять файл hosts или любую конфигурацию Virtual Box. Сохраняйте настройки в NAT. Перейдите к своему экземпляру Windows и запустите «cmd» или откройте cmd.exe. Выполните команду «ipconfig» и получите IP-адрес шлюза Default. Просмотрите http://10.0.2.2:8080 в Windows IE вы увидите, что он совпадает с вашим Mac Safari http: // localhost: 8080/ или http: // 127.0.0.1:8080

14
marlonjuc

Сочетание нескольких вещей в конечном итоге заставило меня работать. Запуск флеш-сервера в macosx.

В моих окнах VM я отредактировал файл hosts: 

  • Запустите блокнот как администратор
  • открыть C:\windows\system32\drivers\etc\hosts 
  • добавить эту запись: 10.0.2.2 outer 

Завершите работу VM и на моем Mac в VirtualBox:

  • Перейдите к VirtualBox > preferences > Network > Host-only Networks > +, чтобы добавить сеть vboxnet1 
  • Перейти к My_VM > settings > Network > Adapter 1
  • Выберите Enable Network Adapter и установите Attached to: в Bridged Adapter
  • Затем установите Advanced > Promiscuous Mode: в Allow VMs
  • Нажмите OK
  • Перейти к My_VM > settings > Network > Adapter 1
  • Установите Attached to: обратно в NAT

Затем я пошел в Adapter 2

  • Установите Attached to: в Host-only Adapter и выберите предыдущую добавленную сеть vboxnet1

Я запустил свой сервер на своем Mac, работающий на 127.0.0.1:5000, и теперь он был доступен на моем виртуальном компьютере по адресу http://10.0.2.2:5000 

Чувак, какой кошмар для тестирования на IE на Mac. Как там не проще?

7
Craicerjack

Я решил добавить переадресацию портов в настройках Virtualbox в сети . Host IP set 127.0.0.1 port: 8080 Guest ip: указать любой IP-адрес для веб-сайта (скажем, 10.0.2.5) port: 8080Now из доступа с гостевой машины http://10.0.2.5:8080 с использованием IE

4
Praveen

В виртуальной коробке, как сказано выше, вы можете добавить эту строку в файл hosts

10.0.2.2   outer

но чтобы сохранить его, если у вас нет прав администратора в вашем VM, просто переместите файл hosts на рабочий стол, затем отредактируйте его, добавив строку 10.0 .... external, сохраните файл и перейдите к его оригиналу. место.

3
Nico

В виртуальной коробке

  1. Настройте свою сеть на мостовую сеть
  2. Перейти к расширенному набору Promiscuous Mode: Allow All

Теперь хитрый бит - это ваш локальный хост. Если вы работаете с Node.js, установите IP-адрес 0.0.0.0, а затем найдите свой собственный IP-адрес, например, cmd: ipconfig -> 10.0.1.3. 

Введите этот адрес с номером порта. И это будет работать. 

2
Joel Chu

проверьте, можете ли вы поразить ваш родительский компьютер с помощью: ipconfig (получите ваш IP-адрес)

ping <ip> или telnet <ip> <port>

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

Затем я смог получить доступ к http://<ip>:<port>

2
Jon

Общие шаги:

  • Общая сеть (добавьте только хост или сетевой адаптер)
  • настроить предпочтительный сервис для прослушивания на соответствующем интерфейсе (интерфейс, подключенный к общей сетевой карте)
  • Использовать IP: порт для доступа к целевой службе, используйте IP, принадлежащий общей сети.
1
Anna

Мне нужно работать на локальном хосте, а не на каком-то странном IP.

1) В терминале Mac введите iconfig -a, чтобы найти свой локальный IP-адрес. Это, вероятно, последний.

en7: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500 options=10b<RXCSUM,TXCSUM,VLAN_HWTAGGING,AV> ether 38:c9:86:32:0e:69 inet6 fe80::ea:393e:a54f:635%en7 prefixlen 64 secured scopeid 0xe inet 10.1.5.60 netmask 0xfffffe00 broadcast 10.1.5.255 nd6 options=201<PERFORMNUD,DAD> media: autoselect (1000baseT <full-duplex,flow-control>) status: active

например 10.1.5.60

2) загрузите ваш образ Windows. Пуск> введите cmd, чтобы получить терминал

3) notepad c:\windows\system32\drivers\etc\hosts

4) добавьте следующую строку 10.1.5.60 localhost

5) откройте IE, и следующий URL должен попасть на сервер, работающий на вашем Mac: http://localhost:3000/

0
Jason Moore

В Windows с виртуальной Windows 7 единственное, что работало для меня, это использование NAT и переадресация портов (не удалось запустить мостовое соединение). Я нашел учебник здесь: http://www.howtogeek.com/122641/how-to-forward-ports-to-a-virtual-machine-and-use-it-as-a-server/ (прокрутите вниз до части с помощью «Перенаправление портов на виртуальную машину»).

С этими изменениями я смог зайти на веб-сайт xampp с « http: //192.168.xx.x: 8888/mywebsite » в Internet Explorer 10 на моей виртуальной машине. 

Я нашел IP в Панели управления XAMPP> Netstat («Система»).

0
Henning Fischer

Если вы используете Virtual Box, вы можете подключить Mac OSX (и я думаю, что Linux) к вашей виртуальной машине Windows, используя одну строку кода -> Я предлагаю остановить окно перед запуском этого в терминале.

VBoxManage modifyvm "YOUR VM NAME" --natdnshostresolver1 on

Я отмечу, что это из Dinghy docs, который я запускаю, но это команда виртуального ящика, так что на самом деле его не должно волновать, что вы используете, пока его Виртуальный ящик

0
Lux.Capacitor