dahngeek
10/13/2016 - 9:17 PM

How to map an ip + port to a local domain using hosts file and netsh

How to map an ip + port to a local domain using hosts file and netsh

I managed to achieve this by using Windows included Networking tool netsh.

As Mat points out : The hosts file is for host name resolution only, so a combination of the two did the trick for me.

Example

Overview

example.app:80
 |                           <--Link by Hosts File
 +--> 127.65.43.21:80
       |                     <--Link by netsh Utility
       +--> localhost:8081
Actions

Started my server on localhost:8081
Added my "local DNS" in the hosts file as a new line
    127.65.43.21     example.app
        Any free address in the network 127.0.0.0/8 can be used.
        Note: I am assuming 127.65.43.21:80 is not occupied by another service.
        You can check with netstat -a -n -p TCP | grep "LISTENING"
added the following network configuration with netsh command utility
    netsh interface portproxy add v4tov4 listenport=80 listenaddress=127.65.43.21 connectport=8081 connectaddress=127.0.0.1
I can now access the server at http://example.app

Notes:
- These commands/file modifications need to be executed with Admin rights

- netsh portproxy needs ipv6 libraries even only to use v4tov4, typically they will also be included by default, otherwise install them using the following command: netsh interface ipv6 install

You can see the entry you have added with the command:

netsh interface portproxy show v4tov4

You can remove the entry with the following command:

netsh interface portproxy delete v4tov4 listenport=80 listenaddress=127.65.43.21