V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
whatsmyip
V2EX  ›  问与答

求推荐靠谱的防 dns 污染方案

  •  2
     
  •   whatsmyip · 2018-05-02 22:47:33 +08:00 · 31385 次点击
    这是一个创建于 2431 天前的主题,其中的信息可能已经有所发展或是发生改变。

    入了一个 Google Home,需要配置路由器全局,用的树莓派

    也用 redsocks 转发了流量

    然而,DNS 解析这一块还没解决,结果老是被污染 返回了一堆 fb 的 ip

    试了一些方案,试图绕过坑爹的 UDP

    henices/Tcp-DNS-proxy 这个,似乎是基于 TCP 协议,但是不知道为什么,访问日志里依旧出现 69.171.247.32 这种 IP

    还试了腾讯的 httpdns,吹的天花乱坠,但是返回结果依旧是被污染的

    还剩下一个 dns.google.com 基于 https,理论上没有问题,可是没有找到转换的代码

    要是没有其他方案的话,就要自己造轮子了。。。

    第 1 条附言  ·  2018-05-03 10:47:01 +08:00
    解决啦

    问题在于 home 使用了内置的 DNS,所以无论我在路由器上怎么设置都无效

    转发 53 端口流量,强制走路由器 DNS,可以解决这个问题

    ```bash
    iptables -t nat -A PREROUTING -p udp --dport 53 -j REDIRECT --to-ports 5353
    iptables -t nat -A PREROUTING -p tcp --dport 53 -j REDIRECT --to-ports 5353
    ```
    第 2 条附言  ·  2018-07-31 10:03:15 +08:00
    看来 DNS over HTTPS ( DoH )是未来的趋势啊,浏览器已经在开始原生支持了,期待 Chrome 的更新。

    图解基于 HTTPS 的 DNS

    http://www.infoq.com/cn/articles/a-cartoon-intro-to-dns-over-https
    第 3 条附言  ·  2019-04-05 19:18:49 +08:00
    最后是基于 cloudflare 提供的 1.1.1.1 DoH 服务搭建了一套全局透明代理网关。

    过程可见 https://blog.newnius.com/setup-global-proxy-with-raspberry-pi.html
    54 条回复    2019-09-01 15:19:26 +08:00
    Cipool
        1
    Cipool  
       2018-05-02 22:54:34 +08:00 via Android   ❤️ 1
    直接换用位于国内的无污染 DNS 试试
    @googlehosts #防污染 DNS
    主要服务器:140.143.226.193 (非实时查询上游,5 分钟缓存)
    备用服务器:120.132.13.50 (实时查询上游,无缓存)
    whatsmyip
        2
    whatsmyip  
    OP
       2018-05-02 22:57:08 +08:00
    @Cipool 我在教育网,试过中科大的,no luck
    Love4Taylor
        3
    Love4Taylor  
       2018-05-02 23:04:51 +08:00 via Android   ❤️ 1
    如果你到 Google Public DNS 不丢包 不被完全劫持的话 可以试试 chinadns2, 利用 EDNS 防抢答...
    LazyZhu
        4
    LazyZhu  
       2018-05-02 23:07:10 +08:00   ❤️ 2
    rosu
        5
    rosu  
       2018-05-02 23:07:47 +08:00 via Android
    有点疑问,既然是全局,为什么还会被污染?
    whatsmyip
        6
    whatsmyip  
    OP
       2018-05-02 23:13:57 +08:00
    @rosu 网络所在层不一样,先解析得到 IP,然后才转发
    hzqim
        7
    hzqim  
       2018-05-02 23:16:48 +08:00   ❤️ 1
    假设你用的是 OpenWRT,而且已经有了 socks5 ;
    来一个 dns2socks 走 socks5 向 8.8.8.8 询问 ip,还支持 CDN。
    采用支持 regex 的 dnsmasq 通过关键字(而不是域名)走 dns2socks5 进行解析,国内的域名走 ISP 分配的 DNS 解析,因为免去了维护网址的步骤,特方便。
    这个方案,只要 socks5 能通就能正确解析,若 socks5 不通,防污染也失去了意义。

    目前最满意的方案!
    rosu
        8
    rosu  
       2018-05-02 23:19:31 +08:00 via Android
    @whatsmyip 这样子的话...不是和没有梯子没什么区别吗?不知道我有没有理解错。

    因为 DNS 本身也会被投毒的,如果不在本地 PAC 做判断,DNS 也不一定能返回正确结果给你的吧?
    LazyZhu
        9
    LazyZhu  
       2018-05-02 23:23:02 +08:00   ❤️ 1
    @hzqim
    还有一种方法
    只要 DNS 支持 ECS( https://en.wikipedia.org/wiki/EDNS_Client_Subnet),就可以指定 ECS 为代理 IP 也可以获得最好的解析.
    Cipool
        10
    Cipool  
       2018-05-02 23:26:56 +08:00 via Android
    @whatsmyip 中科大支持 5353 端口解析
    我发的那两个支持 2333 端口解析
    换用特殊端口应该可行吧
    t123yh
        11
    t123yh  
       2018-05-02 23:32:26 +08:00 via Android   ❤️ 1
    hzqim
        12
    hzqim  
       2018-05-02 23:32:56 +08:00
    @LazyZhu #9 谢谢指点,在你身上学到很多,感恩!
    chotow
        13
    chotow  
       2018-05-02 23:38:54 +08:00 via Android
    歪个楼,为什么被污染的,都会解析到 FB ?
    whatsmyip
        14
    whatsmyip  
    OP
       2018-05-02 23:40:15 +08:00
    @Cipool 重置了一下,依旧。。。
    songz
        15
    songz  
       2018-05-02 23:46:49 +08:00   ❤️ 1
    树莓派弄个 pi hole
    xiaozecn
        16
    xiaozecn  
       2018-05-03 00:12:04 +08:00 via Android   ❤️ 1
    @rosu 印象里这种都是内置 8.8.8.8,而不是用路由器分配的。所以几种路由器插件都有一个 DNS 劫持功能
    EsWann
        17
    EsWann  
       2018-05-03 00:25:51 +08:00 via Android   ❤️ 1
    纯净无污染 DNS: https://pdomo.me
    bazingaterry
        18
    bazingaterry  
       2018-05-03 00:29:55 +08:00 via iPhone   ❤️ 2
    GitHub 搜 overture
    chenyx9
        19
    chenyx9  
       2018-05-03 00:37:18 +08:00 via Android   ❤️ 1
    我只是推断,不敢肯定。很可能如 16 楼所讲需要劫持 8.8.8.8 到路由,我的 Chromecast 就是这么干的。
    maowu
        20
    maowu  
       2018-05-03 01:15:08 +08:00 via Android   ❤️ 1
    8.8.8.8 支持 tcp 嘛,考虑一下自己劫持 dns 查询丢到隧道发出去
    ysc3839
        21
    ysc3839  
       2018-05-03 01:21:02 +08:00 via Android
    @whatsmyip no luck 是什么意思?还是被污染?
    isbase
        22
    isbase  
       2018-05-03 01:38:46 +08:00 via Android   ❤️ 1
    ChinaDNS
    zhengzhou518
        23
    zhengzhou518  
       2018-05-03 03:22:10 +08:00
    @LazyZhu 哥们你说的这种方式是否有设置的视频教程啊,对于新手来说
    wzw
        24
    wzw  
       2018-05-03 07:40:24 +08:00
    哪个域名被污染了, 我怎么很久没这样的感觉了
    jasonyang9
        25
    jasonyang9  
       2018-05-03 09:03:50 +08:00
    @rosu #8 是的啊,各个层面都可以干扰你
    keramist
        26
    keramist  
       2018-05-03 09:13:45 +08:00 via Android   ❤️ 1
    前端加个 k2 刷 padavan 强制路由解析搞定
    lbp0200
        27
    lbp0200  
       2018-05-03 10:14:43 +08:00 via Android   ❤️ 1
    PRCDNS
    目前正在搞优化版
    catinred
        28
    catinred  
       2018-05-03 10:22:42 +08:00   ❤️ 1
    HandSonic
        29
    HandSonic  
       2018-05-03 10:23:16 +08:00   ❤️ 1
    现成的方案太多了啊,dnsproxy、DNSCrypt、Pcap_DNSProxy、ChinaDNS 等等……
    des
        30
    des  
       2018-05-03 10:29:42 +08:00 via Android
    @chotow 同问,是不是干掉这些就好了
    jhytxy
        31
    jhytxy  
       2018-05-03 10:30:32 +08:00 via iPhone   ❤️ 1
    我记得 koolshare 的固件里都集成好了的...开箱即用
    whatsmyip
        32
    whatsmyip  
    OP
       2018-05-03 10:32:19 +08:00
    @xiaozecn
    @chenyx9
    @keramist

    确实是因为 home 内置了 DNS 导致我在路由器上怎么设置都不行,而手机和电脑明明都是可以的

    强制转发 53 端口流量,解决了这个问题

    ```bash
    iptables -t nat -A PREROUTING -p udp --dport 53 -j REDIRECT --to-ports 53
    iptables -t nat -A PREROUTING -p tcp --dport 53 -j REDIRECT --to-ports 53
    ```
    whatsmyip
        33
    whatsmyip  
    OP
       2018-05-03 10:34:17 +08:00
    @Cipool 你给的 DNS 应该是可以的,问题在于 home 内置了 DNS,没有用路由器的设置
    whatsmyip
        34
    whatsmyip  
    OP
       2018-05-03 10:38:10 +08:00
    @LazyZhu 这个很给力
    whatsmyip
        35
    whatsmyip  
    OP
       2018-05-03 10:39:30 +08:00
    @hzqim 这个我找到的文档都没有。。。
    whatsmyip
        36
    whatsmyip  
    OP
       2018-05-03 10:40:49 +08:00   ❤️ 1
    @ysc3839 对,home 用了内置的 DNS,路由器上设置的无效
    ETiV
        37
    ETiV  
       2018-05-03 10:41:44 +08:00   ❤️ 1
    https://1.1.1.1

    前两天不是新出了个吗~
    whatsmyip
        38
    whatsmyip  
    OP
       2018-05-03 10:44:52 +08:00   ❤️ 1
    @chotow
    @des

    不一定是 fb,有时候是 twitter,感觉是随机,之前就被指到了国外某私人服务器

    我记得 chinadns 似乎就是这个原理?发现给出了错误 ip 就丢弃这个

    但是 现在一直在升级,很难预先知道返回的是不是正确的
    presoul
        39
    presoul  
       2018-05-03 10:50:37 +08:00 via Android
    用 cloudflare websocket 翻墙有过解析到 fb
    一般没感觉过劫持~
    feather12315
        40
    feather12315  
       2018-05-03 11:01:34 +08:00 via Android
    推荐这个教程,直接全局 UDP 流量
    https://www.zfl9.com/ss-redir.html
    lbp0200
        41
    lbp0200  
       2018-05-03 11:09:37 +08:00
    https://github.com/aarond10/https_dns_proxy
    这个应该是最符合你的解决方案了
    des
        42
    des  
       2018-05-03 11:18:08 +08:00 via Android
    @whatsmyip 原来是只有固定四个,现在随机的池子多吗?
    hicdn
        43
    hicdn  
       2018-05-03 13:23:41 +08:00
    https://github.com/aa65535/openwrt-dns-forwarder + https://github.com/aa65535/openwrt-chinadns
    稳定运行一年左右了,自动区分境内外地址, ss+dns-forwarder+chinadns

    下面是作者几年前写的方案 @aa65535
    https://sourceforge.net/p/openwrt-dist/wiki/DNS/
    faicker
        45
    faicker  
       2018-05-03 21:00:10 +08:00
    @faicker 支持 cdn,解决了 twitter 返回 fb 地址这样的问题。配合 dnscrypt-proxy。
    tzungtzu
        46
    tzungtzu  
       2018-05-21 14:28:26 +08:00
    请问楼主你的 calendar 可以正常使用不,我的好像有问题,别的一般问题可以正常使用。
    whatsmyip
        47
    whatsmyip  
    OP
       2018-05-21 22:39:10 +08:00
    @tzungtzu 我没有用到这个功能。。。应该没有问题吧
    tzungtzu
        48
    tzungtzu  
       2018-05-22 10:00:01 +08:00
    @whatsmyip 你一般用哪些功能呀~
    whatsmyip
        49
    whatsmyip  
    OP
       2018-05-27 10:05:56 +08:00
    @tzungtzu v2 的提醒功能似乎有点问题。一般就是 "Hey Google, play some music"、"Hey Google, news today",最近在折腾跟米家互动
    tzungtzu
        50
    tzungtzu  
       2018-05-27 10:34:05 +08:00
    @whatsmyip 我现在也是 music 为主, 连 yeelight 是不是米家要用美国或者新加坡服务器?
    whatsmyip
        51
    whatsmyip  
    OP
       2018-05-27 11:42:54 +08:00
    @tzungtzu 这个应该无所谓吧,就是延迟高点
    wzw
        52
    wzw  
       2018-06-27 07:08:50 +08:00
    @Cipool #1 140.143.226.193 这个 dns 谁做的呀
    Cipool
        53
    Cipool  
       2018-06-27 12:21:16 +08:00 via Android
    @wzw 已经注明了 tg 群组 @googlehosts 的维护者
    mattx
        54
    mattx  
       2019-09-01 15:19:26 +08:00
    @Love4Taylor 你说的 chinadns2 是 梅林科学上网工具的吧?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2769 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 14:01 · PVG 22:01 · LAX 06:01 · JFK 09:01
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.