有没有办法,即能对抗 DNS 投毒,又能不掉响应速度? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
abcbuzhiming
V2EX    宽带症候群

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

  •  
  •   abcbuzhiming 2020-12-12 15:11:31 +08:00 12373 次点击
    这是一个创建于 1762 天前的主题,其中的信息可能已经有所发展或是发生改变。
    这两天反复的为住处的网络问题折腾,之前以为是 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
        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     Solana     1046 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 31ms UTC 23:07 PVG 07:07 LAX 16:07 JFK 19:07
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86