Go 写的 HttpDns 服务,抵抗运营商邪恶的 DNS 劫持污染,并带有缓存功能 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
zhengji
V2EX    分享创造

Go 写的 HttpDns 服务,抵抗运营商邪恶的 DNS 劫持污染,并带有缓存功能

  •  1
     
  •   zhengji
    zheng-ji 2015-08-22 13:20:54 +08:00 7129 次点击
    这是一个创建于 3787 天前的主题,其中的信息可能已经有所发展或是发生改变。

    一个用 Go 写的 HttpDns 服务, 为了抵抗运营商邪恶的 DNS 劫持污染,并带有缓存功能 。

    如何编译

    cd $GOPATH; git clone http://github.com/zheng-ji/goHttpDns; cd src; make 

    如何配置

    # redis connect config redis: host: 127.0.0.1:6379 db: 0 # seelog config log_config: ../etc/logger.xml # ip & port & answer cache TTL listen: 0.0.0.0 port: 9999 ttl: 100 # DnsServer lists dnsservers: - 202.96.128.86 - 202.96.128.166 - 8.8.8.8 - 8.8.4.4 

    如何运行

    执行 make操作后,在bin目录下就会生成 可执行文件 httpDns

    zj@zheng-ji:$ ./httpDns --help Usage of ./httpDns: -c="../etc/conf.yml": conf file , default is ../etc/conf.yml ./httpDns -c="your_conf_yaml_path" You can also use supervisor to start your sever 

    如何使用

    $ curl http://127.0.0.1:9999/d?url=http://zheng-ji.info Resp: { "c":0, "targetip":"http://106.185.48.24", "host":"zheng-ji.info", "msg":"" } 

    第三方依赖包

    Thanks to:

    * [launchpad/goyaml]( https://launchpad.net/goyaml ) * [cihub/seelog](github.com/cihub/seelog ) * [miekg/dns](github.com/miekg/dns ) * [redisgo/redis](github.com/garyburd/redigo/redis") * [hoisie/web](github.com/hoisie/web ) 

    我们需要go get 以上包

    13 条回复    2015-08-25 15:24:47 +08:00
    aspirin2d
        1
    aspirin2d  
       2015-08-22 14:15:17 +08:00 via iPhone
    超赞!回家就去 star
    invite
        2
    invite  
       2015-08-22 16:56:04 +08:00
    url=http://zheng-ji.info
    "targetip":"http://106.185.48.24",

    参数是 URL ? 这样做是怎么考虑?难道 DNS 还得看 HTTP 还是 TCP 还是 UDP ?
    zhengji
        3
    zhengji  
    OP
       2015-08-22 17:50:01 +08:00   1
    @invite 其实是为了获取该域名的真正 IP ,背景是这样的, http://www.zmke.com/i/8705.html
    invite
        4
    invite  
       2015-08-22 18:53:08 +08:00
    @zhengji 只看到关键字 域名、 IP ,那关 http 什么事?画蛇添足啊?
    kofj
        5
    kofj  
       2015-08-22 18:55:53 +08:00
    先关注
    ivmm
        6
    ivmm  
       2015-08-22 19:00:34 +08:00
    火钳留名,拿去玩了
    rrfeng
        7
    rrfeng  
       2015-08-22 19:39:45 +08:00
    这个首先要有超级稳定可靠的 httpDNS server
    如果没有就十分鸡肋……
    onlyice
        8
    onlyice  
       2015-08-22 22:52:33 +08:00 via iPad
    但是远程服务器解析出来的结果不一定是最优的吧?适用的场景是什么呢
    twitterpig
        9
    twitterpig  
       2015-08-22 23:19:15 +08:00 via Android
    可惜不会!!!感谢!
    zhengji
        10
    zhengji  
    OP
       2015-08-22 23:47:51 +08:00
    @onlyice 比如 a.com 因为某些原因被劫持到非预期的 IP ,我们可以在每次发起请求的时候,访问这个服务解析得到 a.com 的真正 IP
    hdcola
        11
    hdcola  
       2015-08-24 08:03:14 +08:00
    http 的加入确实多余了, dns 时只看域名,与协议无关,不过楼主做的不错,支持
    a2ex
        12
    a2ex  
       2015-08-24 15:38:30 +08:00
    甄姬
    RainSlide
        13
    RainSlide  
       2015-08-25 15:24:47 +08:00
    做 exe 吗
    一文件夹杂碎我们也要
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2520 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 10:06 PVG 18:06 LAX 02:06 JFK 05:06
    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