如何在 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”中。
$ 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.itxdl.cn/linux/
或者勾搭Q2430675018
欢迎加入linux交流群 478068715
如何在 Arch Linux 中安装 DNSCrypt 和 Unbound的更多相关文章
- Arch Linux中安装Anaconda
安装步骤 通过AUR安装yaourt -S anaconda 激活Anaconda环境source /opt/anaconda/bin/activate root 关闭Anaconda环境source ...
- 在 Alpine Linux 中安装 bash shell
如何在我的 Alpine Linux LXD(Linux容器)虚拟机(VM)中安装 bash shell? Alpine Linux 自带 BusyBox 工具.它被评为“嵌入式 Linux 的瑞士军 ...
- Arch系Linux中安装Docker
Arch系Linux中安装Docker 1. 下载最新版docker $ sudo pacman -Syu docker 2. 免sudo执行docker $ sudo gpasswd -a ${US ...
- 如何在CentOS 7中安装最新Git(源码安装)
如何在CentOS 7中安装最新Git 2017年05月20日 11:49:53 阅读数:1624 Git是在今天的软件开发行业一个非常有用的版本控制工具.我一直使用Git.于是为Linux公社的读者 ...
- 如何在 CentOS 7 中安装、配置和安全加固 FTP 服务
步骤 1:安装 FTP 服务器 1. 安装 vsftpd 服务器很直接,只要在终端运行下面的命令. # yum install vsftpd 2. 安装完成后,服务先是被禁用的,因此我们需要手动启动, ...
- 如何在CentOS系统中安装配置SNMP服务
CentOS(Community Enterprise Operating System,中文意思是:社区企业操作系统)是Linux发行版之一,现在有一大部分服务器在使用此操作系统:SNMP(简单网络 ...
- Python原来这么好学-1.2节: 在Linux中安装python
这是一本教同学们彻底学通Python的高质量学习教程,认真地学习每一章节的内容,每天只需学好一节,帮助你成为一名卓越的Python程序员: 本教程面向的是零编程基础的同学,非科班人士,以及有一定编程水 ...
- 如何在 CentOS 8 中安装 Cockpit Web 控制台
如何在 CentOS 8 中安装 Cockpit Web 控制台 [日期:2019-10-31] 来源:Linux公社 作者:醉落红尘 [字体:大 中 小] 在本文中,我们将帮助您在CentOS ...
- linux中安装swoole框架
简单说说如何在linux中安装swoole框架. 具体的安装步骤其实和安装php源码类似. 下载源码 => 执行configure => make => make install 安 ...
随机推荐
- iOS - OC 数据持久化
1.Sandbox 沙箱 iOS 为每个应用提供了独立的文件空间,一个应用只能直接访问为本应用分配的文件目录,不可以访问其他目录,每个应用自己独立的访问空间被称为该应用的沙盒.也就是说,一个应用与文件 ...
- SAP 关于标准成本、计划成本、目标成本、实际成本
SAP 关于标准成本.计划成本.目标成本.实际成本 <A style="MARGIN-RIGHT: 10px" target=_blank data-ext="{v ...
- jqurey click和blur执行时间冲突
参考资料:http://stackoverflow.com/questions/10652852/jquery-fire-click-before-blur-event
- mysql 求时间段平均值
考虑下面的需求,在一段时间内,间隔一段时间,取一个平均值,把所有的平均值取出来,怎么办?思路:在存储过程中,拼接sql语句.根据起始时间和结束时间,while循环每次加一段时间.DROP PROCED ...
- Android 让输入框输入指定字符的办法
让输入框输入指定字符的办法 有一个需求 让输入密码的时候只能输入数字字母可见字符 不能输入中文 之前还以为要写代码 还来发现有一个属性可以直接实现 <EditText android:layou ...
- C++——类继承
类库:类库由类声明和实现构成.类组合了数据表示和类方法,因此提供了比函数库更加完整的程序包. 类继承:从已有的类派生出新的类,派生类继承了原有类(称为基类)的特征,包括方法. 通过类继承可以完成的工作 ...
- excel 里面拼接 MySQL insert 语句
="('"&A2&"',"&" '"&B2&"','"&C2&& ...
- 阿里云+wordpress搭建个人博客网站
[正文] 在阿里云上搭建使用个人博客主要分为以下几个步骤: 1.购买阿里云ECS主机 2.购买域名 3.申请备案 4.环境配置 5.安装wordpress 6.域名解析 声明一下,本人对服务器端的知识 ...
- 【转】java多态详解
1. Java中除了static和final方法外,其他所有的方法都是运行时绑定的.private方法都被隐式指定为final的,因此final的方法不会在运行时绑定.当在派生类中重写基 ...
- js 中文乱码
js合成url时,如果参数是中文,传到struts2中会乱码,解决办法如下:1.js文件中使用encodeURI()方法(必须套两层).login_name = encodeURI(encodeURI ...