如何为Azure App Service配置静态IP(非VM)及相关疑问
我尝试为Azure App Service(而非虚拟机VM)关联预留/静态IP,使用PowerShell命令New-AzureReservedIP –ReservedIPName <名称> –Location "UK West" -ServiceName <服务名>和Get-azureservice -servicename <服务名>均未成功。请问:
- 是否可行?
- 配置后会改变入站和出站IP吗?
- 是否只需将该静态IP加入客户端防火墙白名单?
附我整理的更新配置步骤:
- 进入Azure门户并导航至目标App Service;
- 点击菜单中的“Configuration”;
- 滚动至“General settings”区域并点击“Networking”;
- 在“Networking”区域点击“Configure IP Address”;
- 在弹窗中选择“Static”作为IP类型;
- 输入要分配的IP地址;
- 输入子网掩码;
- 点击“Save”保存更改。
解答
1. 是否可行?
你使用的New-AzureReservedIP和Get-azureservice是经典ASM资源模型的命令,而Azure App Service属于ARM资源模型,两者完全不兼容,这是操作失败的核心原因。
App Service支持静态入站IP,但无法像VM那样手动指定自定义预留IP,你附的配置步骤也不符合App Service的实际逻辑。正确的静态IP配置方式分两种:
- 默认静态入站IP:每个App Service实例自带一个静态入站IP,可在“概述”页面查看。只要不删除重建App Service、变更定价层(如从Basic降至Free)或跨区域迁移,这个IP会保持稳定。
- IP SSL专属静态IP:购买IP SSL证书并绑定到App Service后,会分配一个专属静态IP,仅用于HTTPS(443端口)访问,HTTP访问仍使用原默认IP。
若需要固定出站IP,不能直接配置静态IP,需通过虚拟网络集成、NAT网关或Azure Firewall实现。
2. 配置后会改变入站和出站IP吗?
- 入站IP:使用默认静态IP时,无触发变更的操作则IP不变;绑定IP SSL后,会新增一个专属HTTPS静态IP,原HTTP入站IP保持不变。
- 出站IP:默认出站IP为多个动态IP,配置入站静态IP不会改变出站IP。若通过虚拟网络集成等方案固定出站IP,此时出站IP会变为虚拟网络网关IP或指定的NAT网关IP。
3. 是否只需将该静态IP加入客户端防火墙白名单?
如果是让客户端访问你的App Service,只需将对应静态入站IP加入白名单:
- HTTP访问用“概述”页面的默认静态入站IP;
- HTTPS且绑定IP SSL的,用IP SSL专属静态IP。
若你的App Service需要主动访问客户端的服务,且客户端服务限制入站IP,还需将App Service的出站IP(或虚拟网络集成后的出站IP)加入白名单。
另外,你附的配置步骤是错误的,App Service的Configuration > General settings > Networking中不存在“Configure IP Address”选项,请勿按照该步骤操作。
内容的提问来源于stack exchange,提问作者Angela

