You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure PowerShell部署带Basic防火墙的SFTP存储报错求助

解决Azure防火墙Basic版部署SFTP存储平台的公网IP及路由配置问题

核心问题分析

Azure防火墙Basic版要求两个独立公网IP:一个负责数据平面流量(处理SFTP业务请求),另一个负责管理平面流量(防火墙自身运维操作),你遇到的错误就是因为重复引用了同一个公网IP导致的。

分步解决方案

1. 创建两个独立的公网IP资源

分别创建SKU为Basic的公网IP,确保二者归属同一区域:

# 创建数据平面公网IP
$dpPublicIp = New-AzPublicIpAddress -Name "fw-dp-pip" -ResourceGroupName "你的资源组名" `
  -Location "你的区域" -AllocationMethod Static -Sku Basic

# 创建管理平面公网IP
$mgmtPublicIp = New-AzPublicIpAddress -Name "fw-mgmt-pip" -ResourceGroupName "你的资源组名" `
  -Location "你的区域" -AllocationMethod Static -Sku Basic

2. 配置防火墙专用子网

Azure防火墙Basic版需要两个专属子网,提前在虚拟网络中创建:

  • AzureFirewallSubnet:承载数据平面流量,子网前缀至少为/26
  • AzureFirewallManagementSubnet:承载管理平面流量,子网前缀固定为/26

3. 重新部署Basic版防火墙

部署时分别指定两个公网IP,关联对应子网:

$vnet = Get-AzVirtualNetwork -Name "你的虚拟网络名" -ResourceGroupName "你的资源组名"
$dpSubnet = Get-AzVirtualNetworkSubnetConfig -Name "AzureFirewallSubnet" -VirtualNetwork $vnet
$mgmtSubnet = Get-AzVirtualNetworkSubnetConfig -Name "AzureFirewallManagementSubnet" -VirtualNetwork $vnet

$fw = New-AzFirewall -Name "你的防火墙名" -ResourceGroupName "你的资源组名" `
  -Location "你的区域" -VirtualNetwork $vnet `
  -PublicIpAddress $dpPublicIp `
  -ManagementPublicIpAddress $mgmtPublicIp `
  -Sku Basic

4. 路由表与存储账户的连接配置

路由表设置

  • 创建路由表,添加默认路由(0.0.0.0/0),下一跳类型设为Azure防火墙,将该路由表关联到存储账户所在子网(或需要访问SFTP的客户端子网)。
  • 配置防火墙DNAT规则,将数据平面公网IP的22端口转发至存储账户的SFTP端点。

存储账户网络配置

  • 在存储账户的网络规则中,允许AzureFirewallSubnet的流量访问,或直接放行防火墙的私网IP。
  • 若使用存储专用端点,确保端点所在子网的路由表已配置将SFTP流量指向防火墙。

关键注意事项

  • Basic版防火墙不支持TLS检查、FQDN过滤等高级功能,SFTP规则需使用存储账户的公网/私网IP配置DNAT。
  • 两个公网IP必须完全独立,不可复用,否则会再次触发AzureFirewallDuplicatePublicIp错误。

内容的提问来源于stack exchange,提问作者Nayden Van

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 19:42:12