user1467809
user1467809

Reputation: 201

Accessing Rails Server From VirtualBox

I am currently running Rails 3.2.3 server on a laptop running Ubuntu 12.04 and would like to access it via VirtualBox (ver 4.1.16) from a WinXP (SP3) VM, which is also running on the laptop. Tried using bridged networking instead of NAT but end up with a refused connection in Firefox (ver 13). Firefox displays an error page which includes the following:

Unable to connect.

Firefox can't establish a connection to the server at localhost:3000.

Is there a straightforward way to access the Rails server from VirtualBox remotely? Not sure if Vagrant will resolve the issue since it is designed to work the other way around (from the host OS to the VM). Would be good to access the Rails server remotely as it means testing can be easily done with Internet Explorer (using ver 8) on a single PC on demand.

Upvotes: 20

Views: 15141

Answers (7)

szeryf
szeryf

Reputation: 3387

If you're using Pow...

...and have configured your app as myapp, you can't access it as myapp.dev from the guest machine, but you can use the "magic" xip.io domain. Just access http://myapp.10.0.2.2.xip.io and it should work!

Upvotes: 0

erik998
erik998

Reputation: 401

Using NAT:

  1. Go to VirtualBox... Settings -> Network -> Port Fowarding
    • Enter 3000 for Host Port
    • Enter 3000 for Guest Port
  2. Go to your VirtualBox guest machine.
  3. In the terminal run ifconfig, use the inet addr for eth0. In my case it is 10.0.2.15
  4. When you run the rails server, in the VirtualBox guest machine, use the following command:
    $ rails server -b 10.0.2.15
    You want to bind to that address.
  5. On your Host System, go to the browser and visit http://127.0.0.1:3000

Upvotes: 40

Alter Lagos
Alter Lagos

Reputation: 12550

If you're running rails in development mode, it comes with webrick by default which has access restricted just to localhost. You could use something like thin in dev, which allows access from another machines.

Upvotes: 1

radixhound
radixhound

Reputation: 2220

The answer is yes there is a simple way to do it. I am using VirtualBox on OS X Mountain Lion, but I suspect it will work the same for Ubuntu.

  1. You don't need to use bridged mode, NAT works fine.
  2. Just use the IP address of your host machine. e.g. 192.168.xxx.xxx:3000
  3. As an alternative, you can use ipconfig /all on your virtual machine in the command prompt (use windows search / find (windows+f) and search for 'cmd') Look for Default Gateway and use that IP. In my case it is 10.0.2.2 so 10.0.2.2:3000 works

Upvotes: 17

odiszapc
odiszapc

Reputation: 4109

Start Rails server remotely and then just connect to it:

http://virtualboxhost:3000

If it doesn't work:

  1. Try ping virtualboxhost
  2. see netstat -l on virtualboxhost for opened 3000 port

Upvotes: 0

bbonamin
bbonamin

Reputation: 30773

You need the local IP of Ubuntu. To get this type ifconfig in the terminal.

I've had success using NAT with virtualbox, after you get the machine's ip, type it with the 3000 port from the VM and you should be able to access it.

Upvotes: 0

bnvdarklord
bnvdarklord

Reputation: 309

Instead of localhost you should have typed the IP of the host machine. With bridged mode the vm and your host machine have a different IP in your local network.

Upvotes: 6

Related Questions