none
windows 多个活动网卡指定dns优先顺序无效 RRS feed

  • 问题

  • 最近正在做一个vpn,使用 openvpn tap 虚拟网卡驱动做的。

    现在碰到了一个问题,全局 vpn 时需要使用 vpn 线路进行 dns 解析,但是指定 wan、vpn 网卡的优先级对 dns 解析无效。

    已经通过修改注册表 SYSTEM\CurrentControlSet\Services\Tcpip\Linkage 将vpn网卡优先级调整到了第一,同时也通过 网络连接->高级设置将vpn网卡调整到了第一优先级,但是 netsh interface ip show dns 显示还是优先使用wan网卡的dns设置,抓包也证实了这一点。

    而且还发现系统 dns 解析并不按照路由表设置走,即使专门将 8.8.8.8/32 设置为走 vpn 网关,但实际是按照 dns 设置在哪个网卡就按照哪个网卡走。

    目前测试发现除非 wan 网卡不存在dns设置,否则wan网卡必定有dns请求。在vpn、wan网卡都存在dns时,抓包发现两个网卡都能看到dns请求,没有发现规律。

    目前想到了一个解决方案是直接清空wan的dns设置,但是当 wan ip 是通过 dhcp 获得时,清空 dns 设置后 windows 会自动将 dns 设置为自动获得,造成无法清空wan dns,无法阻止通过wan发起dns请求。

    而且这样乱改 wan 网卡设置,程序要是异常终止会造成网络中断,感觉不是一个好选择。

    请问有什么其他的解决办法吗?

    2016年6月22日 3:22