How to create an IP alias on Windows

2019-01-22 23:00发布

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.

标签: windows ip netsh
7条回答
beautiful°
2楼-- · 2019-01-22 23:32

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.

查看更多
Evening l夕情丶
3楼-- · 2019-01-22 23:37

for anyone coming, as i have, from google:
another way to accomplish this is to set a route and set the destination to understand the ip, an example: recently at our company our service was stopped for our T1, some old software that no one had the code for hard coded the external address of our server and we needed to make it go to an internal address of 192.168.2.100 so i set this route on the client machines: route -p add 208.44.37.176 MASK 255.255.255.248 192.168.2.100 METRIC 1 and on the server i set it's interface to listen on 208.44.37.182

so when the client tries to connect to 208.44.37.182 it would check the routing table, it would do a bitwise AND on the netmask for anything in the routing table to match to the routing address (the 208.44.176) and then route it to the gateway (192.168.2.100) failing this is routes to the default gateway.

so in this case it routes it through to 192.168.2.100 who sees it's addressed to him and replies in turn. if he wasn't listening on 208.44.37.182 then he would ignore it (or, if he is configured to do so, pass it along til someone takes it or drops it)

(for those curious about why that netmask:
182 is 10110110
248 is 11111000
176 is 10110000
for a bitwise AND if one of the two bits is 0, the result is 0, if they are both 1 it's 1. so you see taking 182 and bitwise ANDing it to 248 gives 176)

those are the things i learned when working on this, hope it helps someone else.

查看更多
男人必须洒脱
4楼-- · 2019-01-22 23:38

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.
查看更多
叼着烟拽天下
5楼-- · 2019-01-22 23:41

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

查看更多
别忘想泡老子
6楼-- · 2019-01-22 23:43

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

查看更多
狗以群分
7楼-- · 2019-01-22 23:43

I found the answer.

If you obtain your IP address from DCHP, you don't need to configure IP address (making sense knowing that it is the service of a DCHP) so all you need to do is to determine the gateway.

查看更多
登录 后发表回答