using VMWare Player 5, how can I access a web server running in a VM via an external machine?

jcollum picture jcollum · Dec 28, 2012 · Viewed 20.5k times · Source

Win7 PC running Rails in an Ubuntu VM via VMWare Player. I'm working on a site and would like to show it to a friend who's outside my network.

I found this blog post, which got me very close: http://blog.fardad.com/2012/06/vmware-player-and-custom-nat-port-map.html

OK, so I have the VM that is using NAT. As I understand it, that means that the VM will appear to have the same IP address as the parent machine to outside traffic.

I went into NAT settings and added port forwarding:

Host Port: 8200 Type: UDP Virtual IP Address: 192.168.198.184:3000 

OK so my understanding is that I should now be able to go to 192.168.1.1xx:8200 (the IP of my 'real' PC) and access the webserver running in the VM. But when I go to that address, I don't get anything. I can ping 192.168.198.184 (the VM) from the PC.

What I want to be able to do is go into my router and set up a port that will eventually forward into the VM.

It seems like I'm missing something very small but I don't know what that is. Help, please.


If anyone is curious how to get the Virtual Network Editor:

go to the vmware-directory and run in elevated cmd.exe-box

rundll32.exe vmnetui.dll VMNetUI_ShowStandalone

http://communities.vmware.com/message/2155960#2155960

Answer

xiaoyifang picture xiaoyifang · Sep 3, 2014
  1. Find the vmnetnat.conf file, usually located in

    C:\ProgramData\VMware\vmnetnat.conf
    

    or

    C:\Users\Application Data\VMware\vmnetnat.conf
    
  2. Edit vmnetnat, add similar line in the [incomingtcp] section

    8200=192.168.198.184:3000
    
  3. Restart VMware NAT Service.