请教如何能够禁用 win10 系统的 ipv6 DNS,但仍保留 ipv6 连接线路

2020-12-11 11:40:37 +08:00
 abcbuzhiming
最近住的地方宽带发生了稀奇古怪的某些网站无法连接,以及某些时候意外的缓慢等问题,一番检查后,发觉问题居然在于电信终于给开了 ipv6 。我住的这个地方是通过一个交换机直接连在猫上,猫充当了路由器,以前这个猫没有 ipv6 线路,走的都纯 ipv4,现在有 ipv6 后,猫的 dhcp 功能会向局域网里所有的设备广播 ipv6 的电信 DNS 。而 win10 系统存在下面这个帖子说的 ipv6 DNS 优先问题:
https://www.v2ex.com/t/503461

win10 在有 ipv6 DNS 的前提下,会自动以 ipv6 DNS 为主。问题在于,电信的这个 ipv6 DNS 不靠谱,会给一些无法访问的解析结果。而此时其它 ipv4 的 DNS 如何设置都无法影响这个结果。这是导致网络访问某些地址访问不了的原因。

另外就是我发现可能是我这的 ipv6 的线路不太好,特别是出国,走 ipv6 的 youtube 的反应速度远慢于 ipv4 的。这也是为啥某些时候访问海外其它网站意外缓慢的原因。然后我也找到了和我类似案例的帖子: https://v2ex.com/t/667440

现在的问题是我没办法调整这个猫,设备是公共的,动不了,我只能想办法禁用我操作系统的 ipv6 DNS 。结果找了一圈。都没找到能够主动屏蔽掉 ipv6 DNS 的办法。帖子里说使用第三方比如百度阿里的 ipv6 DNS 服务器,手动设置在适配器里。但是我发现,从我这里访问这些第三方 ipv6 DNS 的速度非常不靠谱,ping 丢包率很高,这不是解决办法。

我现在是直接把网络适配器里 ipv6 的网络协议给禁了,但这个方法等于否定了所有的 ipv6 线路,对某些不需要 DNS 的网络应用不利。而且 windows 10 的官方文档也说最好不要彻底禁用 ipv6 连接,会导致某些组件无法使用。


我该如何禁用 Win10 的 ipv6 DNS,但是仍然保存 ipv6 连接呢?猫动不了,没有办法
6970 次点击
所在节点    宽带症候群
34 条回复
INTEL2333
2020-12-11 11:51:48 +08:00
DNS 那填个::ffff:127.0.0.1 试试?
或者跑个 adghome 或者 smartdns 什么的抛弃 AAAA 记录
INTEL2333
2020-12-11 11:58:08 +08:00
补充#1
我发的第一个方法只能禁用 v6 的 dns

觉得 v6 路由不好,或许是想禁用 AAAA 记录?
如果是的话那就用#1 的第二个方法吧
或者拉高::ffff:的优先级达到 v4 优先,不过 win10 的 dns 还是会优先走 v6....
cwbsw
2020-12-11 12:03:34 +08:00
netsh int ipv6 set interface=XXX managedaddress=disabled otherstateful=disabled
这样应该可以不自动配置 IPv6 DNS,不哦我觉得你的问题不在这里。
https://docs.microsoft.com/en-us/troubleshoot/windows-server/networking/configure-ipv6-in-windows
参考这个配置 IPv4 优先吧。
cwbsw
2020-12-11 12:04:43 +08:00
netsh int ipv6 set interface=XXX managedaddress=disabled otherstateful=disabled rabaseddnsconfig=disabled
loveyu
2020-12-11 12:36:30 +08:00
自己搭个 dns 服务,然后禁用调 ipv6
shikkoku
2020-12-11 12:40:04 +08:00
@cwbsw #3 重启或者断开网线就会失效。另外,即使是 IPv4 的 DNS 也会返回 IPv6 的解析结果。
cwbsw
2020-12-11 12:47:52 +08:00
@shikkoku 楼主说要禁用 IPv6 DNS 啊,加上 store=persistent 就不会重启失效了吧。
netsh int ipv6 set interface=XXX managedaddress=disabled otherstateful=disabled rabaseddnsconfig=disabled store=persistent
abcbuzhiming
2020-12-11 13:14:49 +08:00
@INTEL2333 第一个方法,用::ffff:127.0.0.1 填充适配器的 ipv6 DNS 会产生一个奇怪的结果:

nslookup 命令立刻失效,什么地址都解析不出来。nslookup 并不会因为 ipv6 DNS 解析失败就回头查 ipv4 DNS 。直接就返回失败了。

但是同时浏览器访问 ipv4 的域名不受任何影响。这个结果我是想不到啊,我都是把本地 dns 解析缓存全部清空了。按理说浏览器是应该访问不了网站的,因为系统 dns 解析不到地址,但是为什么浏览器可以呢?

这两个软件 adghome 或者 smartdns 我到万不得已再考虑,我不太愿意为解决这个问题引入其它复杂度
cooldoubi
2020-12-11 13:44:47 +08:00
shikkoku
2020-12-11 13:54:33 +08:00
@cwbsw #7 受管理的地址配置和其他有状态的配置无法禁用……
fhbyljj
2020-12-11 13:54:46 +08:00
Openwrt 有这个功能
INTEL2333
2020-12-11 14:24:28 +08:00
@abcbuzhiming nslookup 异常是因为默认走 v6 吧,然后识别不了::ffff:就翻车了

浏览器不影响是因为走了 v4dns 吧
cwbsw
2020-12-11 15:17:29 +08:00
@shikkoku 实测没问题,你是不是没有获取管理员权限?另外前面贴的命令语法不对。
netsh int ipv6 set interface interface=以太网 managedaddress=disabled otherstateful=disabled rabaseddnsconfig=disabled store=persistent
jim9606
2020-12-11 15:22:04 +08:00
修改系统 DNS 策略为“首选 IPv4 over IPv6”
改法参考 ( https://docs.microsoft.com/zh-cn/troubleshoot/windows-server/networking/configure-ipv6-in-windows)
shikkoku
2020-12-11 15:30:38 +08:00
@cwbsw #13 这没用
XiLingHost
2020-12-11 15:33:09 +08:00
安装 simple-dnscrypt,然后丢弃 ipv6dns 请求或者使用来自它的 aaaa 记录
ragnaroks
2020-12-11 19:13:25 +08:00
240C::6666
240C::6644
Livid
2020-12-11 19:15:56 +08:00
家里自己跑一个 pi-hole 或者 dnscrypt-proxy,然后想怎么玩就怎么玩了。
miaomiao888
2020-12-11 19:50:23 +08:00
www.jianshu.com/p/a05e44a93862
调整 Windows IPV4 与 IPV6 的 DNS 优先级
flyfishcn
2020-12-12 10:39:51 +08:00
@abcbuzhiming #8 nslookup 只会使用唯一的第一优先级 DNS 作为指定服务器,不带失败回退和尝试其他可用服务器机制的。而系统和其他的软件是会在首选服务器失败后尝试查询其他可用服务器的。
想保留地址但不解析唯一的办法就是不要有 AAAA 解析记录。部分 dns 软件是可以去除 AAAA 记录只保留 A 记录的。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/734434

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX