To add additional IPv4 address on Windows Server 2019, attach the provider-assigned address to the existing network adapter without disturbing the server’s primary route. The PowerShell method takes about five minutes, and the graphical method is included for Desktop Experience installations.
Prerequisites
- A VPS running Windows Server 2019 with Desktop Experience for the GUI method, or Server Core for the PowerShell method.
- RDP access with a local or domain administrator account, plus console access through the VPS control panel in case a network change interrupts RDP.
- The additional IPv4 address and its prefix length or subnet mask, supplied for this specific server. Do not invent an address or copy a gateway from another VPS.
- The existing adapter name, which you will identify in Step 1. Most installations call it
Ethernet, but virtual adapters can have another name. - A service that will use the new address, if you need to test an application binding. Adding an address alone does not open a port in Windows Defender Firewall.
- A VPSLake Windows RDP server if you need a Windows environment for this procedure.
Step 1: Identify the active adapter and current addresses
Finding the correct interface first prevents you from adding the address to a disconnected virtual adapter.
Open Windows PowerShell → Run as administrator through RDP or the VPS console. Run:
Get-NetAdapter | Where-Object Status -eq "Up" | Format-Table ifIndex,Name,InterfaceDescription,Status
Get-NetIPAddress -AddressFamily IPv4 | Format-Table InterfaceAlias,IPAddress,PrefixLength,PrefixOrigin,AddressState
Get-NetRoute -AddressFamily IPv4 -DestinationPrefix "0.0.0.0/0" | Format-Table InterfaceAlias,NextHop,RouteMetric,State
Record the Name of the connected adapter and confirm which address is primary. The default route output also gives you a baseline for the existing gateway; adding a secondary address should not create another default route.
Typical adapter output looks like this:
ifIndex Name InterfaceDescription Status
------- ---- -------------------- ------
12 Ethernet Microsoft Hyper-V Network Adapter Up
Use the values returned by your server rather than assuming the adapter is named Ethernet.
Step 2: Confirm the allocation details
Windows needs the address boundary, not just the dotted IPv4 address, to place the new address on the correct interface.
Get the additional IP and prefix length from the VPSLake service details or support team. If the information is a subnet mask, convert it to a prefix length: for example, 255.255.255.0 is /24, so the PowerShell value is 24. Some routed addresses are assigned as /32; use /32 only when that is the allocation you received.
Set these variables in the elevated PowerShell window, replacing every uppercase placeholder:
$InterfaceAlias = "YOUR_INTERFACE_ALIAS"
$SecondaryIP = "SECONDARY_IP"
$PrefixLength = [uint8]("PREFIX_LENGTH")
YOUR_INTERFACE_ALIAS is the adapter name from Step 1, SECONDARY_IP is the extra address assigned to this VPS, and PREFIX_LENGTH is a number such as 24 or 32. Do not append /24 to the address itself.
For an address in the same subnet as the primary IP, leave the gateway field alone. A second default gateway can cause asymmetric routing and intermittent connectivity. A separately routed subnet may need a provider-specific route; follow the route details supplied with that allocation instead of adding a gateway by guesswork.
Step 3: Add the IPv4 address with PowerShell
New-NetIPAddress adds a persistent unicast address to the chosen adapter while leaving the existing primary address and default route in place.
Run this command in the same elevated PowerShell window:
New-NetIPAddress -InterfaceAlias $InterfaceAlias -IPAddress $SecondaryIP -PrefixLength $PrefixLength -AddressFamily IPv4
Windows returns the new address and its interface when the operation succeeds. A shortened example is:
IPAddress : SECONDARY_IP
InterfaceAlias : Ethernet
PrefixLength : PREFIX_LENGTH
PrefixOrigin : Manual
AddressState : Preferred
The command normally does not require a restart. Because this is an additional address, the current RDP session should remain connected; keep the VPS console available until verification is complete. Microsoft documents the supported parameters in the New-NetIPAddress reference.
If the command says the address already exists, stop and inspect the current entries before removing anything. Do not run the command repeatedly with a different prefix until you know which allocation is correct.
Step 4: Add the address through the Windows GUI
The GUI exposes the same adapter settings and is useful when you want to review the subnet mask before saving.
Open Control Panel → Network and Internet → Network and Sharing Center → Change adapter settings. Right-click the connected Ethernet adapter, select Properties, choose Internet Protocol Version 4 (TCP/IPv4), and select Properties.
Leave the primary IPv4 address and DNS settings unchanged. Select Advanced, then under IP addresses select Add. Enter the additional IPv4 address and its assigned subnet mask, then select Add → OK → OK → Close.
Do not add a second entry under Default gateways for a normal additional address on the existing subnet. Keep the gateway already used by the primary configuration. If the provider supplied a routed network with explicit next-hop instructions, use those instructions rather than this standard same-subnet path.
Verify the additional address and routing
Verification should show the new address as preferred and the original default route still present.
In elevated PowerShell, run:
Get-NetIPAddress -InterfaceAlias $InterfaceAlias -AddressFamily IPv4 | Format-Table IPAddress,PrefixLength,PrefixOrigin,AddressState
Get-NetRoute -InterfaceAlias $InterfaceAlias -AddressFamily IPv4 -DestinationPrefix "0.0.0.0/0" | Format-Table DestinationPrefix,NextHop,RouteMetric,State
ipconfig
Expected output includes both IPv4 addresses, Manual as the new address’s PrefixOrigin, and one intended default route:
IPAddress PrefixLength PrefixOrigin AddressState
--------- ------------ ------------ ------------
PRIMARY_IP PREFIX Dhcp Preferred
SECONDARY_IP PREFIX Manual Preferred
DestinationPrefix NextHop RouteMetric State
----------------- ------- ----------- -----
0.0.0.0/0 DEFAULT_GATEWAY 25 Active
To prove that an application is reachable through the new address, test from another computer, not only from the server itself. Replace SECONDARY_IP and SERVICE_PORT with the address and TCP port used by your service:
Test-NetConnection -ComputerName SECONDARY_IP -Port SERVICE_PORT
Successful output contains:
RemoteAddress : SECONDARY_IP
RemotePort : SERVICE_PORT
TcpTestSucceeded : True
The application must be listening on the secondary address or on all local addresses, and its inbound Windows Defender Firewall rule must allow the port. An ICMP ping failure alone does not prove the IP configuration is wrong because many servers block echo requests.
Troubleshooting
New-NetIPAddress says the address already exists
The address is already attached to this adapter, or a stale entry remains from an earlier attempt. Inspect the exact entries first:
Get-NetIPAddress -AddressFamily IPv4 | Format-Table InterfaceAlias,IPAddress,PrefixLength,PrefixOrigin,AddressState
If the address is present and shows Preferred, no second add operation is needed. If a wrong entry is confirmed and you have console access, remove only that exact address, then run Step 3 again:
Remove-NetIPAddress -InterfaceAlias "YOUR_INTERFACE_ALIAS" -IPAddress "OLD_SECONDARY_IP" -Confirm:$false
RDP or internet access stopped after the change
The usual causes are an incorrect prefix length, an address not assigned to this VPS, or an extra default gateway. Open the VPS console, compare the values with the allocation, and inspect the routes:
Get-NetRoute -AddressFamily IPv4 | Sort-Object DestinationPrefix | Format-Table InterfaceAlias,DestinationPrefix,NextHop,RouteMetric,State
For a normal secondary address, remove only the incorrect secondary IP and restore the original route if you deliberately added a wrong gateway. Do not remove the primary address while connected remotely.
The new IP shows Preferred, but it is not reachable externally
Windows has accepted the address, but the provider may not have routed or assigned it yet, or the service port may be blocked upstream. Confirm the address appears in the VPS service details, check any Virtualizor network or firewall settings, and test a port on which an application is actually listening.
The service works on the primary IP but not the secondary IP
The application may be bound only to the primary address. Check its listen bindings, then configure the application to use SECONDARY_IP or all local addresses, and allow its port in Windows Defender Firewall. This is an application binding issue, not a reason to add another gateway.
Get-NetTCPConnection -State Listen | Format-Table LocalAddress,LocalPort,OwningProcess
Hardening after the change
- Record the address, prefix, allocation purpose, and service using it so a later administrator does not remove the wrong entry.
- Keep Windows Defender Firewall enabled and permit only the application ports that need to accept traffic on the new address.
- Restrict administrative services such as RDP to trusted source addresses or a VPN where practical.
- Keep a VPS console session available before making future network changes.
FAQ
Do I need a separate gateway for an additional IPv4 address?
Usually not. When the extra address belongs to the existing interface subnet, it uses the adapter’s current default gateway, and adding another gateway can create routing problems. Use a separate route only when the provider explicitly assigns a routed subnet and gives you the required next hop.
Can I use the additional IPv4 address for RDP?
Yes, if the address is assigned and routed to the server and the RDP listener and firewall allow it. Test the actual RDP port from another computer after adding the address; adding the IP does not change the RDP port or bypass Windows Defender Firewall.
Why does ping fail even though the address is configured?
Windows may block inbound ICMP, and an upstream firewall may also ignore echo requests. Check Get-NetIPAddress and test a TCP port for the service instead of treating ping as the only verification method.
How many additional IPv4 addresses can I add?
The practical limit depends on the addresses allocated by the provider, the Windows interface, and the application using them. Add only addresses assigned to this VPS, and give each one the prefix length supplied with its allocation.