正如SSL能将HTTP通信变为加密过的HTTPS通信,DNSCrypt, 物如其名, 是一款能加密您电脑与OpenDNS之间的通信的小神器。

DNSCrypt刚问世的时候,官方公布它只是一款Mac才能用的工具,但根据最近一篇由OpenDNS发的文章表明,虽然还没有用户界面,但其实当Mac版DNSCrypt推出的时候源码已经放到了Github上了, Linux的用户也可以安装以及使用哦!(LCTT译注:目前已经有DNSCrypt WinClientDNSCrypt Windows Service ManagerDNSCrypt OSXClientDNSCrypt Tools for Linux 等第三方图形界面客户端出现。)

为神马要使用 DNSCrypt?

DNSCrypt可以加密您电脑与OpenDNS服务器的所有通信,加密可以防止中间人攻击,信息窥觑,DNS劫持。更能防止网络供应商对某些网站的封锁。

这是世界上第一款加密DNS通信的工具,虽然TOR可以加密DNS的请求,但毕竟它们只是在出口节点加密而已。

这款工具并不需要对域名或其工作方式做任何的改变,它只是提供了个该工具的用户与机房里的DNS服务器之间的加密方式而已。

您可以在GitHubOpenDNS DNSCrypt页面阅读更多的相关信息。

如何在Linux使用DNSCrypt

首先下载安装DNSCrypt (LCTT译注,安装过程不详述,请参照官网描述), 然后在Terminal里输入这个命令:

sudo /usr/sbin/dnscrypt-proxy --daemonize

然后把您的DNS服务器调成"127.0.0.1" - 在GNOME界面下的话,只要到Network Connections(网络连接)选项然后选择"Edit"并在"DNS servers"输入"127.0.0.1"就好了。如果您用的是DHCP的话,请选择Automatic (DHCP) addresses only", 这样的话才能输入DNS服务器。然后只要重连网络便可。

您可以访问这条链接来测试您连接到了OpenDNS了没。

如果您想设置开机启动DNSCrypt,可以自建一个init的脚本,如果您用的是Ubuntu,可以参考下面的。

Arch Linux的用户可以通过AUR来安装DNSCrypt-proxy (内含rc.d脚本)

Ubuntu下的DNSCrypt

如果您想在Ubuntu设置开机启动,您可以使用这个Upstart脚本

注: 在Ubuntu 12.04版在127.0.0.1有个本地的DNS cache 服务器(dnsmasq)在跑,所以已经把改脚本改成让DNSCrypt使用127.0.0.2了, 所以按照上面的教程,应该把127.0.0.1换成127.0.0.2了。

要安装此脚本请使用以下的指令(要首先解压下下来的压缩文件):

sudo cp dnscrypt.conf /etc/init/
sudo ln -s /lib/init/upstart-job /etc/init.d/dnscrypt

然后用这个指令来启动:

sudo start dnscrypt

现在DNSCrypt就应该是开机自启了,如果您想停止的话,可以使用:

sudo stop dnscrypt

下载DNSCrypt (.deb、 .rpm以及源码都可供下载哦!)


via: http://www.webupd8.org/2012/02/encrypt-dns-traffic-in-linux-with.html

译者:213edu 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

已有 22 条评论

  1. 虽然解决了dns被劫持、污染的问题,但却产生了容易被追踪的问题。这个软件与服务器通讯会发送一个身份验证的key,通过这个key就可以识别、锁定你,即使你更换了ip,甚至使用了vpn、隧道、代理。这个key是不变且唯一的,服务器始终知道是你。而且知道你一直在访问哪些网站。 —— 来自 - 广东深圳 的 Firefox/Windows 用户 发表。
  2. 这是才出狼窝,又入虎穴么?:> —— linux 发表。

添加新评论