Short Description:
My host OS is Ubuntu-12.04 and using VirtualBox I have set up a VM of Oracle Linux 6.4 (based on RHEL) with Apache httpd web server. I need to access the web pages served by the VM from my host Ubuntu.
Additional Details:
Here are the configurations:
The 1st network adapter of the VM is configured as
NAT
, since I need it to use the host's Internet connection. See image below:I have enabled a 2nd adapter as Host-only, so I can access the VM from the host (
ssh
orscp
to guest VM from host, etc). This is working fine. The IP of the guest VM is manually set to10.10.10.15
and I can successfullyping
,ssh
andscp
to the guest VM without any problem. See below:
Inside the VM, I have set up Apache successfully and it's working for localhost
but when I try to access the page from the host, by entering 10.10.10.15
in Chromium or Firefox, it fails to connect! :(
I have also tried to add an entry inside /etc/hosts
as follows, but entering test-website.net
inside Chromium or Firefox still gives the same error! :(
10.10.10.15 test-website.net
One more thing to note is about SELinux
. As you might know, SELinux
is enabled by default on RHEL-based distros such as CentOS and Oracle-Linux. To make sure that SELinux is not messing up my work, I have configured it to permissive
mode in /etc/selinux/config
and confirming the effect after reboot using sestatus
:
SELinux status: enabled
SELinuxfs mount: /selinux
Current mode: permissive
Mode from config file: permissive
Policy version: 26
Policy from config file: targeted
This may sound like a duplicate of the following questions, but the answers in these questions suggest to set up a Host-only
adapter for the guest and configure /etc/hosts
in the host, which I have already tested and didn't work for me:
Any help?!
I figured out what was causing the problem ...
iptables
!The configuration I have set up for the VM should work without any problem.
If anyone with the same setup is facing problems, checkout the following:
iptables
) configuration;SELinux
configuration;cheers
:)
Did you bind apache to all interfaces or just
lo
?BTW: You don't have to use a 2nd network (host only) so as to access the guest services.
By using NAT port forwarding, you can set up rules to map web and ssh/sftp/ftp ports so that you can access those by accessing localhost:PORT on the host.
For example to map guest ssh to host port 2222, you can access it by
ssh -p 2222 user@localhost
VBoxManage modifyvm "VM name" --natpf1 "guestssh,tcp,,2222,,22"
NOTE: Forwarding host ports < 1024 impossible, it is a NAT limitation.