内部Windows DNS服务器解析CloudFlare托管子域名的配置方案咨询
内部Windows DNS服务器解析CloudFlare托管子域名的配置方案咨询
我完全懂你现在的困扰——内部的Windows DNS服务器托管着example.com主域,平时A记录啥的都正常,结果CloudFlare那边托管的app.example.com子域名,内部用户一访问就报ERR_NAME_NOT_RESOLVED,试了条件转发却发现没法针对本地域的子域名做转发,确实挺闹心的。
下面给你几个实用的解决办法,都是针对Windows DNS场景的:
直接在内部DNS添加对应记录
最简单的方式就是在内部DNS的example.com区域里,手动添加app.example.com的A记录或者CNAME记录:- 打开Windows DNS管理器,找到你的
example.com正向查找区域 - 右键区域,选择「新建主机(A或AAAA)」,在「名称」栏填
app,「IP地址」栏填上你公网服务器的实际IP(就是CloudFlare那边指向的目标IP);如果CloudFlare用的是CNAME记录,就选择「新建别名(CNAME)」,把别名指向CloudFlare配置的目标域名 - 保存后,内部用户解析
app.example.com就会直接读取内部DNS的记录,不用去外部查询了
👉 注意:如果后续CloudFlare那边的目标IP/域名变更,你需要手动更新内部DNS的这条记录
- 打开Windows DNS管理器,找到你的
对子域名做区域委派
既然条件转发不支持本地域的子域名,那可以把app.example.com这个子域委派给CloudFlare的权威DNS服务器:- 先查清楚
app.example.com对应的CloudFlare权威DNS服务器地址(可以用外部工具查,比如nslookup app.example.com -type=ns) - 打开Windows DNS管理器,找到
example.com正向查找区域,右键选择「新建委派」 - 在向导里输入委派的子域名
app,然后添加刚才查到的CloudFlare DNS服务器地址,完成配置
这样内部DNS收到app.example.com的查询请求时,会自动转发给CloudFlare的DNS服务器去解析,就能拿到正确的结果了
- 先查清楚
使用DNS策略创建针对性转发规则(Windows Server 2016+)
如果你的DNS服务器是Windows Server 2016及以上版本,可以用DNS策略来实现基于查询名称的转发:- 打开Windows DNS管理器,右键你的DNS服务器,选择「DNS策略」
- 点击「新建查询策略」,给策略起个名字(比如「转发app.example.com到CloudFlare」)
- 添加查询条件:选择「查询名称」,匹配类型选「等于」,输入
app.example.com - 设置动作:选择「转发查询到指定的DNS服务器」,添加CloudFlare的DNS地址(比如
1.1.1.1、1.0.0.1或者8.8.8.8) - 完成策略创建后,内部的
app.example.com查询就会被转发到指定的外部DNS去解析
你可以根据自己的环境选最适合的方案,比如如果app.example.com的IP很少变动,直接加内部记录最省心;如果需要自动同步外部变更,区域委派或者DNS策略会更合适。
备注:内容来源于stack exchange,提问作者Nabili
相关产品推荐
相关产品推荐

