anchorDNS,彻底解决 CHNRoutes 分流国内网站时 DNS 问题的一个本地 DNS Server (Java) - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
tobyxdd
V2EX    分享创造

anchorDNS,彻底解决 CHNRoutes 分流国内网站时 DNS 问题的一个本地 DNS Server (Java)

  •  1
     
  •   tobyxdd
    tobyxdd 2015 年 7 月 19 日 10308 次点击
    这是一个创建于 3838 天前的主题,其中的信息可能已经有所发展或是发生改变。

    Github - https://github.com/tobyxdd/anchorDNS

    懒得写所以下面内容直接复制README了... :)

    anchorDNS

    anchorDNS 是一个运行在本地的分流DNS服务器

    这能干啥?

    众所周知的 CHNRoutes 项目能够修改系统路由表使拨VPN后 中国IP依然直接连接,仅国外连接通过VPN以防止国内网站也通过VPN绕行。然而为了解决DNS污染,一般会让DNS解析全部走VPN到国外DNS服务器,因此上了CDN或有国外服务器的中国网站 依然会解析到国外或国内非最佳服务器降低访问速度。

    anchorDNS 正是为解决此问题而设计,通过先从国内DNS解析域名,若发现是中国IP则直接返回结果,若非中国IP则改用境外DNS解析的方法 能够既完全保持国内网站的解析正确 又获得无污染的境外网站DNS查询结果。用户只需分别提供一个自己喜欢的国内DNS与国外DNS地址,与一个中国IP段的CIDR表(已自带)

    另附"reverse"反模式,解释见下文

    示例
    解析 www.baidu.com -> 查询114.114.114.114 -> 发现是中国IP -> 直接使用
    解析 twitter.com -> 查询114.114.114.114 -> 发现非中国IP -> 抛弃结果查询8.8.8.8 -> 使用正确无污染结果

    使用姿势

    去 Release 下载最新版,解压后bin目录下 带参数运行 anchorDNS

    参数详解

    usage: anchorDNS -a,--alternativeDNS <arg> Specify the alternative DNS server. -c,--cidr <arg> Specify the CIDR list. -d,--defaultDNS <arg> Specify the default DNS server. -h,--help Show this help message. -r,--reverse Check the alternative DNS first. -a 指定国外DNS服务器 -d 指定国内DNS服务器 -c 指定中国IP CIDR表(可用本项目下的 **ChinaCIDR.txt** 或 [此处下载最新版][3]) -r 反模式:优先查询国外DNS 发现中国IP后再改用国内DNS **(不建议使用!)** 

    比如: anchorDNS -d 114.114.114.114 -a 8.8.8.8 -c ChinaCIDR.txt

    然后设置机器的DNS服务器为 127.0.0.1 !

    技术细节

    使用 Netty 5.0 / dnsjava 处理DNS通信,Gradle构建,JDK1.6+

    12 条回复    2016-09-02 20:14:20 +08:00
    tux
        1
    tux  
       2015 年 7 月 20 日
    finally
    Daniel65536
        2
    Daniel65536  
       2015 年 7 月 20 日 via iPhone
    解析 twitter.com -> 查询114.114.114.114 -> 返回的随机fake ip恰好是国内的 怎么解决?
    另外居然不同时请求国内国外,会拖慢速度的。
    tobyxdd
        3
    tobyxdd  
    OP
       2015 年 7 月 20 日 via Android
    @Daniel65536 fake ip不可能是国内的 不过确实应该同时请求国内外dns 之后版本改进
    dopcn
        4
    dopcn  
       2015 年 7 月 20 日
    “彻底解决 CHNRoutes 分流国内网站时 DNS 问题” 是指解决chnroutes 私有地址无法解析?
    jiangzhizhou
        5
    jiangzhizhou  
       2015 年 7 月 20 日
    可以跑在openwrt上么?目前发现有污染就是路由器ss才出现,直接Pac ss一般都没有发现dns污染。
    tobyxdd
        6
    tobyxdd  
    OP
       2015 年 7 月 20 日 via Android
    @dopcn 用chnroutes也会dns走vpn导致国内网站解析到国外节点 解决这问题的
    tobyxdd
        7
    tobyxdd  
    OP
       2015 年 7 月 20 日 via Android
    @jiangzhizhou 如果你能在wrt上跑java的话。。。
    plqws
        8
    plqws  
       2015 年 7 月 20 日
    @jiangzhizhou 有一种曲线救国的方法,就是把路由器的DNS设置成你的内网IP,然后在你的PC上跑这个DNS服务器。
    有个疑问就是路由器DNS充当的角色有点不明白。@tobyxdd
    tobyxdd
        9
    tobyxdd  
    OP
       2015 年 7 月 20 日
    @plqws 有些自带dns服务的路由默认会把dhcp clients的dns设成路由自己 走的是路由的解析
    21grams
        10
    21grams  
       2015 年 7 月 20 日
    这不就跟chinadns是一样的嘛
    qucklay
        11
    qucklay  
       2015 年 7 月 20 日
    能说出和ChinaDNS的区别吗
    kathylincn
        12
    kathylincn  
       2016 年 9 月 2 日
    可以增加不只设置 IP 。也可以设置端口吗?比如 114.114.114.114:53 或 202.48.72.85:443 之类的.因为有的 DNS 不是默认的 53 端口,带端口的话,程序不认。现在只能本程序设置端口,DNS 不能指定端口。很大程序上限制了自定义 SS
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     967 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 19:54 PVG 03:54 LAX 11:54 JFK 14:54
    Do have faith in what you're doing.
    ubao msn 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