文档章节

如何在 Arch Linux 中安装 DNSCrypt 和 Unbound

 酱醋茶丶
发布于 2015/10/15 09:49
字数 1308
阅读 36
收藏 1

DNSCrypt 是一个用于对 DNS 客户端和 DNS 解析器之间通信进行加密和验证的协议。它可以阻止 DNS 欺骗或中间人攻击。 DNSCrypt 可用于大多数的操作系统,包括 Linux,Windows,MacOSX ,Android 和 iOS。而在本教程中我使用的是内核为4.1的 archlinux。

Unbound 是用来解析收到的任意 DNS 查询的 DNS 缓存服务器。如果用户请求一个新的查询,unbound 会将其存储到缓存中,并且当用户再次请求相同的请求时,unbound 将采用已经保存的缓存。这将比第一次请求查询更快。

现在我将尝试安装“DNSCrypt”,以确保 DNS 的通信的安全,并用“Unbound”加速。

 

第一步 - 安装 yaourt

Yaourt 是AUR(ARCH 用户仓库)的辅助工具之一,它可以使用户能够很容易地从 AUR 安装程序。 Yaourt 和 pacman 使用相同的语法,你可以使用 yaourt 安装该程序。下面是安装 yaourt 的简单方法:

1、 用 nano 或者 vi 编辑 arch 仓库配置文件,存放在“/etc/pacman.conf”中。

$ nano /etc/pacman.conf

2、 在 yaourt 仓库底部添加,粘贴下面的脚本:

[archlinuxfr]

SigLevel = Never

Server = http://repo.archlinux.fr/$arch

3、 用“Ctrl + x”,接着用“Y”保存。

4、 接着升级仓库数据库并用pacman安装yaourt:

$ sudo pacman -Sy yaourt

 

第二步 - 安装 DNSCrypt 和 Unbound

DNSCrypt 和 unbound 就在 archlinux 仓库中,你可以用下面的 pacman 命令安装:

$ sudo pacman -S dnscrypt-proxy unbound

接着在安装的过程中按下“Y”。

 

第三步 - 安装 dnscrypt-autoinstall

Dnscrypt-autoinstall 是一个在基于 Linux 的系统上自动安装和配置 DNSCrypt 的脚本。DNSCrypt 在 AUR 中,因此你必须使用“yaourt”命令来安装它。

$ yaourt -S dnscrypt-autoinstall

注意 :

-S = 这和 pacman -S 安装程序一样。

 

第四步 - 运行 dnscrypt-autoinstall

用 root 权限运行“dnscrypt-autoinstall”来自动配置 DNSCrypt。

$ sudo dnscrypt-autoinstall

下一步中按下“回车”,接着输入"Y"来选择你想使用的 DNS 提供者,我这里使用不带日志和 DNSSEC 的 DNSCrypt.eu。

 

第五步 - 配置 DNSCrypt 和 Unbound

1、 打开 dnscrypt 的“/etc/conf.d/dnscrypt-config” ,确认配置文件中“DNSCRYPTLOCALIP”指向本地ip,“DNSCRYPTLOCALPORT”根据你本人的意愿配置,我是用的是40端口。

$ nano /etc/conf.d/dnscrypt-config

DNSCRYPT_LOCALIP=127.0.0.1

DNSCRYPT_LOCALIP2=127.0.0.2

DNSCRYPT_LOCALPORT=40

 

保存并退出。

 

2、 现在你用 nano 编辑器编辑“/etc/unbound/”下 unbound 的配置文件:

$ nano /etc/unbound/unbound.conf

 

3、 在脚本最后添加下面的行:

do-not-query-localhost: no

forward-zone:

name: "."

forward-addr: 127.0.0.1@40

确保forward-addr和DNSCrypt中的“DNSCRYPT_LOCALPORT”一致。如你所见,用的是40端口。

接着保存并退出。

 

第六步 - 运行 DNSCrypt 和 Unbound,接着添加到开机启动中

请用 root 权限运行 DNSCrypt 和 unbound,你可以用 systemctl 命令来运行:

$ sudo systemctl start dnscrypt-proxy unbound

将服务添加到启动中。你可以运行“systemctl enable”:

$ sudo systemctl enable dnscrypt-proxy unbound

命令将会创建软链接到“/usr/lib/systemd/system/”目录的服务。

 

第七步 - 配置 resolv.conf 并重启所有服务

resolv.conf 是一个在 linux 中用于配置 DNS 解析器的文件。它是一个由管理员创建的纯文本,因此你必须用 root 权限编辑并让它不能被其他人修改。

用 nano 编辑器编辑:

$ nano /etc/resolv.conf

并添加本地IP “127.0.0.1”。现在用“chattr”命令使他只读:

$ chattr +i /etc/resolv.conf

注意:

如果你想要重新编辑,用“chattr -i /etc/resolv.conf”加入写权限。

现在你需要重启 DNSCrypt 和 unbound 和网络;

$ sudo systemctl restart dnscrypt-proxy unbound netctl

如果你看到错误,检查配置文件。

 

测试

1、 测试 DNSCrypt

 

你可以通过 dnsleaktest来确认 DNSCrypt,点击“标准测试”或者“扩展测试”,然后等待程序运行结束。

现在你可以看到 DNSCrypt.eu 就已经与作为 DNS 提供商的 DNSCrypt 协同工作了。

 

Testing DNSCrypt

Testing DNSCrypt

 

2、 测试 Unbound

现在你应该确保 unbound 可以正确地与“dig”和“drill”命令一起工作。

这是 dig 命令的结果:

$ dig linoxide.com

我们现在看下结果,“Query time”是“533 msec”:

;; Query time: 533 msec

;; SERVER: 127.0.0.1#53(127.0.0.1)

;; WHEN: Sun Aug 30 14:48:19 WIB 2015

;; MSG SIZE rcvd: 188

再次输入命令,我们看到“Query time”是“0 msec”。

;; Query time: 0 msec

;; SERVER: 127.0.0.1#53(127.0.0.1)

;; WHEN: Sun Aug 30 14:51:05 WIB 2015

;; MSG SIZE rcvd: 188

Unbound Test

Unbound Test

DNSCrypt 对 DNS 客户端和解析端之间的通讯加密做的很好,并且 Unbound 通过缓存让相同的请求在另一次请求同速度更快。

 

总结

DNSCrypt 是一个可以加密 DNS 客户端和 DNS 解析器之间的数据流的协议。 DNSCrypt 可以在不同的操作系统上运行,无论是移动端或桌面端。选择 DNS 提供商还包括一些重要的事情,应选择那些提供 DNSSEC 同时没有日志的。Unbound 可被用作 DNS 缓存,从而加快解析过程,因为 Unbound 将请求缓存,那么接下来客户端请求相同的查询时,unbound 将从缓存中取出保存的值。 DNSCrypt 和 Unbound 是针对安全性和速度的一个强大的组合。

免费领取兄弟连IT教育原创linux运维工程师视频/细说linux教程,详情咨询官网客服:http://www.lampbrother.net/linux/

或者勾搭Q2430675018

欢迎加入linux交流群 478068715

 


© 著作权归作者所有

共有 人打赏支持
粉丝 9
博文 71
码字总数 90588
作品 0
昌平
Windows 下自动化更新 hosts

本文同步至 鉴于国内的网络环境,有时候,我们需要修改 hosts 文件来实现访问国外著名网站的目的(翻墙)。本文介绍了在 Windows 下自动化更新 hosts 方法。 hosts 简介 有关 hosts 的作用和...

waylau
2015/11/21
0
0
使用 Google Gmail 邮箱服务

原文同步至 总所周知,Google 的大部分服务在华已经被墙,其中也包括 Gmail 。为了收取 Gmail 的邮件,也是要进行一番折腾的。当然,你可以施展各种翻墙技能(文章最后会提供一堆的翻墙方法)...

waylau
2015/02/27
0
0
用 Azure RemoteApp 翻墙科学上网

原文同步至:http://www.waylau.com/about-azure-remoteapp/ 注册 微软账号 下载、安装 Azure RemoteApp 客户端 根据你的系统进行如下选型 Microsoft Remote Desktop for Mac Microsoft Rem...

waylau
2015/02/08
0
4
使用DNSCrypt来加密您与OpenDNS之间的通信

正如SSL能将HTTP通信变为加密过的HTTPS通信,DNSCrypt, 物如其名, 是一款能加密您电脑与OpenDNS之间的通信的小神器。 DNSCrypt刚问世的时候,官方公布它只是一款Mac才能用的工具,但根据最近...

oschina
2014/06/23
3.7K
17
在 Arch Linux 中给软件包降级

导读 正如你了解的,Arch Linux 是一个滚动版本和 DIY(自己动手)发行版。因此,在经常更新时必须小心,特别是从 AUR 等第三方存储库安装或更新软件包。如果你不知道自己在做什么,那么最终...

问题终结者
06/11
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Spring详解

Spring详解(一)------概述 目录 1、什么是 Spring ? 2、Spring 起源 3、Spring 特点 4、Spring 框架结构 5、Spring 框架特征 6、Spring 优点   本系列教程我们将对 Spring 进行详解的介绍...

DemonsI
13分钟前
0
0
CentOS7系统Nginx安装

1、下载nginx,官方网站https://nginx.org wget https://nginx.org/download/nginx-1.14.0.tar.gz 2、下载Nginx Sticky Module,官方网站https://bitbucket.org/nginx-goodies/nginx-sticky-......

m_lm
16分钟前
0
0
使用zTree树控件(二)

1:treeNode.checked用于判断是勾选还是取消勾选。(treeNode指的是节点)

uug
17分钟前
0
0
export, import 和 export default的区别

ES6的两个功能: export 和 import export 对外输出模块 import 引入(加载)进来一个模块 一、export => import 单个变量 export var name = "lishi" 在其他文件里引用 import {name} f...

Js_Mei
21分钟前
1
0
打造RecyclerView的n级列表

先上效果图: 1.该多级列表的优势: 支持无限级列表展开 基于一个recyclerView实现 可以自定义每一级item的样式,定制化更强 2.设计的思路 数据结构List<ItemBean>,ItemBean类中有变量List<...

WelliJohn
31分钟前
1
1

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部