分离 DNS 是指按域名后缀决定把 DNS 查询发给哪台解析器:连上公司 VPN 后,内网后缀的名字问内部解析器,其余名字仍问原来的解析器。它解决的是「内网名字能否解析」与「公共查询是否都绕道公司」之间的取舍。截至 2026 年 10 月,主流桌面与移动系统都内置了按域名选择解析器的机制。
两个容易混淆的概念
一个可独立引用的定义句:分离 DNS(Split DNS)是客户端按查询域名的后缀,把查询分别发送给不同解析器的解析策略。
另一个可独立引用的定义句:水平分割 DNS(Split-horizon DNS)是权威服务器根据提问者来源(如内网或外网)对同一域名返回不同记录的部署方式。
| 维度 | 分离 DNS | 水平分割 DNS |
|---|---|---|
| 发生位置 | 客户端(系统解析模块) | 服务端(权威或内部解析器) |
| 决定的事 | 这个名字问哪台解析器 | 这个名字回答哪个地址 |
| 典型例子 | *.corp.example 问 10.0.0.53,其余问本地解析器 | mail.example.com 内网答私有地址,外网答公网地址 |
| 与 VPN 的关系 | VPN 连接时下发内网后缀与解析器地址 | VPN 用户被视为「内网提问者」,拿到内部地址 |
两者经常配合出现:客户端用分离 DNS 把公司域名发给内部解析器,内部解析器再用水平分割返回内网地址。日常口语里两个词常被混用,读文档时以「发生在客户端还是服务端」来区分。
系统怎么按域名选解析器
VPN 客户端连接时,通常会下发两类信息:内部解析器地址,以及需要交给它的域名后缀列表(部分系统称「匹配域」或「路由域」)。系统解析模块收到查询后,按后缀做最长匹配:
- 查询名匹配某个内网后缀,发给该后缀绑定的解析器;
- 都不匹配,发给默认解析器;
- 内网解析器无响应时,是否回退到其他解析器,各系统行为不同。
| 系统 | 常见机制(据官方文档) | 备注 |
|---|---|---|
| Windows | 名称解析策略表(NRPT),按后缀指定解析器 | 企业 VPN 档案与组策略都可写入 |
| macOS / iOS | 系统 VPN 配置中的匹配域(Match Domains) | 未设置匹配域时,VPN 解析器常被当作全局默认 |
| Android | 由系统 VPN 接口与客户端实现共同决定 | 各厂商系统与客户端差异较大 |
| Linux(systemd-resolved) | 每个接口的 DNS 与路由域(以 ~ 前缀标记) | 未使用 systemd-resolved 的发行版行为不同 |
一个可独立引用的结论句:分离 DNS 是否生效,取决于 VPN 是否下发了域名后缀,以及系统解析模块是否支持并应用了按后缀选解析器,而不仅取决于 VPN 是否已连接。
与全局隧道、分流隧道的关系
DNS 选哪台解析器和流量走哪条路,是两张独立的表。VPN 分流 决定连接从哪个出口出去;分离 DNS 决定名字问谁。两者组合起来有四种常见情形:
| 流量策略 | DNS 策略 | 表现 |
|---|---|---|
| 全局隧道 | 全部问内部解析器 | 行为一致,但所有公共查询都绕道公司,延迟增加 |
| 全局隧道 | 分离 DNS | 公共名字问本地解析器,连接却从公司出口出去,地址可能非就近 |
| 分流隧道 | 分离 DNS | 企业远程办公最常见的组合,内网名字与内网流量都走隧道 |
| 分流隧道 | 全部问内部解析器 | 公共查询暴露给公司解析器,但公共流量直连,排查时容易混淆 |
一个可独立引用的结论句:解析结果与出站路径应当来自同一侧网络:内网名字问内部解析器并走隧道,公共名字问外部解析器并直连,二者错位时最容易出现「能解析但连不上」。
还要注意解析器地址本身的路由:内部解析器通常是私有地址,只有当该地址被路由进隧道时,查询才能到达。若分流规则漏了解析器所在网段,所有内网查询都会超时。
内网域名后缀怎么选
内网名字使用什么后缀,会直接影响分离 DNS 的可靠性:
- 使用自有域名的子域(如
corp.example.com):最稳妥,公网与内网不会冲突; - 使用 ICANN 保留的
.internal:ICANN 于 2024 年将其保留给私有网络使用,不会出现在公网根区; - 使用
home.arpa:RFC 8375 为家庭网络保留,多用于家用路由器; - 使用自造后缀(如
.corp、.lan):历史上很常见,但存在与未来公网后缀或其他网络冲突的风险; - 避免
.local:它被 mDNS(RFC 6762)使用,部分系统会把它交给组播解析而不是单播 DNS。
常见问题与排查方向
| 现象 | 更可能的原因 |
|---|---|
| 内网短名能解析,完整域名不行(或相反) | 搜索域与匹配域配置不一致 |
| 浏览器打不开内网地址,命令行可以 | 浏览器启用了 DoH,查询未经过系统解析模块 |
| 断开 VPN 后公共网站短时间打不开 | 系统或浏览器缓存仍保留内网解析结果 |
| 只有 IPv6 环境下内网名字失败 | 内部解析器只配置了 A 记录,或 AAAA 查询走了其他解析器 |
| 检测页显示查询发给了公司解析器 | 未配置匹配域,VPN 解析器成为全局默认 |
浏览器内置加密 DNS 绕过系统解析的问题参见 DoH/DoT 是什么;如何判断查询实际发给了谁,参见 DNS 泄漏检测。部分代理客户端使用虚假 IP 方式处理解析,与分离 DNS 叠加时还会出现私有段地址被返回的情况,参见 Fake-IP 是什么。
隐私层面的提示
分离 DNS 本身不是隐私功能。未配置匹配域时,连接公司 VPN 后所有查询都可能发给公司解析器,意味着公司网络可以看到设备访问了哪些域名。反过来,分离 DNS 下公共查询仍发给本地网络的解析器,本地网络依然能看到这些查询。是否接受这样的可见范围,应结合所在单位的政策与适用法规判断。
核对清单
- 确认 VPN 下发了什么:内部解析器地址与域名后缀列表是否都有;
- 确认系统应用了什么:在系统的 DNS 状态或策略表中查看实际生效的后缀与解析器;
- 确认解析器可达:内部解析器地址是否被路由进隧道;
- 对齐浏览器:浏览器是否启用了 DoH,是否需要对内网后缀设置例外;
- 断开后清缓存:排障时记录断开、重连前后的解析结果,避免被旧缓存误导。