There are a few solutions to your dilemma. Your VM likely has its port forwarded to the router in NAT mode. In other words, the port you are accessing currently belongs to the VM. To make the two endpoints separate, you can either change the port of the application you are trying to reach on the local (and make sure that port is accessible at the router). Also, you could stop forwarding the VM. This means it wont be accessible. Finally, you can bridge the VM. This method is described below.
In order to give your virtual machine its own IP address, and thereby distinguish it from the host, you can configure it to use a bridged network.
By default, Most VM software uses NAT networking to "hide" the VMs from outside connections. With NAT, the VM is accessed via the address of its network. In your case, the port of the VM is probably forwarded, so it sorta takes over the network, or at least that port
However, If you switch to bridged mode, your VM will use its own IP, and will therefore be accessed via a completely different channel from its host.
The process for changing the IP networking mode is dependant on the VM software atop which your VMs are running.
Here is a tutorial for changing it inside VMWare and Virtualbox. It also provides more detailed info on the subject, so you will be able to find it if you are using a different VM software.
The linked article does this for a different purpose, but the process is the same. The result will be 2 (or 3) separate IP adresses and no confusion.
If you find that you are in bridged mode already, then you are using the wrong IP. Try accessing the localhost via the router's IP.
By the way, the other methods mentioned at the beginning are also in the article. At least they should make more sense now.