V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
abcbuzhiming
V2EX  ›  宽带症候群

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

  •  3
     
  •   abcbuzhiming · 2020-12-11 11:40:37 +08:00 · 6841 次点击
    这是一个创建于 1203 天前的主题,其中的信息可能已经有所发展或是发生改变。
    最近住的地方宽带发生了稀奇古怪的某些网站无法连接,以及某些时候意外的缓慢等问题,一番检查后,发觉问题居然在于电信终于给开了 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 连接呢?猫动不了,没有办法
    34 条回复    2022-11-01 15:29:13 +08:00
    INTEL2333
        1
    INTEL2333  
       2020-12-11 11:51:48 +08:00 via Android
    DNS 那填个::ffff:127.0.0.1 试试?
    或者跑个 adghome 或者 smartdns 什么的抛弃 AAAA 记录
    INTEL2333
        2
    INTEL2333  
       2020-12-11 11:58:08 +08:00 via Android
    补充#1
    我发的第一个方法只能禁用 v6 的 dns

    觉得 v6 路由不好,或许是想禁用 AAAA 记录?
    如果是的话那就用#1 的第二个方法吧
    或者拉高::ffff:的优先级达到 v4 优先,不过 win10 的 dns 还是会优先走 v6....
    cwbsw
        3
    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
        4
    cwbsw  
       2020-12-11 12:04:43 +08:00
    netsh int ipv6 set interface=XXX managedaddress=disabled otherstateful=disabled rabaseddnsconfig=disabled
    loveyu
        5
    loveyu  
       2020-12-11 12:36:30 +08:00
    自己搭个 dns 服务,然后禁用调 ipv6
    shikkoku
        6
    shikkoku  
       2020-12-11 12:40:04 +08:00
    @cwbsw #3 重启或者断开网线就会失效。另外,即使是 IPv4 的 DNS 也会返回 IPv6 的解析结果。
    cwbsw
        7
    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
        8
    abcbuzhiming  
    OP
       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
        9
    cooldoubi  
       2020-12-11 13:44:47 +08:00
    shikkoku
        10
    shikkoku  
       2020-12-11 13:54:33 +08:00
    @cwbsw #7 受管理的地址配置和其他有状态的配置无法禁用……
    fhbyljj
        11
    fhbyljj  
       2020-12-11 13:54:46 +08:00 via Android
    Openwrt 有这个功能
    INTEL2333
        12
    INTEL2333  
       2020-12-11 14:24:28 +08:00 via Android
    @abcbuzhiming nslookup 异常是因为默认走 v6 吧,然后识别不了::ffff:就翻车了

    浏览器不影响是因为走了 v4dns 吧
    cwbsw
        13
    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
        14
    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
        15
    shikkoku  
       2020-12-11 15:30:38 +08:00
    @cwbsw #13 这没用
    XiLingHost
        16
    XiLingHost  
       2020-12-11 15:33:09 +08:00
    安装 simple-dnscrypt,然后丢弃 ipv6dns 请求或者使用来自它的 aaaa 记录
    ragnaroks
        17
    ragnaroks  
       2020-12-11 19:13:25 +08:00
    240C::6666
    240C::6644
    Livid
        18
    Livid  
    MOD
       2020-12-11 19:15:56 +08:00
    家里自己跑一个 pi-hole 或者 dnscrypt-proxy,然后想怎么玩就怎么玩了。
    miaomiao888
        19
    miaomiao888  
       2020-12-11 19:50:23 +08:00
    www.jianshu.com/p/a05e44a93862
    调整 Windows IPV4 与 IPV6 的 DNS 优先级
    flyfishcn
        20
    flyfishcn  
       2020-12-12 10:39:51 +08:00
    @abcbuzhiming #8 nslookup 只会使用唯一的第一优先级 DNS 作为指定服务器,不带失败回退和尝试其他可用服务器机制的。而系统和其他的软件是会在首选服务器失败后尝试查询其他可用服务器的。
    想保留地址但不解析唯一的办法就是不要有 AAAA 解析记录。部分 dns 软件是可以去除 AAAA 记录只保留 A 记录的。
    ghjexxka
        21
    ghjexxka  
       2020-12-12 12:42:45 +08:00
    ::114.114.114.114
    ghjexxka
        22
    ghjexxka  
       2020-12-12 12:47:52 +08:00   ❤️ 2
    @ghjexxka win10 的话加上[]的话 ipv6 的 dns 似乎就不会生效了,即[::114.114.114.114]
    826540272
        23
    826540272  
       2020-12-13 05:32:28 +08:00
    windows 10 的官方文档也说最好不要彻底禁用 ipv6 连接,会导致某些组件无法使用。
    放屁.
    no1xsyzy
        24
    no1xsyzy  
       2020-12-13 14:44:47 +08:00
    感觉上面不少人误解了 DNS over IPv6 vs DNS over IPv4 (为了简洁,后写作 Do6 和 Do4 )和 AAAA vs A 的关系
    通过 Do4 也可以请求到 AAAA 记录的,就算你把 IPv6 整个给断了也可以问 DNS 服务器要 IPv6 地址。
    vice versa
    参考,请使用 dig 命令:
    $ dig cloudflare.com @2001:4860:4860::8888
    $ dig cloudflare.com AAAA @8.8.8.8

    所以你只能通过其他程序来 trunc 掉不需要的返回记录,再返回给你的客户端。
    具体上来说,到底是 pi-hole 还是你自写倒是无关紧要了。
    yyysuo
        25
    yyysuo  
       2020-12-13 16:54:43 +08:00
    我用 koolss 开启 dns 劫持,然后推送给局域网设备的 IPV6 DNS 地址是局域网主路由的 IPV6 地址,这样的话就没问题了。
    dingwen07
        26
    dingwen07  
       2020-12-14 03:04:01 +08:00 via iPhone
    其实导致境外网站访问慢的原因是 ipv6 优先,但是你的代理没有 ipv6,这个时候 ipv6 是过墙的,导致等待 ipv6timeout 之后再退回 ipv4 访问。你可以搞一个 ipv6 的梯子试试看,反正我是直接禁用了 ipv6 。
    10935336
        27
    10935336  
       2020-12-16 18:40:00 +08:00
    我是在路由器上装了 SmartDNS 不解析 AAAA 记录
    chaosye
        28
    chaosye  
       2021-09-11 21:18:55 +08:00   ❤️ 1
    ipv6 dns 地址一栏填上::1 这样就废掉了 ipv6 的 dns,亲测还是可行的
    Aaron325
        29
    Aaron325  
       2022-09-29 09:51:48 +08:00 via iPhone
    没有的,ipv4 解析依然有 ipv6
    cbok
        30
    cbok  
       2022-10-30 14:16:29 +08:00
    cbok
        31
    cbok  
       2022-10-30 14:17:50 +08:00
    @ghjexxka 还有个问题请教一下,能回复一下吗
    ghjexxka
        32
    ghjexxka  
       2022-10-30 16:48:06 +08:00
    @cbok #31 什么?
    cbok
        33
    cbok  
       2022-10-30 18:45:06 +08:00
    @ghjexxka 就是为什么把 ipv6 地址加上[]括号,就可以屏蔽 IPV6 dns 服务器解析
    ghjexxka
        34
    ghjexxka  
       2022-11-01 15:29:13 +08:00
    @cbok #33 这个我也不知道为什么
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   4717 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 10:01 · PVG 18:01 · LAX 03:01 · JFK 06:01
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.