Take the 2-minute tour ×
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free, no registration required.

I installed Apache on Ubuntu in VirtualBox. When I go into the guest and load up Firefox I can see that Apache is working fine when I browse to http://localhost.

I would like to access this same page through the host now. I've tried using the IP address of the guest but nothing comes up. Ideally I will set up my Windows 7 (host) hosts file to send request to http://guestserver.com to the Apache server on the guest. How can I do this?

share|improve this question
add comment

6 Answers

up vote 48 down vote accepted

If you other machines in your physical network must be able to reach your VM (or if the VM needs Internet access), use bridged networking. Otherwise, stick to host-only networking.

  1. Stop your VM and open its settings in the VirtualBox (OSE) Manager
  2. Go to the Network tab
  3. Select the network mode at your choice (bridged networking or host-only) (in the below example, I'm using host-only)

    If you want to use bridged networking, you've to select the right network adapter at Name. For wired connections, you'd select something named like eth0. Wireless connections are usually named wlan0 (the numbers may vary)

  4. Save the settings
  5. Start the Ubuntu VM
  6. When up, you can gather the IP address by running:

    ifconfig | grep addr
    

    In the below output, 192.168.56.101 is the IP address that can be used in your Win7 host system to access your VM:

    eth0  Link encap:Ethernet  HWaddr 08:00:27:70:27:fe  
          inet addr:192.168.56.101  Bcast:192.168.56.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fe7b:25fe/64 Scope:Link
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
    
  7. In your windows host system, edit C:\Windows\drivers\etc\hosts as administrator and add a line:

    192.168.56.101   guestserver.com
    

    If you've a Ubuntu host system, edit /etc/hosts using sudo nano /etc/hosts

  8. Profit!
share|improve this answer
    
This worked perfectly for host-only networking and I can now access the guest from the host's browser. However with a bridged connection, which I would like, I don't have access to the internet from the guest. –  drtanz Jul 7 '11 at 11:06
    
If anyone can help me out with the bridged connection that would be great, I don't know if I'm doing anything wrong, I just selected bridged and started up the guest, but didn't have any connection to the internet, neither from the host. –  drtanz Jul 7 '11 at 12:11
    
That's weird, perhaps you need to reboot your physical machine? Please note that this Q&A site is for Ubuntu. If you've windows-related questions, visit superuser.com –  Lekensteyn Jul 7 '11 at 13:26
    
Ok thanks, I switched to wireless connection and it works now, I'll restart later and if it doesn't work I'll ask on superuser.com, thanks for your help. –  drtanz Jul 7 '11 at 20:53
3  
ipconfig is not a command on Linux, it's ifconfig. Did you mean that? –  Max Jun 18 '13 at 20:07
show 6 more comments

If you cant connect over ip you're not likely to have any success with dns names on a default apache install.

check the network settings of the virtual host, I always putt it to bridged to it can be accessed throughout the entire network.

share|improve this answer
    
I set it to bridged but now the guest doesn't connect to the internet. –  drtanz Jul 7 '11 at 10:58
    
do you get an IP in the quest OS? I usually set up multiple NIC's to match all my physical NIC's. Can you perhaps dump your ifconfig from the quest and host –  PvdL Jul 7 '11 at 16:48
    
When I'm working with wireless it works but with cable no, here are some screenshots showing my config: imageshack.us/photo/my-images/832/guestr.png imageshack.us/photo/my-images/846/virtualbox.png imageshack.us/photo/my-images/9/hostwin7.png –  drtanz Jul 8 '11 at 9:41
    
any help on this please? –  drtanz Jul 10 '11 at 21:58
    
it looks like your computer is directly connected to the internet and that may be the reason why your client isn't getting a IP (v4) –  PvdL Jul 11 '11 at 8:36
show 5 more comments

In bridged mode, if your host uses a static IP address, you should manually config your guest IP in the same range with the host IP. Otherwise, the guest will not be automatically allocated with a valid IP address. HTH.

share|improve this answer
add comment

In my case, I have a router assigning a static IP to my Host PC.

  1. Set the network adapter as Bridge:

    Settings > Network > Adapter 1 (Enable Network Adapter) > Attached to: (Bridge Adapter) > OK

  2. Start the Virtual Machine > log in

  3. Change the VirtualMachine's IP from dynamic to static

    sudo nano /etc/network/interfaces

  4. Under The primary network interface change the word dhcp to static and enter your new static IP or comment the line and add a new one

:

#iface eth0 inet dhcp
iface eth0 inet static
        address 192.168.10.110
        netmask 255.255.255.0
        gateway 192.168.10.1
        network 192.168.10.0
        broadcast 192.168.10.255

Notice my router is working at xxx.xxx.10.x and yours could be at xxx.xxx.0.x or xxx.xxx.1.x or some else.

After you do that, you can have internet conection in both host and guest machine, and type that static IP in your web browser to check you apache server.

share|improve this answer
    
I forgot to say you have to make sure your /etc/hostname is properly configured this way: nameserver [your_isp_primary_dns] and nameserver [your_isp_secondary_dns] –  Nuc134rB0t Jul 2 '12 at 12:58
add comment

Lekensteyn's answer is right. But if you are in a corporate environment, you might have to disable the proxy server for your guest's IP address. For example, if you are using Mozilla Firefox on your Host machine and you are trying to access 192.168.56.101/ on the guest, you need to go to Firefox's Tools->Options->Advanced->Network->Settings and use "No Proxy" or "No Proxy For -> 192.168.56.101".

share|improve this answer
add comment

If you need to access a guest which gets different IP due to use of DHCP, I suggest accessing via it's hostname. However accessing via hostname when the host is Windows might require an extra tool.

The following text was copied from my own answer at superuser.com.:

I suggest you use Multicast DNS to fix this.

Ubuntu is using this by default via Avahi.

The Windows host needs an Avahi-client for it to discover other Avahi-services. If your host already uses some Apple software this is probably already there via a service called Bonjour. However, if this is not already installed then a small version of Bonjour is available for download here: Bonjour Print Services. After installation you should be able to access your guest via .local.

Note: The mDNS system seem to use the .local postfix by default. So, if your hostname is "dev.myapp.com", then the actual hostname will be "dev.myapp.com.local".

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.