有没有能够实现 dns 查询转 httpdns 查询的程序? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
bingal
V2EX    DNS

有没有能够实现 dns 查询转 httpdns 查询的程序?

  •  
  •   bingal 2016-01-14 08:54:20 +08:00 4884 次点击
    这是一个创建于 3586 天前的主题,其中的信息可能已经有所发展或是发生改变。

    现在 dnspod 和阿里都推出了 httpdns 解析服务,简单说就是通过 http 请求的方式来获取 dns 的解析结果,可以提供加密方式查询,而且是基于 80 端口,好处还是很明显的。目前适用场景主要是用于 app 等完全可自己写代码实现网络请求的情况,从而避免被劫持。

    我在想日常使用的时候,是否有什么方案,可以本地架设一个 dns 服务,但是实际上把 dns 查询转换成加密的 http 请求,去 dnspod 或者阿里的 httpdns 服务查询,查询到结果之后再以正常 dns 响应返回。

    17 条回复    2016-01-23 15:22:30 +08:00
    fangdingjun
        1
    fangdingjun  
       2016-01-14 09:08:40 +08:00
    自己写吧,使用 golang 半个小时就能实现这个需求
    tdifg
        2
    tdifg  
       2016-01-14 09:51:52 +08:00
    链接量不大的话还是很简单的
    思路不错,以后做一个
    MiguelValentine
        3
    MiguelValentine  
       2016-01-14 11:35:29 +08:00
    ttl 上去了。。哪怕是 30ms 都是很难受的。
    MiguelValentine
        4
    MiguelValentine  
       2016-01-14 11:36:19 +08:00
    写错了。。不应该叫 ttl 不要纠结细节
    paw
        5
    paw  
       2016-01-14 12:47:01 +08:00
    个人使用不考虑性能的话 太简单了
    楼主想法我用 python 做过,客户端+服务端总计不到 50 行代码
    Strikeactor
        6
    Strikeactor  
       2016-01-14 13:02:35 +08:00
    不做缓存绝对会卡哭
    bingal
        7
    bingal  
    OP
       2016-01-15 11:28:10 +08:00
    @paw 有代码分享一个吗?或者给个思路?对性能要求不高,就是想平时自己用。
    bingal
        8
    bingal  
    OP
       2016-01-15 11:29:24 +08:00
    @Strikeactor 跟缓存本身并不冲突,完全可以考虑把 httpdns 查询到到结果缓存到本地,必要可以增加 ttl 的值
    bingal
        9
    bingal  
    OP
       2016-01-15 11:30:22 +08:00
    @fangdingjun 有没有例子?很想学习下。或者具体的思路。如果实现了,开源出来。
    bingal
        10
    bingal  
    OP
       2016-01-15 11:31:07 +08:00
    @MiguelValentine 如果本地把查询结果缓存下来,主动增加 ttl ,应该也 ok 吧?
    fangdingjun
        11
    fangdingjun  
       2016-01-15 12:54:42 +08:00   1
    思路很简单, 接收 dns 请求,然后转成 http 请求,把 http 的结果转成 dns 格式发回客户端

    这里是一个 golang 的简单例子
    https://gist.github.com/fangdingjun/d8c0679ffeddd21b7821
    bingal
        12
    bingal  
    OP
       2016-01-16 16:13:37 +08:00
    @fangdingjun 太感谢了,研究下
    Lentin
        13
    Lentin  
       2016-01-20 10:49:12 +08:00   2
    bingal
        14
    bingal  
    OP
       2016-01-20 15:27:11 +08:00
    @Lentin 好项目,收藏先
    suikator
        15
    suikator  
       2016-01-22 17:22:27 +08:00 via Android
    @Lentin 已 start
    Lentin
        16
    Lentin  
       2016-01-23 15:21:16 +08:00
    @suikator 这个不是我写的 orz
    Lentin
        17
    Lentin  
       2016-01-23 15:22:30 +08:00
    @bingal
    @suikator
    还有一个老外改进了这个程序
    https://github.com/fantuz/DNSProxy
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1279 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 17:21 PVG 01:21 LAX 09:21 JFK 12:21
    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