V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Cofyc
V2EX  ›  DNS

[dnscrypt]写了一个 dnscrypt 的服务器端代理 dnscrypt-wrapper

  •  
  •   Cofyc · 2012-11-20 20:50:17 +08:00 · 12011 次点击
    这是一个创建于 4388 天前的主题,其中的信息可能已经有所发展或是发生改变。
    https://github.com/Cofyc/dnscrypt-wrapper

    dnscrypt 是 opendns.com 设计的给 dns 协议加密的协议,类似 ssl 与 http 的关系。
    opendns 有实现一个客户端代理 dnscrypt-proxy,但目前以我所知只有 opendns 的 dns 服务器上有实现 dnscrypt 协议。
    dnscrypt-wrapper 是从 dnscrypt-proxy 修改而来,给任意 dns server 在服务端增加 dnscrypt 加密支持。

    适合想使用 dnscrypt 但想自架 dns 服务器的情形。

    我在自己服务器上有架设一个测试 dns,可以使用以下命令测试:

    $ sudo ./dnscrypt-proxy -a 127.0.0.1:55 --provider-name=2.dnscrypt-cert.yechengfu.com -r 106.187.34.45:53 --provider-key=4298:5F65:C295:DFAE:2BFB:20AD:5C47:F565:78EB:2404:EF83:198C:85DB:68F1:3E33:E952
    $ dig -p 55 google.com @127.0.0.1

    参考:

    - http://dnscrypt.org/
    - dnscrypt-proxy https://github.com/opendns/dnscrypt-proxy
    - http://www.opendns.com/technology/dnscrypt/
    16 条回复    2016-10-28 23:08:05 +08:00
    meteor
        1
    meteor  
       2012-11-21 11:09:02 +08:00
    我现在一直用Dnscrypt-proxy.但是好像用443端口有问题,老是被GFW屏蔽.
    然后改成了53端口,情况好些.
    Cofyc
        2
    Cofyc  
    OP
       2012-11-21 11:23:17 +08:00
    opendns 有开放 53/443 两端口。

    域名污染 GFW 只对 53 端口进行,但估计有对 443 (https) 端口有做什么特别处理吧。

    不过使用 dnscrypt-proxy 我没遇到任何问题,你能重复被屏蔽的情况吗?
    jiaoyang2008
        3
    jiaoyang2008  
       2012-11-25 11:30:13 +08:00
    在ubuntu上make时出错 ,提示 undefined reference to `clock_gettime'
    Cofyc
        4
    Cofyc  
    OP
       2012-11-25 12:59:01 +08:00
    @jiaoyang2008 最新版本已经修复
    jiaoyang2008
        5
    jiaoyang2008  
       2012-11-25 22:26:28 +08:00
    谢谢!
    meteor
        6
    meteor  
       2012-11-26 10:42:28 +08:00
    @Cofyc 就是不能dig.
    我看了dnscrypt-proxy的log,老是在重启进程.
    ivenvd
        7
    ivenvd  
       2012-11-26 11:00:13 +08:00
    配合 pdnsd 什么的就可以达到这效果吧……
    Cofyc
        8
    Cofyc  
    OP
       2012-11-26 12:53:33 +08:00
    @meteor log 发我看一下,以及 dnscrypt-wrapper 和 dnscrypt-proxy 启动命令
    meteor
        9
    meteor  
       2012-11-26 23:54:12 +08:00
    @Cofyc dnscrypt-wrapper这个我没用。
    我只用了dnscrypt-proxy
    meteor
        10
    meteor  
       2012-11-27 00:06:15 +08:00
    log没有打时间戳。只能大致看下。
    http://paste.ubuntu.org.cn/157464
    还有就是我这几天老是在刷路由器,改设置之类的。网络不是太稳定。老是拔网线之类的。
    Cofyc
        11
    Cofyc  
    OP
       2012-11-27 00:25:21 +08:00
    @meteor 不断出现
    [INFO] Server certificate #1346958918 received
    ....
    [INFO] Proxying from 127.0.0.1:53 to 208.67.220.220:53
    这些不是重启进程,是 dnscrypt-proxy 每隔一段时间会更新证书。

    [ERROR] Unable to retrieve server certificates
    [WARNING] sendto: [Network is unreachable]
    这些表明当时访问不了 208.67.220.220:53

    dnscrypt-proxy 默认的 -r 参数是 208.67.220.220:443,你不配置 -r 选项,用默认的 443 端口看看
    Cofyc
        12
    Cofyc  
    OP
       2012-11-27 00:32:35 +08:00
    P.S. 有一个简单避免 GFW 污染的方法,使用非 53 端口请求 dns 服务器

    比如,将 208.67.220.220:443 使用 nat 转发或 nc 等工具映射到本地 127.0.0.1:53,然后系统配置 127.0.0.1 做 dns 服务器即可

    dnscrypt 做了一次加密,不仅可以避免 dns 被污染,也可以防止 dns 请求被抓包
    Cofyc
        13
    Cofyc  
    OP
       2012-11-27 00:37:10 +08:00
    @ivenvd pdnsd 我看了下是因为支持 dnssec?

    我有用一个在本地架设支持 dnssec 的 dns 服务器的工具 dnssec-trigger (http://www.nlnetlabs.nl/projects/dnssec-trigger/),但不能完全避免 dns 污染

    可能我配置的不对,不懂 dnssec原理
    meteor
        14
    meteor  
       2012-11-30 17:03:22 +08:00
    @Cofyc 我就是从443端口转到53的.
    不过,现在OpenDNS丢包越来越厉害了.有被屏蔽的可能性.
    zhfish
        15
    zhfish  
       2013-07-02 14:58:36 +08:00
    赞~
    Khlieb
        16
    Khlieb  
       2016-10-28 23:08:05 +08:00 via Android
    @meteor 您不妨去 dnscrypt 官网下载 dnscrypt-resolvers.csv 研究下
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1331 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 17:41 · PVG 01:41 · LAX 09:41 · JFK 12:41
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.