Доступ к 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
, и он должен работать!