Ubuntu на сервере VirtualBox и Rails

У меня Windows 7. Установил VirtualBox и Ubuntu 11.04 в качестве гостевой ОС. Работа в сети осуществляется через NAT. Все нормально: у меня есть интернет на Ubuntu. Я могу получить доступ к Windows из Ubuntu по его ip. Но я не могу получить доступ к Ubuntu по его IP-адресу, который показывает ifconfig.

Я запускаю рельсы на Ubuntu.

Как я могу решить эту проблему: подключиться к серверу Ubuntu/Rails на порту 3000 из моей Windows?


person arthur.borisow    schedule 23.07.2011    source источник


Ответы (3)


По умолчанию NAT VirtualBox разрешает виртуальной машине доступ в Интернет; но не позволяет физической машине получить доступ к виртуальной.


Самым простым решением было бы использовать другие сетевые настройки, отличные от NAT, для вашей виртуальной машины. Например, мост должен работать нормально (однако ваша виртуальная машина будет видна в вашей сети).

Другим решением было бы использование перенаправления портов; об этом может помочь эта статья: Как получить доступ через ssh к гостевой машине Virtualbox.

person Pascal MARTIN    schedule 23.07.2011
comment
мост не работает: Ubuntu вообще не может установить сетевое соединение - person arthur.borisow; 23.07.2011
comment
У меня запущена виртуальная машина, она настроена как pont (французский перевод моста), и я могу подключиться с моей физической машины к виртуальной - и наоборот: виртуальная машина точно так же, как настоящий, в моей локальной сети; странно... Может у вас в сети нет DHCP или что-то в этом роде? - person Pascal MARTIN; 23.07.2011
comment
Единственное, что я знаю, это то, что у всех в сети статический ip. - person arthur.borisow; 23.07.2011
comment
Ой ; это может объяснить это: виртуальная машина не получает IP-адрес, поэтому не так много работы в сети ... Это означает, что вам придется пойти другим путем: либо NAT с переадресацией портов (сам никогда не проверял это , см. статью, на которую я дал ссылку) или какой-либо другой вид сети (никогда не использовал их) - person Pascal MARTIN; 23.07.2011
comment
Спасибо за это. Но я также хочу работать, когда у меня нет сети. Итак, я думаю, что буду использовать WVMware Player. у меня с этим проблем не было - person arthur.borisow; 23.07.2011
comment
Да, сеть NAT VMWare работает не так, как VirtualBox: сеть VMWare позволяет физической машине подключаться к виртуальной... - person Pascal MARTIN; 23.07.2011

Раньше я мучился с настройкой аналогичной установки, пока не нашел Vagrant. Vagrant упрощает настройку, подключение и работу с виртуальной машиной Linux. После того, как Vagrant настроен, вы можете просто ввести vagrant ssh, чтобы войти в виртуальную машину, и ваша учетная запись получит автоматические права sudo, и все будет работать как положено — вам даже не придется иметь дело с входом в виртуальную машину. Первоначальная настройка ssh выглядит немного сложнее под Windows, поскольку вам нужно настроить Putty, прежде чем вы сможете подключиться.

В Vagrant есть простой файл конфигурации, который вы используете, чтобы указать, какие порты от виртуальной машины вы хотите перенаправить на свою машину, используя такой синтаксис:

  config.vm.forward_port("rails", 80, 3000)
  config.vm.forward_port("tomcat", 8000, 8080)

и обо всем позаботятся. Подробности здесь

Если, например, вы используете Rails и запускаете vagrant с помощью команды vagrant up в каталоге вашего проекта Rails, то этот каталог доступен на виртуальной машине. Поскольку это один и тот же общий каталог между машинами, любые изменения, которые вы вносите в каталог проекта Rails на своем компьютере с помощью обычного редактора, видны и на виртуальной машине. Это делает тестирование в других средах очень простым.

Инструкции по настройке Vagrant с Windows находятся здесь, а RailsCast об этом здесь. Обратите внимание, что Vagrant не имеет ничего общего с Rails — вы можете использовать его для настройки любой среды виртуальной машины, которая вам нужна.

person SnapShot    schedule 31.12.2011

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

Может быть, у кого-то есть умный хак для этого, но зачем вам вообще это делать?

Ваше решение состоит в том, чтобы либо использовать firefox для перехода к вашему локальному хосту в сеансе Linux виртуального бокса, либо разрабатывать на окнах.

Лично я работаю наоборот. Я запускаю Ubuntu 11.04, и у меня есть виртуальные установки XP, 2000, me, Vista и 7, поэтому я могу тестировать в разных средах. В конечном итоге я неизбежно делюсь папкой своего проекта из Ubuntu, чтобы я мог запускать проект в любой ОС, для которой я тестирую.

person jamesc    schedule 23.07.2011
comment
RoR очень-очень медленный на Windows - person arthur.borisow; 23.07.2011
comment
Это интересно. У меня не было проблем с производительностью при штатной установке Win XP до перехода на Linux. Может дело в Vista/Win 7? но, безусловно, работа через виртуальную коробку на любой ОС будет медленнее, чем работа в родной ОС - person jamesc; 23.07.2011
comment
Ruby сам по себе не очень дружит с окнами. Он любит Linux и Mac OS :( - person arthur.borisow; 23.07.2011
comment
в то время как я предпочитаю Linux и Mac Windows, я должен сказать, что мой опыт (3 года RoR) заключается в том, что RoR / Ruby не более PITA для Windows, чем для Linux, но Mac кажется немного более болезненным для настроить в первую очередь - person jamesc; 23.07.2011