Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to create an IP alias on Windows

Tags:

windows

ip

netsh

I need to create an alias for my network interface such that it can be accessed locally with either 127.0.0.1 or 33.33.33.33.

In *nix I would do this:

sudo ifconfig en1 inet 33.33.33.33/32 alias

It appears that the netsh tool may be able to do the same thing. If so, how? I've seen some examples that seem close, but I don't understand the options provided.

The motivation for this is to run two instances of JBossAS on the same machine without port offsets. Thus, they would need to use the same port numbers without conflicting.

like image 651
codefinger Avatar asked Jan 20 '12 16:01

codefinger


5 Answers

You'd be correct. Also, you can add multiple addresses without touching the command line using the advanced interface properties screen.

netsh interface ip add address "Local Area Connection" 33.33.33.33 255.255.255.255

Windows Advanced TCP/IP Settings

like image 105
Greg Buehler Avatar answered Oct 17 '22 08:10

Greg Buehler


It may depend on which version of Windows you have, but here are some steps from my Windows 7 machine. You want to get to your "local adapter settings". There are probably 1000 ways to do this, but here is one.

  • Go to Control Panel -> Network and sharing center
  • Click "change adapter settings" on the left
  • Right click on your local network connection and go to properties
  • Select your TCP/IP v4 protocol and click properties
  • TCP must be set to static addressing, so set it to "Use the following address" and set up your default IP config for the network. Then click advanced.
  • Under IP Address in Advanced TCP/IP settings, click Add
  • Add extra IP addresses as needed

enter image description here

Another approach is to add the Microsoft Loopback adapter as a network device. This lets you set up a virtual network adapter on your machine. This can be useful for network testing from your own machine. See http://social.technet.microsoft.com/Forums/en-US/w7itpronetworking/thread/259c7ef2-3770-4212-8fca-c58936979851/ for more info.

like image 31
Michael Levy Avatar answered Oct 17 '22 08:10

Michael Levy


There is a comment about how to add alias while still using DHCP for the main one. I have similar problem.

The solution is:

  1. Add Microsoft Loopback Adapter as a network device (as suggested by one of the comment).
  2. Specify IP address for the new network interface.

(1) Add Microsoft Loopback Adapter as a network device (taken from here):

  1. Click the Start menu.
  2. Search for “cmd".
  3. Right-click on “cmd” and select “Run as Administrator”
  4. Enter “hdwwiz.exe”

From that point on it's the same approach as under Vista, i.e.:

  1. In the "Welcome to the Add Hardware Wizard", click Next.
  2. Select "Install the hardware that I manually select from a list (Advanced)" and click Next.
  3. Scroll down and select "Network adapters" and click Next.
  4. Select under Manufacturer "Microsoft" and then under Network Adapter "Microsoft Loopback Adapter" and click Next.

(2) To see the newly added network interface, and specify an IP address:

  1. Go to Control Panel -> Network and Sharing Center
  2. Click on "Change adapter setttings" on the left side
  3. Find the entry with Device Name "Microsoft Loopback Adapter"
  4. Right click on it, and choose Property
  5. Choose "Internet Protocol Version 4 (TCP/IPv4) and hit Properties button.
  6. Select "Use the following IP address:", and enter IP address, Subnet mask, and Default gateway as needed.
like image 38
januarvs Avatar answered Oct 17 '22 09:10

januarvs


go to C:\Windows\System32\drivers\etc\hosts on windows and add a new entry as below

eg: 106.200.247.101 abc.com

Then you will be able to refer to using given hostname

like image 32
Pankaj Jaiswal Avatar answered Oct 17 '22 10:10

Pankaj Jaiswal


As pointed out above, when using a static IP address, the GUI provides a suitable way to achieve this. However...

You cannot add an alias in the GUI when using DHCP to get an address. The "netsh" command, however, is helpful to achieve this:

EDIT: The above statement used to be true, but at some point Microsoft quietly fixed the issue by adding a new setting. All credit to this answer.

Setting the property dhcpstaticipcoexistence to enabled solves the issue.

e.g. (Using a cmd or powershell as a user with local admin rights)

netsh interface ipv4 set interface interface="Interface Name" dhcpstaticipcoexistence=enabled

netsh interface ip add address "Interface Name" 192.168.2.2 255.255.255.0

This has to be done as an administrator.

Use "ipconfig" to check what the network interface is called. In my case it is "Local Area Connection".

like image 20
Lifeboy Avatar answered Oct 17 '22 08:10

Lifeboy