爱意满满的作品展示区。
zhengji

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

  •  1
     
  •   zhengji ·
    zheng-ji · Aug 22, 2015 · 7417 views
    This topic created in 3946 days ago, the information mentioned may be changed or developed.

    一个用 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 replies    2015-08-25 15:24:47 +08:00
    aspirin2d
        1
    aspirin2d  
       Aug 22, 2015 via iPhone
    超赞!回家就去 star
    invite
        2
    invite  
       Aug 22, 2015
    url=http://zheng-ji.info
    "targetip":"http://106.185.48.24",

    参数是 URL ? 这样做是怎么考虑?难道 DNS 还得看 HTTP 还是 TCP 还是 UDP ?
    zhengji
        3
    zhengji  
    OP
       Aug 22, 2015   ❤️ 1
    @invite 其实是为了获取该域名的真正 IP ,背景是这样的, http://www.zmke.com/i/8705.html
    invite
        4
    invite  
       Aug 22, 2015
    @zhengji 只看到关键字 域名、 IP ,那关 http 什么事?画蛇添足啊?
    kofj
        5
    kofj  
       Aug 22, 2015
    先关注
    ivmm
        6
    ivmm  
       Aug 22, 2015
    火钳留名,拿去玩了
    rrfeng
        7
    rrfeng  
       Aug 22, 2015
    这个首先要有超级稳定可靠的 httpDNS server
    如果没有就十分鸡肋……
    onlyice
        8
    onlyice  
       Aug 22, 2015 via iPad
    但是远程服务器解析出来的结果不一定是最优的吧?适用的场景是什么呢
    twitterpig
        9
    twitterpig  
       Aug 22, 2015 via Android
    可惜不会!!!感谢!
    zhengji
        10
    zhengji  
    OP
       Aug 22, 2015
    @onlyice 比如 a.com 因为某些原因被劫持到非预期的 IP ,我们可以在每次发起请求的时候,访问这个服务解析得到 a.com 的真正 IP
    hdcola
        11
    hdcola  
       Aug 24, 2015
    http 的加入确实多余了, dns 时只看域名,与协议无关,不过楼主做的不错,支持
    a2ex
        12
    a2ex  
       Aug 24, 2015
    甄姬
    RainSlide
        13
    RainSlide  
       Aug 25, 2015
    做 exe 吗
    一文件夹杂碎我们也要
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5546 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 59ms · UTC 05:56 · PVG 13:56 · LAX 22:56 · JFK 01:56
    ♥ Do have faith in what you're doing.