I am running 2 VMs that they both are listening to ports 80/443. I have just one public IP and several subdomains that are pointing to my public IP. I would like to somehow be able to access both VMs on ports 80/443.

The scenario I have in mind is to somehow involve a third VM which will receive the 80/443 requests from the outside world and redirect them accordingly to the VMs. That third VM it could act as a "Proxy" which will make the requests on the VMs using the local IP which no ports are involved. Im not quite sure if thats possible, but Im open to any suggestions.


  • Unfortunately questions about host/server/VM configurations are off-topic here, as are questions about protocols above OSI layer-4. You could try to ask this question on Server Fault for a business network, or on Super User for a personal network. – Ron Maupin Dec 6 '17 at 14:46

You can't solve this problem on a port-forwarding, reverse NAT basis. You'll need a reverse proxy that terminates the HTTP/S connection and uses the backend server to serve the request based on the URL requested. Squid and nginx come to mind, but I'm afraid proxies are off-topic here.

Alternatively, you need more than one "routed" public IP address.

Note that the router will not forward through the DNS server. When a DNS name is used for forwarding the external port, the DNS server is used to learn the IP address of the server and the router then forwards the packets directly.

| improve this answer | |

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