Доступ к Rails-серверу из VirtualBox

В настоящее время я запускаю сервер Rails 3.2.3 на ноутбуке под управлением Ubuntu 12.04 и хотел бы получить доступ к нему через VirtualBox (версия 4.1.16) с виртуальной машины WinXP (SP3), которая также работает на ноутбуке. Пробовал использовать мостовую сеть вместо NAT, но в итоге отказался от соединения в Firefox (версия 13). Firefox отображает страницу с ошибкой, которая включает в себя следующее:

Невозможно подключиться.

Firefox не может установить соединение с сервером на localhost: 3000.

Есть ли простой способ получить доступ к Rails-серверу из VirtualBox удаленно? Не уверен, что Vagrant решит проблему, поскольку она предназначена для работы по-другому (от ОС хоста до виртуальной машины). Было бы неплохо получить доступ к серверу Rails удаленно, поскольку это означает, что тестирование может быть легко выполнено с помощью Internet Explorer (с использованием версии 8) на одном ПК по требованию.

Ответы

Ответ 1

Использование NAT:

  • Перейти в VirtualBox... Настройки → Сеть → Port Fowarding
    • Введите 3000 для порта хоста.
    • Введите 3000 для гостевого порта
  • Перейдите на гостевую машину VirtualBox.
  • В терминальном прогоне ifconfig используйте inet addr для eth0. В моем случае это 10.0.2.15
  • При запуске сервера rails на гостевой машине VirtualBox используйте следующую команду:
    $rails server -b 10.0.2.15
    Вы хотите привязать этот адрес.
  • В вашей хост-системе перейдите в браузер и посетите http://127.0.0.1:3000

Ответ 2

Ответ: да, есть простой способ сделать это. Я использую VirtualBox для OS X Mountain Lion, но я подозреваю, что он будет работать одинаково для Ubuntu.

  • Вам не нужно использовать мостовой режим, NAT работает нормально.
  • Просто используйте IP-адрес хост-машины. например 192.168.xxx.xxx:3000
  • В качестве альтернативы вы можете использовать ipconfig /all на своей виртуальной машине в командной строке (используйте поиск/поиск в Windows (windows + f) и выполните поиск "cmd" ). Найдите Default Gateway и используйте этот IP-адрес. В моем случае это 10.0.2.2, поэтому 10.0.2.2:3000 работает

Ответ 3

Вместо localhost вы должны ввести IP-адрес хост-машины. В мостовом режиме vm и ваш хост-компьютер имеют разные IP-адреса в вашей локальной сети.

Ответ 4

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

Ответ 5

Вам нужен локальный IP-адрес Ubuntu. Чтобы получить этот тип ifconfig в терминале.

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

Ответ 6

Запустите Rails-сервер удаленно, а затем просто подключитесь к нему:

http://virtualboxhost:3000

Если это не работает:

  • Попробуйте ping virtualboxhost
  • см. netstat -l на виртуальном сервере для открытого порта 3000

Ответ 7

Если вы используете Pow...

... и настроили ваше приложение как myapp, вы не можете получить к нему доступ как myapp.dev с гостевой машины, но вы можете использовать домен "magic" xip.io. Просто доступ http://myapp.10.0.2.2.xip.io, и он должен работать!