No, you cannot “move” the existing outbound IPs from a Windows App Service plan to a Linux plan. Outbound IPs are tied to the App Service deployment unit and change in common operations such as deleting and recreating the app or moving plans. To keep a stable egress IP, use VNet Integration + NAT Gateway or run in an App Service Environment that uses your own egress.
What to do instead – pin a static egress with NAT Gateway The supported way to keep the same outbound IP through your migration is to front both the old Windows app and the new Linux app with the same NAT Gateway via regional VNet Integration. Your customer whitelists the NAT public IPs – not the multi-tenant plan IPs – and the egress stays constant even when you switch plans or OS.
Step-by-step
- Create or choose a VNet + integration subnet
- Use regional VNet Integration on a supported App Service plan SKU. Enable Route all so internet-bound traffic goes through the VNet.
- Attach a NAT Gateway to that subnet
- Create a Public IP or Public IP Prefix for the NAT. Associate the NAT Gateway with the integration subnet. These IPs become your app’s outbound egress.
api-appservice
oncurrent-windows-plan
) with the VNet, enable Route all, and verify the observed egress IP matches the NAT public IP.Give this NAT IP list to your customer for whitelisting.
- Cut over to Linux
- Create the new Linux app on
target-linux-plan
. Integrate it with the same VNet integration subnet and enable Route all. The outbound IPs remain the NAT IPs, so no firewall change at the customer.
- Create the new Linux app on
Verification tips
From Kudu or app logs, call an external echo service to confirm the public egress IP equals the NAT IP.
- Azure shows the NAT IPs under the app’s Networking overview once Route all + NAT are in place.
Gotchas and sizing
- When App Service uses a NAT Gateway, traffic to Azure Storage must go via private endpoints or service endpoints. Plan those before cutover.
- If you have high concurrency to the same destination, consider a Public IP Prefix or multiple NAT IPs. A NAT Gateway can hold up to 16 IPs and gives you significantly more SNAT ports.
- On Premium V4, outbound IPs are intentionally shown as Dynamic – you must use NAT Gateway if you need stable egress.
Why deleting and recreating won’t preserve your IPs Deleting the app or moving across plans often lands you on a different deployment unit – that changes the outbound IP set. Re-using the app name does not guarantee the same egress. NAT Gateway is the supported pattern to make egress predictable across such changes.