Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

I was wondering if someone could give me a simple guide on how to set up virtual networking in VirtualBox (4.0.2) so that the following scenarios work:

  • Both Host and Guest can access Internet
  • Host can ping Guest and vice versa
  • Host can access for example an apache web server running on Guest and vice versa

I've been fiddling around with the various Network Adapters available in the settings for my Guest, but I'm just not able to figure it out. Anyone that can help me out here?

The host is running Windows 7 32-bit and the guest is running Ubuntu 10.10 32-bit.

share|improve this question
    
I have the same setup set up with bridged networking. I had problems using the paravirtualsed network adaptor virtio-net, it was very flaky. The emulated nics were fine though. –  ollybee Apr 6 '11 at 20:34

4 Answers 4

Try this:

  1. Setup the virtualbox to use 2 adapters:
    • The first adapter is set to NAT (that will give you the internet connection).
    • The second adapter is set to host only.
  2. Start the virtual machine and assign a static IP for the second adapter in Ubuntu (for instance 192.168.56.56). The host Windows will have 192.168.56.1 as IP for the internal network (VirtualBox Host-Only Network is the name in network connections in Windows). What this will give you is being able to access the apache server on ubuntu, from windows, by going to 192.168.56.56. Also, Ubuntu will have internet access, since the first adapter (set to NAT) will take care of that.
  3. Now, to make the connection available both ways (accessing the windows host from the ubuntu guest) there's still one more step to be performed. Windows will automatically add the virtualbox host-only network to the list of public networks and that cannot be changed. This entails that the firewall will prevent proper access.
  4. To overcome this and not make any security breaches in your setup:
    • go to the windows firewall section, in control panel,
    • click on advanced settings. In the page that pops up,
    • click on inbound rules (left column), then on new rule (right column). Chose custom rule, set the rule to allow all programs, and any protocol. For the scope, add in the first box (local IP addresses) 192.168.56.1, and in the second box (remote IP) 192.168.56.56. Click next, select allow the connection, next, check all profiles, next, give it a name and save.

That's it, now you have 2 way communication, with apache/any other service available as well as internet. The final step is to setup a share. Do not use the shared folders feature in virtualbox, it's quite buggy especially with windows 7 (and 64 bit). Instead use samba shares - fast and efficient.

Follow this link for how to set that up: https://wiki.ubuntu.com/MountWindowsSharesPermanently

share|improve this answer
    
This worked perfectly. Thanks. Did not have to touch firewall etc. Still having problem with bridge. –  FractalSpace Oct 12 '13 at 2:17

Given the requirements, I would choose a "bridged" adapter. http://i.stack.imgur.com/jdOky.png

share|improve this answer
1  
the link is broken. –  Alister Bulman Jun 29 '12 at 15:52

The best way to do this is to use a Bridge Adapter in virtualbox. In virtual box go to the settings for your machine->Network->Adapter 1 and select Bridged Adapter. This will make you virtual machine part of your main network.

If you have a dhcp server it should supply an address etc. to the virtual machine which will allow it to communicate with the rest of your systems and vice versa.

share|improve this answer
    
When I did this I was not able to ping the Host from the Guest. Should I be able to do this? Is it something in my Host blocking the ping perhaps? –  Svish Jan 21 '11 at 14:44
    
You may have to allow ping through your windows firewall have a look here for how to do that. –  Iain Jan 21 '11 at 15:27

Setup host-only network and allow sharing of internet connection for that network. In this way you will have virtual interface on host that will be connected to guest.

share|improve this answer
    
How would I do this? I tried to use host-only network for the guest, but then it seems to use ipv6 and I couldn't ping in either direction as far as I could understand... –  Svish Jan 21 '11 at 14:03
    
You can manually setup IPv4 addresses on both ends. –  gelraen Jan 21 '11 at 14:13
    
Static IP you mean? There's no way of having the guests get their IP from DHCP? Or will they be like behind a NAT? Also, what do you mean by "allow sharing of internet connection for that network"? How can I do that? –  Svish Jan 21 '11 at 14:17
    
Yes, static IP. It is better to have IP statically assigned if you want communicate with guest. With host-only guest will be directly visible from host. Internet connection sharing in windows® configured on last tab in properties of your internet connection. –  gelraen Jan 21 '11 at 17:48

protected by Chris S Apr 15 '13 at 2:06

Thank you for your interest in this question. Because it has attracted low-quality answers, posting an answer now requires 10 reputation on this site.

Would you like to answer one of these unanswered questions instead?

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