V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
爱意满满的作品展示区。
muziling

让 dnsmasq 支持 chnroute 策略

  •  
  •   muziling · Aug 22, 2018 · 8006 views
    This topic created in 2807 days ago, the information mentioned may be changed or developed.
    https://github.com/muziling/dnsmasq-chnroute

    配置举例:
    no-resolv
    all-servers
    server=114.114.114.114,0
    server=8.8.8.8,1
    chnroute-file=/root/chnroute.txt

    让 dnsmasq 发送 DNS 请求到所有 dns,dns ip 后面逗号 0 表示被污染不可信,1 表示干净的。
    如果不可信的 DNS 解析到 IP 为在 chnroute.txt 里,则接受,否则抛弃
    如果可信的 DNS 解析到 IP 为在 chnroute.txt 里,则抛弃,否则接受

    这样可以保证访问国内网站不会跑到国外去。

    补充一下:补丁是基于 2.79 版本
    Supplement 1  ·  Aug 24, 2018
    google 有些域名会解析到国内 IP,还是需要对这些域名进行指定。要不 手机上的 google play 用不了
    Supplement 2  ·  Aug 31, 2018
    services.googleapis.cn 这个地址走 8.8.8.8 解析就可以使用 google play,要不解析到 google 的国内服务器,安卓的 google play 就会提示检索失败
    20 replies    2019-02-15 08:58:40 +08:00
    weyou
        1
    weyou  
       Aug 22, 2018 via Android
    为什么不用 ChinaDNS ?
    TheKiller
        2
    TheKiller  
       Aug 22, 2018
    muziling
        3
    muziling  
    OP
       Aug 23, 2018
    @weyou ChinaDNS 不稳定,当时有人在 issue 还是论坛里发过贴,就是进程在,但 chinadns 没响应, 我自己也碰到过问题。


    @TheKiller 印象几年前试过,实在是不会配置,不知道配置方法有没有简单点了。 我个人还是喜欢简单点,就行,一个 DNS 方案,两个程序就搞定,通过 s-s tunnel 转发 8.8.8.8,然后 dnsmasq 指定下就好了, 不需要 gfwlist。
    gfwlist 偶尔总是会碰上个别域名被墙,但不在列表里。比如 VPS 在枫叶国, 浏览器默认打开的是 google.ca ,这个地址就不在列表里。
    missdeer
        4
    missdeer  
       Aug 23, 2018
    这策略有问题吧,好像现在有的污染 IP 是国内 IP
    EricInBj
        5
    EricInBj  
       Aug 23, 2018
    @muziling 访问一下 https://google.com/ncr 后面加个 ncr 就不会往 google.ca 跳转了
    muziling
        6
    muziling  
    OP
       Aug 23, 2018
    @missdeer 暂时没碰到,不知道有哪些?


    @EricInBj 有时直接在 chrome 地址栏输入要搜索的内容, 每次要先输入 google.com/ncr 再搜索,总是多了一步。
    还有 privoxy.org 之类的也是墙的,不知道是不是我的列表太旧了,这个也不在里面。 不想每次访问不了都去检查列表。
    TheKiller
        7
    TheKiller  
       Aug 23, 2018
    @muziling ChinaDNS 那个问题我没有遇见过 所以不好说

    Pcap_DNSProxy 配置上内容相对多点 但大部分用默认配置就行了 用下来效果很不错 占用现在控制的也很好
    Actrace
        8
    Actrace  
       Aug 23, 2018
    这样这个 dnsmasq 只能在国内运行了。。如果想放在海外机器上运行,正好需要一个相反的规则设定。
    muziling
        9
    muziling  
    OP
       Aug 23, 2018
    @Actrace 具体是需要什么样的效果,举个例子?
    Kobayashi
        10
    Kobayashi  
       Aug 23, 2018 via Android
    麻烦稍微详细解释一下,针对不可信 DNS 和可信 DNS 判断的优先级,如果不可信 DNS 返回了国内 IP 且可信 DNS 返回了国外 IP,这种情况怎么处理?

    另外,不应该同时对不可信、可信 DNS 返回的结果进行判断,这相当于开启了 ChinaDNS 的双向过滤。而关于双向过滤,ChinaDNS 作者曾经说过,是给特殊网络情况的人用的,不要开启。
    Actrace
        11
    Actrace  
       Aug 23, 2018
    @muziling
    举个粒子 www.baidu.com
    设置不信任 DNS 114.114.114.114
    信任 DNS 8.8.8.8

    那么用 不信任 DNS 解析时,会返回一个北京的 IP (假设),接受。
    用信任 DNS 时,返回一个香港的 IP (假设),不接受。

    是不是这样的设计?
    muziling
        12
    muziling  
    OP
       Aug 23, 2018
    @Kobayashi
    “如果不可信 DNS 返回了国内 IP 且可信 DNS 返回了国外 IP,这种情况怎么处理?”
    ==>这种情况就是 dnsmasq 自己的 all-servers 机制了,谁响应快,就用谁的。这样看
    的确存在问题,如果可信 DNS 速度比不可信 DNS 快,就会解析到国外 IP,丢失部分网站有国内 IP 的 CDN 加速了。
    有机会再完善下。

    按 dnsmasq 默认机制,应该不存在双向过滤的情况。
    muziling
        13
    muziling  
    OP
       Aug 23, 2018
    @Actrace #11
    看香港 IP 有没有在 chnroute 里,有的话,不接受,没有的话,接受

    dnsmasq 自带的规则 ,哪个 DNS 返回速度快,就用哪个
    不知道 --strict-order 这个参数可不可以限制一下。
    xaxb
        14
    xaxb  
       Aug 23, 2018 via iPhone
    没用的 ,dns 改成多少都没用,了解下旁路抢答 路由牵引
    muziling
        15
    muziling  
    OP
       Aug 23, 2018
    @sunweiqiang8 #14 8.8.8.8 是假设可以无污染抵达,比如通过 VPN 走 8.8.8.8,或者用 ss-tunnel 转发成本地 127.0.0.1#5353 也是可以的。

    目前自己在用,效果达到预期,虽然有上面提到的问题,但目前运营商的 DNS 速度肯定比 8.8.8.8 来的快。
    xaxb
        16
    xaxb  
       Aug 24, 2018 via iPhone
    可以在 8.8.8.8 后加 dnsmasq 强制最大缓存时间 效果更好
    has
        17
    has  
       Dec 31, 2018
    看到你在恩山的介绍,这个 openwrt 上面有有 dnsmasq 和 dnsmasq-full 两个版本。你做的 patch 能够同时兼容吗?
    muziling
        18
    muziling  
    OP
       Feb 12, 2019
    @has 好久没上 V2EX 了,openwrt 上的两个版本差距只是一些不常用的功能不编译,比如非 full 版本,好像没有 ipset 功能。 修改的代码没有在 if define 段落里,应该都可以用,可以试一下。

    自己一直在用,效果非常满意。
    has
        19
    has  
       Feb 12, 2019
    @muziling #18 我推送一个 PR 吧
    muziling
        20
    muziling  
    OP
       Feb 15, 2019
    @has 谢谢,合并了
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1233 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 64ms · UTC 17:39 · PVG 01:39 · LAX 10:39 · JFK 13:39
    ♥ Do have faith in what you're doing.