如何在 Arch Linux 中安装 DNSCrypt 和 Unbound

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”中。


  1. $ nano /etc/pacman.conf

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


  1. [archlinuxfr]
  2. SigLevel = Never
  3. Server = http://repo.archlinux.fr/$arch

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

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


  1. $ sudo pacman -Sy yaourt

第二步 - 安装 DNSCrypt 和 Unbound

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


  1. $ sudo pacman -S dnscrypt-proxy unbound

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

第三步 - 安装 dnscrypt-autoinstall

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


  1. $ yaourt -S dnscrypt-autoinstall

注意 :

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

第四步 - 运行 dnscrypt-autoinstall

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


  1. $ sudo dnscrypt-autoinstall

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

DNSCrypt autoinstall

第五步 - 配置 DNSCrypt 和 Unbound

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


  1. $ nano /etc/conf.d/dnscrypt-config
  2. DNSCRYPT_LOCALIP=127.0.0.1
  3. DNSCRYPT_LOCALIP2=127.0.0.2
  4. DNSCRYPT_LOCALPORT=40

DNSCrypt Configuration

保存并退出。

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


  1. $ nano /etc/unbound/unbound.conf

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


  1. do-not-query-localhost: no
  2. forward-zone:
  3. name: "."
  4. forward-addr: 127.0.0.1@40

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

Unbound Configuration

接着保存并退出。

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

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


  1. $ 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 编辑器编辑:


  1. $ nano /etc/resolv.conf

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


  1. $ chattr +i /etc/resolv.conf

注意:

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

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


  1. $ sudo systemctl restart dnscrypt-proxy unbound netctl

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

测试

1、 测试 DNSCrypt

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

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

Testing DNSCrypt

2、 测试 Unbound

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

这是 dig 命令的结果:


  1. $ dig linoxide.com

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


  1. ;; Query time: 533 msec
  2. ;; SERVER: 127.0.0.1#53(127.0.0.1)
  3. ;; WHEN: Sun Aug 30 14:48:19 WIB 2015
  4. ;; MSG SIZE rcvd: 188

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


  1. ;; Query time: 0 msec
  2. ;; SERVER: 127.0.0.1#53(127.0.0.1)
  3. ;; WHEN: Sun Aug 30 14:51:05 WIB 2015
  4. ;; MSG SIZE rcvd: 188

Unbound Test

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

总结

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

本文来自合作伙伴“Linux中国”,原文发布日期:2015-09-27

时间: 2024-09-17 19:50:39

如何在 Arch Linux 中安装 DNSCrypt 和 Unbound的相关文章

小技巧:如何在 Kali Linux 中安装 Google Chrome 浏览器

下载 Google Chrome 首先,使用 wget 命令来下载最新版本的 Google Chrome 的 debian 安装包. # wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb 安装 Google Chrome 在 Kali Linux 安装 Google Chrome 最容易的方法就是使用 gdebi,它会自动帮你下载所有的依赖包. # gdebi google-chrome-

如何在 Antergos/Arch Linux 中使用 iPhone

在Arch Linux中使用iPhone遇到麻烦了么?iPhone和Linux从来都没有很好地集成.本教程中,我会向你展示如何在Antergos Linux中使用iPhone,对于同样基于Arch的的Linux发行版如Manjaro也应该同样管用. 我最近购买了一台全新的iPhone 6S,当我连接到Antergos Linux中要拷贝一些照片时,它完全没有检测到它.我看见iPhone正在被充电并且我已经允许了iPhone"信任这台电脑",但是还是完全没有检测到.我尝试运行dmseg但

如何在Antergos/Arch Linux中使用iPhone

在Arch Linux中使用iPhone遇到麻烦了吗?iPhone和Linux从来都没有很好地集成.本教程中,我会向你展示如何在Antergos Linux中使用iPhone,对于同样基于Arch的的Linux发行版如Manjaro也应该同样管用. 我最近购买了一台全新的iPhone 6S,当我连接到Antergos Linux中要拷贝一些照片时,它完全没有检测到它.我看见iPhone正在被充电并且我已经允许了iPhone"信任这台电脑",但是还是完全没有检测到.我尝试运行dmseg但

Linux有问必答-如何在Linux中安装Go语言

Linux有问必答-如何在Linux中安装Go语言 Go (也叫 "golang")是一款由Google最初开发的编程语言.它自诞生就有几个设计原则:简单性.安全性和速度.Go语言发行版拥有各种调试.测试.调优和代码审查工具.如今Go语言和它的工具链在大多数Linux发行版的基础仓库都可用,用默认的包管理器就可以安装. 在Ubuntu.Debian 或者 Linux Mint上安装Go语言 下面是在基于Debian的发行版上使用apt-get来安装Go语言和它的开发工具. $ sudo

如何在 Linux 中安装最新的 Python 3.6 版本

在这篇文章中,我将展示如何在 CentOS/RHEL 7.Debian 以及它的衍生版本比如 Ubuntu(最新的 Ubuntu 16.04 LTS 版本已经安装了最新的 Python 版本)或 Linux Mint 上安装和使用 Python 3.x .我们的重点是安装可用于命令行的核心语言工具. 然后,我们也会阐述如何安装 Python IDLE - 一个基于 GUI 的工具,它允许我们运行 Python 代码和创建独立函数. 在 Linux 中安装 Python 3.6 在我写这篇文章的时

如何在Linux中安装最新的Thunderbird邮件客户端

雷鸟(Thunderbird)是一个开源自由的跨平台的基于 web 的电子邮件.新闻和聊天客户端应用程序,其旨在用于管理多个电子邮件帐户和新闻源. 在 2016 年 12 月 28 日,Mozilla 团队宣布 Thunderbird 45.6.0 的发布.这个新版本带有如下功能: Thunderbird 45.6.0 功能 每次启动 Thunderbird 时都会显示系统集成对话框 各种错误修复和性能改进. 各种安全修复. 查看更多关于 Thunderbird 45.6.0 版本的新功能和已知

如何在Linux中安装最新的Python 3.6版本

全球几所顶尖大学使用Python来介绍学生编程.马萨诸塞理工学院(MIT),德克萨斯大学阿灵顿分校和斯坦福大学只是使用这种语言的机构的几个例子. 此外,重要的是要注意, Python还可用于各种教育,企业和科学目的 – 从Web开发到桌面应用程序到机器学习以及其间的一切. 目前,有两个主要的Python版本正在使用 – 2和3 ,有2个快速失效的理由,因为前者不再处于积极发展. 因为所有的Linux发行版都安装了Python 2.x. 建议阅读: Linux中Python编程和脚本入门 – 第1

如何在Linux中安装JDK?

在Linux中安装JDK,过程如下: 1. 先从网上下载jdk,下载后放在/home目录中,当然其它地方也行. 进入安装目录 #cd /home #cp jdk-1_6_0_03-linux-i586.rpm /usr/local #cd /usr/local 给所有用户添加可执行的权限 #chmod +x jdk-1_6_0_03-linux-i586.rpm.bin #./jdk-1_6_0_03-linux-i586.rpm.bin 此时会生成文件jdk-1_5_0_02-linux-i5

在 Linux 中安装 Darkstat:基于网页的流量分析器

Darkstat是一个简易的,基于网页的流量分析程序.它可以在主流的操作系统如Linux.Solaris.MAC.AIX上工作.它以守护进程的形式持续工作在后台,不断地嗅探网络数据,以简单易懂的形式展现在它的网页上.它可以为主机生成流量报告,识别特定的主机上哪些端口是打开的,它兼容IPv6.让我们看下如何在Linux中安装和配置它. 在Linux中安装配置Darkstat 在Fedora/CentOS/RHEL中安装Darkstat: 要在Fedora/RHEL和CentOS中安装,运行下面的命