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

Azure Function App集成VNet后未使用自定义DNS服务器问题咨询

Azure Function App未使用VNet自定义DNS的原因及解决方法

这个问题通常由以下几个核心原因导致,对应解决方法如下:

1. VNet集成模式不兼容

Azure Function的VNet集成分为区域VNet集成(新模式)和网关VNet集成(旧模式)两种:

  • 网关VNet集成不会自动继承VNet的自定义DNS配置,Function App仍会使用Azure默认DNS(168.63.129.16)。
  • 只有区域VNet集成才支持自动继承VNet的自定义DNS设置。

解决方法:
在Function App的「网络」→「VNet集成」页面,确认当前使用的是区域VNet集成。如果是网关集成,建议切换为区域集成(需满足子网无网关关联等前提条件)。

2. 未启用全流量路由

如果Function App的出站流量未全部通过VNet路由,DNS查询可能会绕过VNet的自定义DNS,直接使用默认服务器。

解决方法:
在Function App的「配置」→「应用程序设置」中,添加或修改WEBSITE_VNET_ROUTE_ALL设置为1,确保所有出站流量(包括DNS请求)都通过VNet转发。

3. SCM/Kudu站点未集成VNet

Kudu(SCM)站点是独立于Function App运行的环境,默认未启用VNet集成,因此会使用Azure默认DNS服务器。

解决方法:
在VNet集成设置页面,勾选「集成SCM站点」选项,保存后Kudu环境将继承VNet的自定义DNS配置。

4. DNS配置未生效或缓存问题

  • 即使配置正确,Function App的DNS缓存可能仍保留旧设置,可通过重启Function App或在Kudu中执行ipconfig /flushdns清除缓存。
  • 确保VNet的自定义DNS服务器处于运行状态,且Function App所在子网与DNS服务器子网之间的路由、NSG规则允许UDP 53端口的DNS流量(虽然你指定DNS服务器时能解析,但仍需确认常规路由是否正常)。

验证方法

  • 在Function App代码中调用DNS解析API(如C#的Dns.GetHostEntry("your-custom-domain")或Python的socket.gethostbyname("your-custom-domain")),验证运行时是否能正常解析。
  • 在Kudu中执行nslookup your-custom-domain,确认启用SCM集成后是否自动使用自定义DNS服务器。

内容的提问来源于stack exchange,提问作者Jonathon Anderson

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 07:42:50