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

2012-11-20 20:50:17 +08:00
 Cofyc
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/
12058 次点击
所在节点    DNS
16 条回复
meteor
2012-11-21 11:09:02 +08:00
我现在一直用Dnscrypt-proxy.但是好像用443端口有问题,老是被GFW屏蔽.
然后改成了53端口,情况好些.
Cofyc
2012-11-21 11:23:17 +08:00
opendns 有开放 53/443 两端口。

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

不过使用 dnscrypt-proxy 我没遇到任何问题,你能重复被屏蔽的情况吗?
jiaoyang2008
2012-11-25 11:30:13 +08:00
在ubuntu上make时出错 ,提示 undefined reference to `clock_gettime'
Cofyc
2012-11-25 12:59:01 +08:00
@jiaoyang2008 最新版本已经修复
jiaoyang2008
2012-11-25 22:26:28 +08:00
谢谢!
meteor
2012-11-26 10:42:28 +08:00
@Cofyc 就是不能dig.
我看了dnscrypt-proxy的log,老是在重启进程.
ivenvd
2012-11-26 11:00:13 +08:00
配合 pdnsd 什么的就可以达到这效果吧……
Cofyc
2012-11-26 12:53:33 +08:00
@meteor log 发我看一下,以及 dnscrypt-wrapper 和 dnscrypt-proxy 启动命令
meteor
2012-11-26 23:54:12 +08:00
@Cofyc dnscrypt-wrapper这个我没用。
我只用了dnscrypt-proxy
meteor
2012-11-27 00:06:15 +08:00
log没有打时间戳。只能大致看下。
http://paste.ubuntu.org.cn/157464
还有就是我这几天老是在刷路由器,改设置之类的。网络不是太稳定。老是拔网线之类的。
Cofyc
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
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
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
2012-11-30 17:03:22 +08:00
@Cofyc 我就是从443端口转到53的.
不过,现在OpenDNS丢包越来越厉害了.有被屏蔽的可能性.
zhfish
2013-07-02 14:58:36 +08:00
赞~
Khlieb
2016-10-28 23:08:05 +08:00
@meteor 您不妨去 dnscrypt 官网下载 dnscrypt-resolvers.csv 研究下

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/52891

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX