启用IP限制后Azure Function App自定义域名返回403错误
Azure Function App 自定义域名(Cloudflare路由)IP限制后403问题解决
问题根源
用Cloudflare做DNS/CDN时,自定义域名的所有请求都会先经过Cloudflare节点转发到你的Azure Function App。你启用IP限制后只添加了自身IP,但Cloudflare的节点IP不在允许列表内,Azure会直接拒绝这些请求返回403。而直接访问.azurewebsites.net域名时,请求是你的IP直连Azure,符合限制规则,所以能正常响应。
解决步骤
- 获取Cloudflare全量IP段:Cloudflare会公开所有用于转发请求的IPv4和IPv6范围,必须将这些IP段全部加入Azure的IP允许列表。
- 在Azure Portal配置IP白名单:
- 进入目标Function App,找到「网络」→「访问限制」
- 点击「添加规则」,逐个将Cloudflare的IP段添加为允许规则
- 检查规则优先级,确保没有冲突的拒绝规则覆盖允许规则
- 验证配置:完成后重新访问自定义域名,应能正常返回响应。若仍出现403,检查是否漏加IP段,或Cloudflare IP范围是否有更新(Cloudflare会定期更新IP列表,建议定期同步)
进阶方案(更高安全性)
若不想开放所有Cloudflare IP段,可使用Cloudflare的Authenticated Origin Pulls功能,让Azure仅接受带Cloudflare验证证书的请求:
- 在Cloudflare后台启用Authenticated Origin Pulls,下载对应验证证书
- 进入Azure Function App的「TLS/SSL设置」,上传该证书并配置源站验证
- 此时只需保留自身IP在允许列表,同时通过证书验证确保只有Cloudflare转发的请求能通过
内容的提问来源于stack exchange,提问作者Bilbo Bongo
相关产品推荐
相关产品推荐

