如何配置Azure MySQL Flexible Server仅通过指定防火墙访问?
解决方案
方案1:使用Azure私有链接(Private Link)彻底规避公网IP问题
这是最推荐的长期解决方案,直接将Azure MySQL Flexible Server纳入私有网络环境,完全不走公网访问:
- 登录Azure门户,进入你的Flexible Server实例,切换到网络配置页
- 在连接方法中选择私有访问(VNet集成),创建私有端点并关联到你的虚拟网络
- 配置本地防火墙通过VPN或ExpressRoute连接到该虚拟网络,所有访问MySQL的流量将通过私有链路传输,Azure端只会看到虚拟网络内的流量,无需再处理公网IP变更或FQDN解析的问题
方案2:定时解析FQDN并自动更新防火墙规则
如果暂时无法部署私有链接,可以通过脚本自动同步Flexible Server的IP到防火墙:
- 编写脚本(PowerShell/Bash均可),定期执行
nslookup <name>.mysql.database.azure.com或dig <name>.mysql.database.azure.com命令解析当前IP - 脚本对比防火墙中已配置的旧IP,自动删除旧规则并添加新解析出的IP
- 将脚本部署为定时任务:比如用Azure Automation Runbook(云端执行)或本地cron/任务计划(本地执行),确保IP变更后能及时更新防火墙规则
方案3:借助Azure Firewall作为中转层
如果你的本地防火墙仅支持IP配置,可以用Azure Firewall作为中间转发节点:
- 在Azure虚拟网络中部署Azure Firewall,配置NAT规则将本地防火墙的固定IP映射到Azure Firewall的公网IP
- 在Azure MySQL Flexible Server的防火墙规则中,仅添加Azure Firewall的公网IP
- 本地防火墙配置允许流量转发到Azure Firewall的公网IP,Azure Firewall会自动解析MySQL的FQDN并转发流量,无需关注MySQL的IP变更
内容的提问来源于stack exchange,提问作者prepetti
相关产品推荐
相关产品推荐

