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

有没有办法,即能对抗 DNS 投毒,又能不掉响应速度?

  •  
  •   abcbuzhiming · 2020-12-12 15:11:31 +08:00 · 11260 次点击
    这是一个创建于 1201 天前的主题,其中的信息可能已经有所发展或是发生改变。
    这两天反复的为住处的网络问题折腾,之前以为是 ipv6 线路问题,等把 ipv6 停掉了,才发现原来我们这本地运营商的 ipv4 DNS,也开始投毒,具体的讲就是某些域名它给你返回 127.0.0.1 。。。这还不是什么特殊网站,只是微软家的一个短地址解析服务,导致 VS 不能更新,给工作带来了极大困扰。

    不得已我终于开始上诸如 simple-dnscrypt 这样的 DNS 解析软件,但是我发现上了这类软件后产生了新的问题,首先就是这类软件为了保证效果,是要求你的 DNS 解析都从它这里走,也就是说,适配器里自定义 DNS 必须是 127.0.0.1 。这确实有效的对抗了 DNS 干扰,但是带来一个副作用就是访问网站(尤其是国内网站)的响应和加载速度大大降低。因为以前这些国内网站走运营商 DNS 查询速度是很快的,而现在走 simple-dnscrypt 的话,查询 dns 的结果的延迟可以达到秒级别;还有一个完全没法忍的问题是,走 simple-dnscrypt 的话,国内很多网站的 CDN 加速,就工作不正常了,可以明显的看到浏览器不是访问的最快的 CDN 服务,就导致这类网站的静态资源加载速度比用运营商 DNS 时慢的不止一点。放狗查了一下发现还真有描述这个现象的文章:叫使用公共 DNS 必须付出的代价之一,就是这个 CDN 失效问题,因为公共 DNS 不一定能让 CDN 识别你的请求来源。

    我该咋办了呢?是不是我的使用姿势不太对。感觉这年头上个网还真折腾。
    58 条回复    2020-12-21 15:40:13 +08:00
    INTEL2333
        1
    INTEL2333  
       2020-12-12 15:17:06 +08:00 via Android
    分流
    境内 cdn 域名走运营商 dns,剩余走 tls://8.8.8.8
    分流的上游配置我只做了 adguardhome 的
    有人要的话回复下,我看到了就发
    dot2017
        2
    dot2017  
       2020-12-12 15:17:09 +08:00
    冒着被喝茶的风险自搭
    wd
        3
    wd  
       2020-12-12 15:17:34 +08:00 via iPhone
    用一些可以分流的 dns
    abcbuzhiming
        4
    abcbuzhiming  
    OP
       2020-12-12 15:21:36 +08:00
    @INTEL2333
    @wd
    所谓分流的意思是什么,根据域名来判断走运营商 DNS 还是走公共 DNS 吗?
    GhostTc
        5
    GhostTc  
       2020-12-12 15:27:34 +08:00
    @INTEL2333 大佬发一下配置看看
    Smash
        6
    Smash  
       2020-12-12 15:30:39 +08:00 via Android
    @wd #3 @INTEL2333 #1 我需要,被投毒整得焦头烂额。
    Xymmh
        7
    Xymmh  
       2020-12-12 15:32:19 +08:00   ❤️ 1
    个人推荐使用 OneDNS ( www.onedns.net/personal ) 提供的公共 dns 服务 ,

    这个 dns 是我研究网络以来,发现的解析结果最接近运营商的 dns,并且没有过度污染。
    INTEL2333
        8
    INTEL2333  
       2020-12-12 15:36:48 +08:00 via Android
    @abcbuzhiming 对的
    境内 cdn 域名走境内的 dns
    其他域名尽量走无污染的并支持 ECS 特性的 dns

    我境内 cdn 域名用的 223.6.6.6
    因为是在 vps 上跑,用 119.29 会导致百度和七牛之类的 cdn 不是最优解(吐槽一下百度和七牛的 edns
    wd
        9
    wd  
       2020-12-12 15:50:49 +08:00 via iPhone
    @abcbuzhiming #4 就是可以国内域名走一个 dns 国外域名走另一个
    abcbuzhiming
        10
    abcbuzhiming  
    OP
       2020-12-12 15:52:25 +08:00
    @INTEL2333 问题在于,那么多域名,我怎么知道哪些域名是国内的,哪些是国外的,还会说哪里有维护一个列表,定时更新就行了?
    anguiao
        11
    anguiao  
       2020-12-12 16:51:06 +08:00 via Android
    @dot2017 本地起一个啥事没有,没必要在公网上搭。
    m4d3bug
        12
    m4d3bug  
       2020-12-12 16:52:14 +08:00 via Android
    overture 自建,云服务器供应商限制特定网段白名单,china ip 文本塞进去
    imn1
        13
    imn1  
       2020-12-12 16:56:30 +08:00
    其实快慢更多是取决 dns cache 吧,只是首次查询慢而已,我是接管了 TTL,改为 20 小时,一天内变 ip 的那些网站不是我关心的
    INTEL2333
        14
    INTEL2333  
       2020-12-12 18:14:13 +08:00 via Android
    @abcbuzhiming github 有人维护 list
    CrazyBoyFeng
        15
    CrazyBoyFeng  
       2020-12-12 18:14:27 +08:00
    clowwindy 的 chinadns 我还在用。感觉挺好用的,兼顾速度和准确性。
    同时向本地和加密两个 dns 服务器发出查询请求,本地 dns 返回境内 ip 就用本地的,本地 dns 返回境外 ip 就抛弃等待加密 dns 返回结果。
    leavic
        16
    leavic  
       2020-12-12 18:21:05 +08:00
    这年头不折腾还怎么上网。
    Lightbright
        17
    Lightbright  
       2020-12-12 18:23:02 +08:00 via Android
    用国内的安全 dns 呗,阿里腾讯都有提供
    jameslucas
        18
    jameslucas  
       2020-12-12 18:34:45 +08:00   ❤️ 1
    长期实践,chinadns 还是最佳的方案。
    CrazyBoyFeng
        19
    CrazyBoyFeng  
       2020-12-12 18:48:28 +08:00
    话说楼主你那里的运营商 dns 对 t.cnurl.cn 的解析结果正确吗?如果不正确的话,建议你直接弃用运营商 dns,用阿里 dns 或者腾讯 dns
    loukky
        20
    loukky  
       2020-12-12 19:32:51 +08:00 via Android
    把上游 DNS 设置成无污染 DNS,比如中科大的
    bilibilifi
        21
    bilibilifi  
       2020-12-12 19:45:38 +08:00 via iPhone
    搭建一个 unbound 的 DNS over TLS
    NSAgold
        22
    NSAgold  
       2020-12-12 19:53:42 +08:00 via Android
    smartdns 上游红鱼
    465456
        23
    465456  
       2020-12-12 19:55:18 +08:00
    广州电信,遇到某些网站,国外的 DNS 是投毒(劫持),国内公共的 DNS 是污染( DNS 服务器的 DNS 本身就是错,没有劫持),别问我怎样知道,dns tracert 查到线路的
    465456
        24
    465456  
       2020-12-12 19:57:47 +08:00
    clash 的 rule 模式上网不香吗? DNS 染污就染污,国外域名全部走梯子,照样可以打开国外网站
    Kiriya
        25
    Kiriya  
       2020-12-12 20:36:45 +08:00
    pi hole 或 adguard home 可以解决
    zro
        26
    zro  
       2020-12-12 21:07:16 +08:00
    在海外的 VPS 搭了不对外公开的 ADGuard Home,设的上游是 Google TLS,本地 dnsmasq 带上 add-subnet,用了小半年了,暂时只发现阿里系和 B 站不能愉快地用 Google DNS,只好设成国内某家支持 ECS 的 DoT,试了一小些其他域名跟本地 ISP DNS 对比,IP 数据都一样。。
    Darkatse
        27
    Darkatse  
       2020-12-12 21:10:33 +08:00   ❤️ 1
    用支持 EDNS 的无污染 DNS,原理就是请求 DNS 的时候带上源地址信息,DNS 服务器会返回源地址就近的节点,避免了国内有节点但返回的地址却是国外的情况
    可以看看 NextDNS 的关于 EDNS 的文章
    https://help.nextdns.io/t/m1hmv04/what-is-edns-client-subnet-ecs
    ericbize
        28
    ericbize  
       2020-12-12 21:11:20 +08:00
    家里用 mikrotik, 默认策略本地电信 dns, 特殊域名直接 劫持 走 vpn
    ericbize
        29
    ericbize  
       2020-12-12 21:11:54 +08:00
    然后特殊域名 自己要用什么就定义, 用 layer 7 识别
    lishen226
        30
    lishen226  
       2020-12-12 21:14:34 +08:00
    连不上就打洞
    zro
        31
    zro  
       2020-12-12 21:14:39 +08:00
    @bilibilifi #21 用了一阵子,unbound 为了安全,连 cname 都要查一遍才有数据。。
    IDAEngine
        32
    IDAEngine  
       2020-12-12 21:32:52 +08:00 via iPhone
    @465456 都是劫持 53 端口到当地运营商提速 dns
    bclerdx
        33
    bclerdx  
       2020-12-12 22:22:49 +08:00
    @465456 你广州电信用哪家的 DNS ?运营商分配的还是第三方的?
    LukeChien
        34
    LukeChien  
       2020-12-13 00:47:46 +08:00 via Android
    走非标端口的 DNS 可以解决大部分问题
    lostberryzz
        35
    lostberryzz  
       2020-12-13 01:14:32 +08:00
    clash 可以配置 dot 和 doh
    Vegetables
        36
    Vegetables  
       2020-12-13 08:16:45 +08:00 via Android
    最好的办法还是按照域名分流,国内直接本地 DNS 解析,CDN 就正常了
    INTEL2333
        37
    INTEL2333  
       2020-12-13 09:08:55 +08:00   ❤️ 1
    @GhostTc @Smash sorry 鸭,昨天忘记了....
    https://www.cattery.work/%E4%B8%8A%E6%B8%B8.txt
    list 来自
    https://github.com/hq450/fancyss/blob/master/rules/cdn.txt
    记得选并行查询并勾选 EDNS
    INTEL2333
        38
    INTEL2333  
       2020-12-13 09:27:32 +08:00   ❤️ 2
    @GhostTc @Smash 再补充下,虽然说表看着大但响应还是非常快的,对性能要求也挺低的,不会说严重影响性
    至于复制上去嘛,改 yaml 也好,浏览器复制也没问题,手机复制的话 webview 版本尽量高点吧....不然不好复制

    list 更新时间是 12 月 12 号的,请放心食用

    至于分流部分的制作方法嘛
    把 list 扒下来
    右边添加 /
    去回车
    在开头加个[/
    在末尾加个]tcp://223.5.5.5
    cwbsw
        39
    cwbsw  
       2020-12-13 09:56:00 +08:00
    @ericbize RouterOS 自带的 DNS Server 现在支持正则匹配转发了。
    missdeer
        40
    missdeer  
       2020-12-13 10:09:11 +08:00
    我用 肥猫的大陆域名列表进行分流,适用于 99.99%的情况
    ericbize
        41
    ericbize  
       2020-12-13 10:11:04 +08:00
    @cwbsw 一直都支持啊

    在防火墙,直接 dnat udp 53, 然后规则加 7 层协议就可以了
    Alwaysonline
        42
    Alwaysonline  
       2020-12-13 10:29:28 +08:00
    国内 223.5.5.5
    国外强制走 8.8.8.8
    txydhr
        43
    txydhr  
       2020-12-13 12:02:42 +08:00 via iPhone
    @abcbuzhiming gfwlist 呀,没被封的域名走运营商 dns,被封的走特殊渠道
    justin2018
        44
    justin2018  
       2020-12-13 12:53:46 +08:00
    no1xsyzy
        45
    no1xsyzy  
       2020-12-13 14:30:19 +08:00
    “若投毒则返回 127.0.0.1”是稳定现象吗?是的话应该可以在本机上建一个 SNI proxy……
    反正解析到 127.0.0.1 也可以被 SNI proxy 正确重定向 TCP 流量。

    或者写个 DNS 服务器,遇到 127.0.0.1 的时候走其他路线重新来。
    openbsd
        46
    openbsd  
       2020-12-13 15:00:19 +08:00
    最近投毒有点厉害,是某种攻击吗 ?
    电信自家的 DNS,好几次连百度都打不开
    yyysuo
        47
    yyysuo  
       2020-12-13 16:51:51 +08:00
    分流+过期缓存
    systemcall
        48
    systemcall  
       2020-12-13 19:23:19 +08:00
    @openbsd 以前在长城宽带上见过
    是想跳转到别的网站,再给本来要访问的网站加上自己的返利链接。如果你的电脑上面很多广告软件,应该是可以成功跳转的。黑吃黑而已。普通用户,就要用到 OpenWRT+ChinaDNS
    z888888cn
        49
    z888888cn  
       2020-12-13 21:54:33 +08:00
    以前 GoAgent 里自带的 dns server 分流就很好用。
    z888888cn
        50
    z888888cn  
       2020-12-13 22:04:21 +08:00
    推荐
    DNS2SOCKS 、pdnsd-TCP
    fengxing
        51
    fengxing  
       2020-12-14 01:37:12 +08:00   ❤️ 1
    推荐使用 Pcap_DNSProxy,虽然作者删库跑路了,但是可以去下载别人 fork 的内容,我感觉这个是最好用的。
    这个虽然能安装即用,但是有非常非常非常丰富的可设置内容,具体的可以看文档。
    onion83
        52
    onion83  
       2020-12-14 09:54:17 +08:00 via iPhone
    smatdns 或 dnsmaq 做黑名单分流
    brMu
        53
    brMu  
       2020-12-15 07:18:06 +08:00 via Android
    阿里云的 DoH+smartdns
    jiub
        54
    jiub  
       2020-12-17 23:05:42 +08:00 via iPhone
    本地 dns
    FlyingShark
        55
    FlyingShark  
       2020-12-18 11:29:11 +08:00
    其实 360 的 DOH 服务还行,我知道你们看不上,真的还行
    https://dns.360.cn/dnsPublic.html#course
    465456
        56
    465456  
       2020-12-18 20:23:01 +08:00
    @IDAEngine 广州电信没有劫持 DNS 加速
    IDAEngine
        57
    IDAEngine  
       2020-12-21 00:29:10 +08:00 via iPhone
    @465456 有劫持 53 端口到附近的电信 服务器,你 tracker 一下 53 端口的微博 udp 流量就知道了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5985 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 70ms · UTC 06:12 · PVG 14:12 · LAX 23:12 · JFK 02:12
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.