How do I access my Ubuntu Server installed on Virtual box from anywhere in the World - networking

I am trying to make an IOT using nodemcu and a LED. I want to access the Ubuntu Server(which is installed in the virtual box) through some other network(outside my LAN). How can I do it? I read many articles online, but I am not able to figure it out. I tried port forwarding but it did not work.
I am not sure what I am doing wrong. Is there's a problem in the port forwarding, or I am following a wrong method.
I have installed Ubuntu Server 16.04 LTS on my laptop via VirtualBox. I have installed LAMP. Also, network set to bridged adapter, plus I have dynamic IP
As I logged in, I ran ifconfig. It gave me the inet address as 192.168.16.101

Did you set the VM network interface to be NAT or Bridged?
If it is NAT, then you are essentially double NATTed which means you will need to port forward from your router to the VM host and then you will need to port forward from the host to the VM as the IP assigned will be local to the host machine.
However, the easiest is to set the VM network interface to Bridged.
This will mean the VM will be able access your network directly as it should be on the same subnet as your laptop and appear as another device, which your router will be able to port forward to.

Related

port forwarding to a virtual machine using Virtualbox

I want to forward a port to a VM. However i dont want the VM to be behind my host PC, i want it to be connected directly to the router so that packets coming on that port go directly to the VM without passing through my host PC.
In other words, i want the VM to look like any other machine on the network.
EDIT: i used bridged adapter, but i couldnt make it connect to the network.
Thank you
The VM will use the Ethernet port in all cases and the OS in it.
Typically if you have Windows and a VM with a bridged port, you will see the traffic flow when you take a capture on the Windows machine. IP won't be the one from the Windows machine but the traffic, like said, will flow through the same physical interface.
Secondly, you need to use a bridged adapter. For the details you can find help here: Bridged networking not working in Virtualbox under Windows 10

Windows: How to redirect udp traffic to another port

I currently have a virtual machine running on Windows. The VM is running Linux and has a virtual box network between the windows machine and the linux machine. The VM is running a application that I want to be able to connect to from the outside world.
To make this possible I tried port forwarding from the windows internet interface, to the windows virtualbox interface. Finally I created another port forward from the windows virtualbox interface to the Virtual machine interface.
netsh interface portproxy add v4tov4 listenport=5000 listenaddress=10.11.65.103 connectport=7890 connectaddress=192.168.56.1
netsh interface portproxy add v4tov4 listenport=7890 listenaddress=192.168.56.1 connectport=5000 connectaddress=192.168.56.101
So if I connect to the 10.11.65.103:5000 on the Windows Machine it will be the same thing as connecting to 192.168.56.101:5000 of the VM.
[Win Internet Intf] [Win VM Intf] [VM intf]
10.11.65.103:5000<----->192.168.56.1:7890 <------> 192.168.56.101:5000
Unfortunately, this is not working for me... Can someone tell me why? Am I using port forwarding correctly?
If you use a bridged network adapter your Linux machine should pick up an IP off the host network (if you have DHCP enabled on the network, or set a static IP on the linux box). Then you should then not need the port forwarding.
If you cant use that approach and are using a NAT adapter (which it looks like you are), then you will need to enable port forwarding within VB. The details are in section 6.3 of the VB Help with this in place you should only then need the first port forward, VB will be doing the second.
Dont forget to make sure the relevant firwalls on the Windows and Linux machines are open.

Get IP of VM running on an Ubuntu server configured on bridged networking

I want to set up an exported VM on an Ubuntu Server using VirtualBox on headless mode.
I have the VM up and running and bridged with the ethernet interface of the host (em1), so the dhcp of the host should now assign an IP to the VM if I'm not mistaken.
Is there a way to check if this is working and if yes to get the VM's IP?
Since this is on headless mode so without GUI, the only way to login to the VM is through ssh and for that I need the IP..
welthenwel,
you can do this with VBoxManage.
from a shell, just type:
VBoxManage guestproperty enumerate VM_NAME --pattern */IP
and you will get as response something like in the below image.
now, ignore the fact that I run this cmd from a Windows host, because its behaves exactly the same from inside a linux host
I'm not very familiar with VirtualBox. Bridged with VMWare Workstation meant the IP is given by your default DHCP server, which means you could look up the assigned IP address there (e.g. your router - if you have access to it).
Another option would be a ping sweep of your network segment as I believe Ubuntu doesn't drop ICMP requests.

Connect to VM running on the same computer without LAN

I have a windows 2003 VM running on my windows xp machine.
The machine name of the VM is itdom.domain.com
The windows xp host machine is disconnected from the LAN.
I want to be able to connect to the VM from the host and vice versa using there computer names. For example the URL http://itlab.domain:7080/domainsm must be accessible from the host computer.
Is there any configuration that I can do on any of the machine to do this.
Just because you have no physical network connection doesn't stop you setting up networking on the host and guest machines. One way of doing this is to add an IP address to the host machine's physical network port and create a bridged network on that port so that the guest can also see it.
You don't say which VM technology you are using, but in many of them you can setup an internal network between the host and guest. All you need to do then is edit each hosts file to add a hostname for the IP address of the other machine. You may also need to configure firewalls to allow access between the two.
No doubt there are also other ways to achieve this.

How can a VM work out the address of the host node?

How can a Linux VM work out the IPaddress of the host node?
I need to connect to the IP address of the host node. I also need to know when it changes as it could be a dynamic IP. I need it to connect to a service there.
Is there some way to check this, irregardless of the type of VM, VMWare, Xen, Virtual Box?
It needs to be a Linux script, and should work regardless of the host operating system, whether Linux or Windows
My solution is to bridge a network adapter in the VM with one on the host, making it a dymanic IP address. As such it will always be on the subnet as the host adapter.
Next thing is to run an HTTP service on the host IP, that the VM will scan its network range on. The IP the service responds on will be the IP of the host. Having an IP service on the host is not ideal, but it is the best I can come up with.

Resources