V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
janecc
V2EX  ›  DNS

论最好的 DNS 地址

  •  2
     
  •   janecc · 2017-05-12 08:56:40 +08:00 · 21623 次点击
    这是一个创建于 2533 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我这,网络,不同 DNS,分别存在一批打不开的网站,屌的不行

    82 条回复    2017-05-25 16:04:22 +08:00
    Amence
        1
    Amence  
       2017-05-12 08:58:50 +08:00
    alidns 还行
    KCheshireCat
        2
    KCheshireCat  
       2017-05-12 09:05:28 +08:00
    加权解析 用 edns 同时发起多个 DNS 请求,按优先级返回结果

    比如移动,同时向 国内有移动节点的公共 DNS,台湾 DNS,日本 DNS 发起请求

    返回根据应答地址按 国内>台湾>日本>其他地址 的优先级返回.
    janecc
        3
    janecc  
    OP
       2017-05-12 09:07:57 +08:00
    @Amence 一般,他自己阿里上海 IP 都存在找不到 DNS
    janecc
        4
    janecc  
    OP
       2017-05-12 09:11:45 +08:00
    @KCheshireCat 又一个高级玩意,我看了 edns,是给域名用的么
    Fulminit
        5
    Fulminit  
       2017-05-12 09:13:49 +08:00 via iPhone
    我这网络也一样...
    最后无奈只好用移动的 Dns
    janecc
        6
    janecc  
    OP
       2017-05-12 09:16:07 +08:00
    @Fulminit 报上 dns 吧,我去试试,我现在在用谷歌 DNS
    KCheshireCat
        7
    KCheshireCat  
       2017-05-12 09:17:03 +08:00
    我表述有点歧义,是用 EDNS Client Subnet 向支持这个功能的 DNS 发起请求,
    这样可以自行提交客户端 IP,这样就能获得多个地区解析优化的结果,也不会受到流量穿透的影响.
    janecc
        8
    janecc  
    OP
       2017-05-12 09:27:54 +08:00
    @KCheshireCat 有点懵
    imn1
        9
    imn1  
       2017-05-12 09:28:13 +08:00   ❤️ 2
    再次安利 dnsforwarder at github
    它其中一个功能就是可以向多个 dns 发送请求,UDP 按回应顺序采用,但也能“舍弃”无解析结果
    具体原理我也不懂,反正我这边表现是一个 114 返回的“该网站含有……”,因为多个 DNS 中 114 返回较快,但刷新一两次就能获得正确结果了,114 那个返回被舍弃

    它还有另一个类似的功能,可以指定某个(些)域名使用指定的 DNS,当然太多的话还是用上面那个功能好
    我就把国内银行网站的指定 114 解析,114 总不会连这个也干掉吧,所以没必要跑到国外 DNS
    nolo
        10
    nolo  
       2017-05-12 09:30:34 +08:00 via Android
    用运营商自带 懒得折腾了。。。
    QQ2171775959
        11
    QQ2171775959  
       2017-05-12 09:49:17 +08:00
    一般像谷哥的话,用的 8.8.8.8 比较多。
    Jesse
        12
    Jesse  
       2017-05-12 09:51:43 +08:00   ❤️ 2
    @imn1 dnsmasq --all-servers 选项就能实现,向多个 server 发起请求,用最快返回的那个结果
    tony1016
        13
    tony1016  
       2017-05-12 09:55:07 +08:00
    中科大的,无污染,国内网站解析到国内
    situs
        14
    situs  
       2017-05-12 10:00:36 +08:00
    8.8.8.8
    Fulminit
        15
    Fulminit  
       2017-05-12 10:12:12 +08:00 via iPhone
    @janecc 运营商自带...你就选择自动获取 DNS
    imn1
        16
    imn1  
       2017-05-12 10:15:13 +08:00
    @Jesse
    虽然你说的没错,但我安利的理由如果仅仅是并发,那就太狭隘了

    dnsmasq 可以在 win 用么?
    dnsmasq 可以改 TTL 么?
    dnsmasq 可以排除某些返回的特定 ip 么?
    dnsmasq 可以 TCP 么?
    dnsmasq 可以对多 ip 域名择优么?
    ……

    如果只用某个功能,其他一概无视,可选工具多的是,有很多功能且稳定才是值得推荐的理由
    skylancer
        17
    skylancer  
       2017-05-12 10:20:54 +08:00
    @imn1 那为什么不在路由器上做这事呢?
    imn1
        18
    imn1  
       2017-05-12 10:25:11 +08:00
    @skylancer
    因为我的路由器做不了这事,就这么简单
    至于换路由器,那是另一个议题:消费观,和此题无关

    且,我也不是去到什么地方都能改人家的路由器的
    janecc
        19
    janecc  
    OP
       2017-05-12 10:36:05 +08:00
    @skylancer 我的渣路由不支持,而且公司路由,我也操作不了
    NaturalColour
        20
    NaturalColour  
       2017-05-12 10:55:47 +08:00 via iPhone
    ip dnspod ?
    jasontse
        21
    jasontse  
       2017-05-12 11:25:39 +08:00 via iPad
    如果网络奇葩的话就不要有什么念想
    wwc
        22
    wwc  
       2017-05-12 11:29:38 +08:00
    我只想说在大陆,没有最好的 DNS,只有合适的 DNS ……
    janecc
        23
    janecc  
    OP
       2017-05-12 12:33:46 +08:00
    @jasontse 电信光钎 100M
    janecc
        24
    janecc  
    OP
       2017-05-12 12:33:58 +08:00
    @wwc 有理
    hzw
        25
    hzw  
       2017-05-12 12:54:05 +08:00 via iPhone
    用国内的解析,打不开的网站用梯子。
    靠解析来解决打不开网站的问题太折腾了,费时费力又不能一劳永逸。
    pifu
        26
    pifu  
       2017-05-12 12:54:13 +08:00 via Android
    广州移动好像是劫持了 114.114...
    eoxy
        27
    eoxy  
       2017-05-12 12:56:49 +08:00
    DNS 这个问题不是找一个好 dns 就能解决的,都不是本机一方能彻底解决的
    排除墙的干扰,你用 8.8.8.8 就没有 cdn 加速,你用 isp 分配的就有投毒污染
    还有各种各样奇奇怪怪的问题
    比如二三级小 isp 的 cdn 加速 ip 分配错误
    dns 缓存 ip 错误
    解析到的 ip 服务器上内容错误
    等等等等...

    多年来综合遇到的各种情况,我思考的结果是
    应该这么来终极解决 DNS 问题:
    就是任何网址都解析出所有的 ip 来,包括所有的 cdn 加速 ip,然后在里面根据网速和内容正确性优选最好的来使用
    所有的 ip 靠本机自己一端是不可能的获取到的
    这就需要用网上一些多点 ip 解析的服务来协助获取
    即使这样很多网址也不可能所有的 ip 都获取到比如 www.google.com,只能尽可能多的获取
    至少比单一 dns 要多得多,在其中优选出最好的 ip 的概率就高很多了
    上面的步骤可能要耗时很长,如果每次解析都这么来一次那是不可接受的
    所以还要有各种加速机制,缓存,快速返回结果,后台预解析等等
    asuhe
        28
    asuhe  
       2017-05-12 12:57:55 +08:00 via Android
    感觉 dnspod 的好一点 119.29.29.29
    alidns 很多网站都解析失败
    ksmter
        29
    ksmter  
       2017-05-12 13:00:31 +08:00
    @KCheshireCat 能不能问下,有哪些公共 DNS 支持 EDNS Client Subnet ?
    KCheshireCat
        30
    KCheshireCat  
       2017-05-12 13:04:46 +08:00
    @imn1 #16 这样抬杠式的安利看了真是只会徒增反感.
    @Jesse #12 提出疑问,一般来说不是介绍自己软件的优点吗.贬低对方软件,抬杠,真是没见过的"安利"手段

    你提出的 2,3 点 dnsmaq 可以简单的控制,并不是做不到.

    那么对比另一个选手 unbound,dnsforwarder 有何优势呢?

    所谓的 "多 ip 域名择优" 到底是怎么工作的也没有说明.

    是对每个解析结果都发 TCP syn 测一下延时? 还是根据 IP 归属地或者运营商来择优?

    看 dnsforwarder 的配置文件,都没有提到,并且也不支持 EDNS Client Subnet.

    如果是手动指定某个域名查询哪个上游 DNS 的规则池叫择优的话,那 dnsmasq 也能做到.

    最后 "dnsmasq 能 DHCP,你安利的 dnsforwarder 能吗?"
    KCheshireCat
        31
    KCheshireCat  
       2017-05-12 13:07:15 +08:00
    @ksmter #28

    dnspod 的 httpdns 明确支持,udp 查询不是不是支持我没测过
    google 的 httpsdns 支持,udp/tcp 查询没有测试过
    KCheshireCat
        32
    KCheshireCat  
       2017-05-12 13:11:46 +08:00
    @pifu #25

    浙江移动现在应该是 53 端口无差别回源了,只要是请求的域名在规则表里,统一全部抢答解析结果.

    用 udp port53 解析,你不管换什么 dns 都没用

    不知道广州那边是不是这样了
    KCheshireCat
        33
    KCheshireCat  
       2017-05-12 13:22:37 +08:00
    @eoxy #26

    这个是一种解决方法,但是太难实现.

    我根据 dnsmasq 的先到先回的特性做了一个简单的优选. /t/350162

    以 dnsmasq 作为本地缓存和并发器.

    同时向 dnspod httpdns 和远端 google httpsdns 发起查询.

    EDNS Client Subnet 分别填 本地 DNS 和 台湾 DNS .

    这样,如果有本地 CDN 优化的,dnspod 会比 google 先返回结果.如果没有则会等待 google 查询台湾地区的 CDN 优化结果.

    以此绕开移动解析到电信,联通的窘境.

    并且绕开了 dns 污染.
    mytsing520
        34
    mytsing520  
       2017-05-12 13:24:19 +08:00
    @KCheshireCat 这个叫域名强解,是由指定网站向移动申请的业务,在全省 UDP53 上面强制下达,要取消这个,得网站单位向移动下达授权书取消业务
    janecc
        35
    janecc  
    OP
       2017-05-12 13:27:12 +08:00
    @KCheshireCat 你这个轮子,我表示不会用,哈哈
    kiah
        36
    kiah  
       2017-05-12 13:27:46 +08:00
    一直用 360 自动选择最优 dns 地址的路过
    KCheshireCat
        37
    KCheshireCat  
       2017-05-12 13:30:25 +08:00
    @mytsing520 #33

    之前我是在微博的图床地址上发现这个情况的,被强解析之后图床用 https 访问会出现协议错误.

    用 dnspod httpdns 解析结果则正常,所以我还是不接受这种"优化"了
    mytsing520
        38
    mytsing520  
       2017-05-12 13:31:49 +08:00
    @KCheshireCat 换宽带 233333333
    eoxy
        39
    eoxy  
       2017-05-12 13:45:10 +08:00
    @KCheshireCat
    这样做有的被墙网址仍然无法避免 dns 缓存污染
    dns 投毒和 dns 缓存污染是两个概念
    投毒是指墙抢先返回假 ip,污染是指国内 dns 在递归查询时被墙投毒,自己已经缓存上了假 ip

    如果你 dnspod 已经缓存了 facebook.com 的假 ip,那么查询时先返回的还是它,一样被污染

    感觉这个先到先回的特性没有什么意义,还是得判断 ip 的正确性和速度才能最终确定
    KCheshireCat
        40
    KCheshireCat  
       2017-05-12 13:49:00 +08:00
    @eoxy #38 查询脸书返回的假 IP 在移动的 ip 段里么?不在移动 IP 段里就不会返回,等待远端解析结果,这是我目前想到的最好方法了
    eoxy
        41
    eoxy  
       2017-05-12 14:03:07 +08:00
    @KCheshireCat
    假 ip 列表参考这里:
    https://zh.wikipedia.org/wiki/%E5%9F%9F%E5%90%8D%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%BC%93%E5%AD%98%E6%B1%A1%E6%9F%93

    判断 IP 段的方法可能不太好,有些三级 isp 你都说不出它什么 ip 段,比如长城宽带,它的 ip 都是城域网的,乱变
    我觉得这种情况应该 ping 一下判断网速再返回更好,就 ping 一个包
    而且应该是 tcp ping 而不是 udp ping

    中国这网络环境非常差,处处都是坑
    我所知道的列举两个:
    1. 现在 53 端口的 dns 协议被完全劫持,你 ns 设置 0.0.0.0 都成查询,如 34L 所说
    2. udp ping 也被劫持,我这里的 isp 就是这样,任何 ip 去 ping,延迟都是几十 ms,感觉很快的样子,但其实是假的,你 tcp 去连 80 端口就会发现极慢
    lenovo
        42
    lenovo  
       2017-05-12 14:05:18 +08:00
    局域网、本机自己搭建
    imn1
        43
    imn1  
       2017-05-12 14:42:52 +08:00
    @KCheshireCat
    这也算抬杠?
    那算了,反正也不是我的作品

    只是受惠多年,也没给人家什么回报才安利一下,想当年也是搜 ss 和 dnsforwarder 两次搜到 v2 才来注册的
    AdamMaggie
        44
    AdamMaggie  
       2017-05-12 15:18:44 +08:00
    Pcap_DNSProxy
    AdamMaggie
        45
    AdamMaggie  
       2017-05-12 15:19:19 +08:00
    n37r06u3
        46
    n37r06u3  
       2017-05-12 15:21:47 +08:00
    在 mac 上搭一个 dns 自己用可以吗
    buchiluobo
        47
    buchiluobo  
       2017-05-12 15:38:05 +08:00
    建议尝试一下 Pcap_DNSProxy,项目地址: https://github.com/chengr28/Pcap_DNSProxy
    buchiluobo
        48
    buchiluobo  
       2017-05-12 15:41:59 +08:00
    这个可以国内走国内,国外走国外,不过建议进入 Config.ini 把[Addresses]IPv4 Main DNS Address 的 8.8.4.4 改成 168.95.1.1:53,把 IPv4 Alternate DNS Address 的 8.8.8.8 改成 168.95.192.1:53。我这里用 UDP 也能返回正确 IP,版主那可以使用 nslookup 看一下是否能返回正确 IP,如果无法返回正确 IP 再尝试 TCP。对了版主,修改后记得打开 ServiceControl.bat 输入 1 回车启动服务,然后输入 5 回车,再输入 6 回车,再输入 7 回车。
    janecc
        49
    janecc  
    OP
       2017-05-12 15:46:20 +08:00
    @buchiluobo 我尝试一下
    buchiluobo
        50
    buchiluobo  
       2017-05-12 15:52:28 +08:00
    buchiluobo
        51
    buchiluobo  
       2017-05-12 15:55:54 +08:00
    @janecc 你下载了吗?记得先解压然后去修改 Config.ini,只需要修改
    [Addresses]IPv4 Main DNS Address 的 8.8.4.4 改成 168.95.1.1:53
    把 IPv4 Alternate DNS Address 的 8.8.8.8 改成 168.95.192.1:53
    然后右键 ServiceControl.bat 点击以管理员身份运行,然后输入 1,之后把电脑宽带里的主 DNS 修改成 127.0.0.1
    janecc
        52
    janecc  
    OP
       2017-05-12 16:06:12 +08:00
    @buchiluobo 这应该是成功了吧!
    ![]( )
    KCheshireCat
        53
    KCheshireCat  
       2017-05-12 16:45:49 +08:00
    @eoxy #40
    "2015 年 1 月 2 日起,汙染方式升級,不再是解析到固定的無效 IP,而是隨機地指向境外的有效 IP。" --wiki

    我之前还在 V2EX 上看到有人反映有架设有正常网站的 IP 被随机到,结果遭到轰炸的主题.

    对每个域名都 ping 一下所有结果,但是服务器禁 icmp 包了就失效了,当然也包括 icmp udp 劫持和劣化.

    如果改用 tcping,DNS 是不知道要连接的端口号的,如果都是访问 web 那就遍历 80,443 端口就好.

    但现实很复杂,如果请求一个域名,上面不是 web 服务呢,难道要遍历所有低位端口么.万一它端口在高位呢.
    janecc
        54
    janecc  
    OP
       2017-05-12 16:53:01 +08:00
    @KCheshireCat 现在 DNS 污染,真的有点厉害哇
    eoxy
        55
    eoxy  
       2017-05-12 16:56:20 +08:00
    @KCheshireCat 端口号这个确实不能肯定,比较头疼
    我想的可能的方案是和浏览器结合,成为一个 socks5 代理,浏览器开启远程 dns
    这样在 socks5 代理里面再 dns 时就能知道端口和协议了
    其他软件不能这样做的干脆就随便了,反正绝大多数 dns 请求还是 web 访问
    buchiluobo
        56
    buchiluobo  
       2017-05-12 17:26:31 +08:00
    @janecc 嗯,看起来成功了,你没把 UDP 改成 TCP 吧?不用改。试试打开 https://tumblr.com
    buchiluobo
        57
    buchiluobo  
       2017-05-12 18:39:46 +08:00
    @janecc 感觉如何?
    kmahyyg
        58
    kmahyyg  
       2017-05-12 18:40:35 +08:00 via Android
    中科大 dns + 119.29
    mianju
        59
    mianju  
       2017-05-12 18:42:43 +08:00
    @tony1016 中科大的有时候不稳定
    app13
        60
    app13  
       2017-05-12 18:52:10 +08:00
    @KCheshireCat #53 最后一句......
    “目前污染方式已恢复为解析到固定的无效 IP,并且 twitter youtube google 等网站均使用泛解析方式域名污染。”
    zro
        61
    zro  
       2017-05-12 19:26:49 +08:00
    @kmahyyg 中科大的有什么黑科技加成吗? 53 端口居然能得到不受干扰的结果😏😏
    miaomiao888
        62
    miaomiao888  
       2017-05-12 21:12:56 +08:00
    https://github.com/miaomiaosoft/Acrylic-DNS-Proxy-GUI

    Acrylic DNS Proxy
    可以总共 10 个 DNS 并发查询,取返回最快的结果
    支持 TCP 和非标准端口还有代理远程查询
    也可以设定规则哪些域名指定用哪个 DNS 解析
    通俗讲就是保证了 CDN 准确性的同时又能用上干净的 DNS
    wzw
        63
    wzw  
       2017-05-12 21:55:06 +08:00
    @miaomiao888 是不是你做的呀
    hemoely
        64
    hemoely  
       2017-05-12 22:21:06 +08:00 via Android
    北京移动铁通我要炸了、腾讯的斗地主都进不去、王者荣耀直接掉线重连不进去!日了狗、从此移动宽带一生黑、去尼玛的😠
    Devmingwang
        65
    Devmingwang  
       2017-05-12 23:19:20 +08:00 via Android
    @hemoely 路由器设置不合适怪移动系列。。。。

    最好的 DNS 肯定是 114.114.114.114 其次就是 8.8.8.8 啊,国内国外都可以正常使用,挂掉率很低,去了国外五大洲所有运营商不用换 DNS 就可以正常上 google 等网站。
    Forbidden
        66
    Forbidden  
       2017-05-13 08:17:52 +08:00   ❤️ 1
    @zro 没记错的话好像还是分流的,国内的在国内解析,国外的在国外解析
    jlyybz
        67
    jlyybz  
       2017-05-13 08:56:51 +08:00
    以前一直是 114+8.8
    后来用腾讯的 119.29+1.2.4.8
    结果断网一早上
    目前是 119 和 114
    janecc
        68
    janecc  
    OP
       2017-05-13 09:56:51 +08:00
    @jlyybz 家里网络正常,用了 119 和 114,公司网络有毒,用了 Pcap_DNSProxy
    zizifu
        69
    zizifu  
       2017-05-13 13:20:53 +08:00
    8.8.8.8 结束~
    lslqtz
        70
    lslqtz  
       2017-05-13 17:36:02 +08:00
    @KCheshireCat 我觉得这样安利有理有据。
    的确,dnsmasq 不怎么适合 Windows 用。
    KCheshireCat
        71
    KCheshireCat  
       2017-05-13 17:43:26 +08:00
    @lslqtz #69

    dnsmasq 本来就不能在 Windows 上用啊 [黑人问号]
    dqwlcdqwlc
        72
    dqwlcdqwlc  
       2017-05-13 21:08:12 +08:00 via Android
    129.250.35.250+129.250.35.251
    chengr28
        73
    chengr28  
       2017-05-15 22:11:58 +08:00
    @KCheshireCat 其实现在对这类直接请求 DNS 做过滤的软件啦说,杀伤力最大的并不是返回随机的虚假地址,而是出口普遍严重丢包,这样不通过梯子之类想要直接拿结果,很是麻烦。
    bclerdx
        74
    bclerdx  
       2017-05-15 22:59:01 +08:00
    @chengr28 说的太对了。
    janecc
        75
    janecc  
    OP
       2017-05-16 19:46:44 +08:00
    @chengr28 丢包没有影响,自备梯子,不过 dns 把国内外能访问的也污染了,导致无法访问,这才是主要问题
    buchiluobo
        76
    buchiluobo  
       2017-05-16 20:04:41 +08:00
    @janecc chegnr28 就是 Pcap_DNSProxy 的作者
    buchiluobo
        77
    buchiluobo  
       2017-05-16 20:05:43 +08:00
    @janecc 而且我觉得自备梯子并不能解决国外 DNS 丢包的问题。
    bclerdx
        78
    bclerdx  
       2017-05-20 07:42:14 +08:00 via Android
    @mytsing520 联通 电信 和一些小运营商也有这个业务么?
    bclerdx
        79
    bclerdx  
       2017-05-20 07:44:03 +08:00 via Android
    @eoxy 你 udp ping 和 tcp ping 分别上个延迟图。
    JenghongLee
        80
    JenghongLee  
       2017-05-20 19:19:28 +08:00 via iPhone
    @app13 随机出污染地址那应该是个别地区吧,据我了解电信和联通污染的 IPwikipedia 里都有就是这些了,不会出现随机 IP 污染,目前 wall 还没那么干,一些二级三级运营商及移动网络构造比较特殊就不知道了。这些运营商有时候把正常能访问的网址都解析到自己的内网就不言而喻了。
    bclerdx
        81
    bclerdx  
       2017-05-20 20:22:57 +08:00 via Android
    @JenghongLee 我艹,一些小运营商把正常访问的网址解析到内网,是为了省结算费么?
    buchiluobo
        82
    buchiluobo  
       2017-05-25 16:04:22 +08:00
    @bclerdx 长城宽带想哭
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5364 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 09:02 · PVG 17:02 · LAX 02:02 · JFK 05:02
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.