我有一台 Windows 10 PC,它连接到具有 DNS 服务器的 VPN 网络,Windows 中是否有办法只将具有 .local 后缀的 DNS 查询路由到 VPN,而让其余流量通过互联网接口离开?VPN 不会强制所有流量都通过它。
答案1
是的,在 Windows 7 及更高版本上,使用名称解析策略表可以实现这一点。这允许您为给定命名空间设置一组不同的 DNS 服务器。这是 DirectAccess 用来通过 DirectAccess 隧道引导部分流量的表。
这里有几个示例 powershell 命令,您可以用它们来管理策略表并设置策略.local
。
添加规则以通过 vpn 发送 .local
$Rule = @{
'Namespace' = '.local'
'Comment' = 'VPN network'
'NameServers' = ('fdab:25f9:a362:58::2', 'fdab:25f9:a362:58::3')
}
Add-DnsClientNrptRule @Rule
验证 DNS 解析是否正常工作(nslookup 不会使用策略表)
Resolve-DnsName 'example.local' -Type A_AAAA
删除 NRPT 规则
Get-DnsClientNrptRule | Where { $_.Namespace -eq '.local' } | Remove-DnsClientNrptRule