APP下载 微博 微信

Hao4K影音


[经验心得] 利用NAS建立DNS缓存服务器Pi-hole

[复制链接]

发表于 2018年06月12日 20:33 60637 2 来源:媒体存储> 经验心得 |只看大图 回帖奖励 |倒序浏览 |

学级崩坏 帖主

2018-6-12 20:33

在家用环境中利用nas建立DNS缓存服务器
1    前言继上次折腾完NAS改造旁路路由给局域网提供旁路网关服务后,稳定的使用了一段时间,然后在聊天时,大佬偶然提起了自己用树莓派做了个DNS服务器给局域网内其他设备提供DNS缓存服务和域名过滤服务,想起NAS过剩的性能还能多带几个虚拟机,就决定是你了,虚拟DNS缓存服务器!

PS1: 本次教程建立在上篇文章环境之上,如果有环境不同之处,自行调整兼容。
2    本次主角Pi-hole

201806Tuesday0231zx0lwzcgzcm.jpg

201806Tuesday0231zx0lwzcgzcm.jpg

能够提供DNS服务的方法有很多,本次选用Pi-hole做主角完全是因为PY交易,大佬用的是Pi-hole,我折腾的时候要是有啥问题可以直接问大佬。然而即使是这样,本次折腾也走了很多弯路。比如系统的选用,教程内就不详细介绍了。
DNS缓存服务器好处:为了增加访问效率,计算机有域名缓存机制,当访问过某个网站并得到其IP后,会将其域名和IP缓存下来,下一次访问的时候,就不需要再请求域名服务器获取IP,直接使用缓存中的IP,提高了响应的速度。当然缓存是有有效时间的,当过了有效时间后,再次请求网站,还是需要先请求域名解析。
Host过滤功能:简单来说就是一个初级的去广告和屏蔽恶意网站规则
官网

  

3    网络拓扑图

201806Tuesday0231devo4llvt1f.jpg

201806Tuesday0231devo4llvt1f.jpg


4    准备工作在清华镜像站下载系统镜像 镜像名为 ubuntu-18.04-live-server-amd64.iso
[/ol]5    创建虚拟机打开Hyper-v 新建虚拟机

201806Tuesday0232gp1zpfxmis2.jpg

201806Tuesday0232gp1zpfxmis2.jpg
填写虚拟机名称

201806Tuesday0232b3wtkpmuslg.jpg

201806Tuesday0232b3wtkpmuslg.jpg
选第一代虚拟机

201806Tuesday0232bu0hml1jpnw.jpg

201806Tuesday0232bu0hml1jpnw.jpg
500-1000MB内存(一般512够用了)

201806Tuesday0232ag5o2r0any0.jpg

201806Tuesday0232ag5o2r0any0.jpg
网卡选择之前LEDE的WAN口用过的 WAN&LAN

201806Tuesday0232bia3rovm5cu.jpg

201806Tuesday0232bia3rovm5cu.jpg
硬盘10G即可(动态大小用多少占多少)

201806Tuesday0232hk5mrt4h1q3.jpg

201806Tuesday0232hk5mrt4h1q3.jpg
安装选项的镜像文件选择准备工作时下载的ubunt server.iso

201806Tuesday023225mng2exdgw.jpg

201806Tuesday023225mng2exdgw.jpg
设置虚拟机

201806Tuesday0232loulpsrti5h.jpg

201806Tuesday0232loulpsrti5h.jpg
根据机器情况选择核心数

201806Tuesday0233zc5lcv1kgwe.jpg

201806Tuesday0233zc5lcv1kgwe.jpg
设置网卡的高级功能

201806Tuesday0233teylcevpjr1.jpg

201806Tuesday0233teylcevpjr1.jpg
此时虚拟机设置完成,可以点击启动虚拟机进入下一阶段。
[/ol]
6    系统环境搭建连接虚拟机

201806Tuesday0233amglhkycspa.jpg

201806Tuesday0233amglhkycspa.jpg
启动虚拟机

201806Tuesday02331ik0glltuks.jpg

201806Tuesday02331ik0glltuks.jpg
选择语言 中文 然后回车

201806Tuesday0233qpjrno0cry1.jpg

201806Tuesday0233qpjrno0cry1.jpg
安装ununtu服务器版 回车 然后等待

201806Tuesday0233qgsku5ii5wn.jpg

201806Tuesday0233qgsku5ii5wn.jpg
选择安装语言 English

201806Tuesday0233vfj3paujill.jpg

201806Tuesday0233vfj3paujill.jpg
键盘设置直接下一步

201806Tuesday0233x52om5prq02.jpg

201806Tuesday0233x52om5prq02.jpg
Install Ubuntu

201806Tuesday02334xbsckaey5v.jpg

201806Tuesday02334xbsckaey5v.jpg
直接默认自动获取下一步(这里手动设置有问题 提示IP报错所以装好后再自己手动指定)

201806Tuesday0233wabhgxvzevq.jpg

201806Tuesday0233wabhgxvzevq.jpg
Proxy address直接跳过 下一步

201806Tuesday02332aobcjlxzlr.jpg

201806Tuesday02332aobcjlxzlr.jpg
选择默认硬盘

201806Tuesday0233c0z4l4nxgwl.jpg

201806Tuesday0233c0z4l4nxgwl.jpg
唯一一个硬盘

201806Tuesday02331fiqqwljzei.jpg

201806Tuesday02331fiqqwljzei.jpg
确认

201806Tuesday0233ce0u4ffsr44.jpg

201806Tuesday0233ce0u4ffsr44.jpg
选择continue继续

201806Tuesday0233cu0vda2c4nd.jpg

201806Tuesday0233cu0vda2c4nd.jpg
这里开始就是创建账户了如图填写或自由发挥

201806Tuesday0233tp4sf3bbjko.jpg

201806Tuesday0233tp4sf3bbjko.jpg
回车后开始安装系统了。等待5-10分钟后 会出现reboot now 选择后回车即可

201806Tuesday0234qduw1zirev0.jpg

201806Tuesday0234qduw1zirev0.jpg
提示让你退出安转盘,然而实际上已经自动退出了所以直接回车即可

201806Tuesday0234ueruxzyaouj.jpg

201806Tuesday0234ueruxzyaouj.jpg
之后系统会自动重启,等待启动完成即可
[/ol]7    系统调试篇第一次启动可能会显示错误 这个时候回车两下就好了

201806Tuesday0234bf0b33uc1mn.jpg

201806Tuesday0234bf0b33uc1mn.jpg
输入账户名Hao4k 回车

201806Tuesday0234hufaxhlvhxd.jpg

201806Tuesday0234hufaxhlvhxd.jpg
输入密码回车(这里有个要特别说明的地方:如果你发现怎么输入都提示密码错误的话 按一下小键盘的num键 再输入试试 对于Linux来说num激活和非激活输入的数字是不一样的)

201806Tuesday0234yvfva4cwney.jpg

201806Tuesday0234yvfva4cwney.jpg
输入sudo passwd root来设置root账户的密码先输入一次Hao4k的账户密码然后输入一次要设置的root密码确认输入一次要设置的root密码设置成功

201806Tuesday0234ayep4qff4l4.jpg

201806Tuesday0234ayep4qff4l4.jpg
输入su root 进入root权限模式输入刚才设置root密码成功进入root模式

201806Tuesday0234mjd5np5v3hu.jpg

201806Tuesday0234mjd5np5v3hu.jpg
输入vim /etc/netplan/50-cloud-init.yaml 回车后进入编辑模式,将文件编辑成截图内的内容编辑技巧1:先移动光标 移动到目的地后按字母键i进入到插入编辑模式(屏幕下方出现-- INSERT --),此时可以输入字符,删除字符。编辑技巧2:编辑模式下按esc退出编辑模式 (屏幕下方的-- INSERT –消失)此时输入:q!后回车则不保存并退出 输入:wq后回车则保存并退出

201806Tuesday0234qhfqvhqe01y.jpg

201806Tuesday0234qhfqvhqe01y.jpg
编辑完成后按esc 然后输入:wq回车 保存并退出(如果之前没获取root权限此时会报错提示无法写入)然后输入netplan apply 回车使设置生效

201806Tuesday0234ufubxwhgk2u.jpg

201806Tuesday0234ufubxwhgk2u.jpg
此时系统IP配置完成,可以在路由器中看到设置好的设备IP
[/ol]8    安装并启用Pi-hole1.    使用命令安装 curl-sSL https://install.pi-hole.net | bash 回车后等待

201806Tuesday0234tisyivovq3x.jpg

201806Tuesday0234tisyivovq3x.jpg
直接回车确认

201806Tuesday0234svmfn2b3gwy.jpg

201806Tuesday0234svmfn2b3gwy.jpg
捐赠地址,直接回车跳过

201806Tuesday0234b1golapvfnz.jpg

201806Tuesday0234b1golapvfnz.jpg
回车跳过

201806Tuesday0234detd3xe5kq5.jpg

201806Tuesday0234detd3xe5kq5.jpg
选用一个首选DNS服务器。Google就可以了(如果是和作者网络架构类似,局域网内有一个LEDE提供网关和DNS,这里强烈推荐使用自定义并且填写LEDE的WAN口IP) 回车

201806Tuesday02344tfsx1pa5mo.jpg

201806Tuesday02344tfsx1pa5mo.jpg
家里没IPV6 移动到IPV6上按空格取消选中,然后回车 下一步确认虚拟机的IP没问题,gateway的地址是LEDE的WAN口地址即可回车

201806Tuesday0234qhrcht3sfup.jpg

201806Tuesday0234qhrcht3sfup.jpg
警告。无视回车

201806Tuesday023405pwlr1dmxy.jpg

201806Tuesday023405pwlr1dmxy.jpg
安装web管理界面 直接回车

201806Tuesday02342jhd0omdcsj.jpg

201806Tuesday02342jhd0omdcsj.jpg
记录日志 直接回车

201806Tuesday02341zpcxzh3ttt.jpg

201806Tuesday02341zpcxzh3ttt.jpg
此时系统开始安装pi-hole 等待3 5分钟安装成功,界面显示默认密码和IP 记录后回车下一步

201806Tuesday0234pg5ywylcwwd.jpg

201806Tuesday0234pg5ywylcwwd.jpg
使用命令修改密码为自己好记忆的密码sudo pihole -a -p 新密码

201806Tuesday02350axkl1lbsfv.jpg

201806Tuesday02350axkl1lbsfv.jpg
此时pi-hole安装设置完成。
[/ol]9    使用DNS缓存服务器9.1  方式1:直接修改联网设备的首选DNS服务器IP为虚拟机IP即是上文图中的192.168.1.112
9.2  方式2:修改主路由的DHCP设置中的默认DNS服务器。这样所有连接到主路由的设备均会默认使用该DNS

10       Pi-hole进阶设置在电脑浏览器输入虚拟机IP/admin 来访问pi-hole

201806Tuesday0235eldbommd0ym.jpg

201806Tuesday0235eldbommd0ym.jpg
点击login后输入之前设置的密码解开所有设置项

201806Tuesday0235ki1eys2skg4.jpg

201806Tuesday0235ki1eys2skg4.jpg
点击tools 选择更新规则列表可以更新过滤列表

201806Tuesday0235ckweydpa4oi.jpg

201806Tuesday0235ckweydpa4oi.jpg
点击setting 然后block lists 可以管理规则列表订阅

201806Tuesday02351iwin5ugyr4.jpg

201806Tuesday02351iwin5ugyr4.jpg
最后pihole出现新版本时,要升级Pihole也很简单,只要登陆虚拟机输入 pihole -up ,就可以升级到pihole最新版本
[/ol]
1    Pihole防火墙安全性输入 su root 然后输入root的密码获得root权限安装防火墙sudo apt-get install ufw打开防火墙sudo ufw enable将所有端口默认关闭sudo ufw default deny允许8.8.8.8和8.8.4.4通过sudo ufw allow from 8.8.8.8sudo ufw allow from 8.8.4.4允许本地所有设备通过sudo ufw allow from 192.168.0.0/16

201806Tuesday0235lcp42heomwl.jpg

201806Tuesday0235lcp42heomwl.jpg
以上内容参考https://blog.csdn.net/qq_39076179/article/details/79034428如何检测端口是否暴露  在本地电脑运行cmd 输入 telnet DNS的IP 端口号即可[/ol]
2    Pihole汉化汉化内容参考 下载这个汉化包解压覆盖到 /var/www/html/admin 目录,完成ftp服务器开启参考root权限赋予参考覆盖方法如下首先安装ftp服务 sudo apt-get install vsftpd

201806Tuesday02350yxos0mv00u.jpg

201806Tuesday02350yxos0mv00u.jpg
使用service vsftpd start命令开启ftp服务使用service vsftpd status检测ftp服务状态

201806Tuesday0235sk55gbx4ym3.jpg

201806Tuesday0235sk55gbx4ym3.jpg
此时ftp服务已经开启输入su root 获取root权限然后使用sudo vi /etc/passwd命令来更改权限将Hao4k(或者自己的账号)权限修改为0

201806Tuesday0235llvh1ibr1yg.jpg

201806Tuesday0235llvh1ibr1yg.jpg
修改完成后按ESC 输入:wq回车 退出并保存输入reboot回车重启服务器使用service vsftpd start命令开启ftp服务使用service vsftpd status检测ftp服务状态

201806Tuesday0235ulg11ehxh3j.jpg

201806Tuesday0235ulg11ehxh3j.jpg
使用 vi /etc/vsftpd.conf删除write_enable=YES 前面的注释符号#,就可以有写入权限了然后按esc,输入:wq回车保存并退出

201806Tuesday0235figwhwds1v0.jpg

201806Tuesday0235figwhwds1v0.jpg
完成之后输入service vsftpd stop再输入service vsftpd start重启ftp服务此时服务端配置完成运行winscp软件(自行下载)

201806Tuesday0235iapqh4ppuqq.jpg

201806Tuesday0235iapqh4ppuqq.jpg
点击登录输入密码在软件中进入到/var/www/html/admin目录

201806Tuesday0236jbzqzkyxjgq.jpg

201806Tuesday0236jbzqzkyxjgq.jpg
然后全选中直接下载解压好的文件,全部拖入窗口覆盖即可

201806Tuesday0236pt5hkjxcyvy.jpg

201806Tuesday0236pt5hkjxcyvy.jpg
此时汉化完成,为了安全起见,将Hao4k账号权限还原使用sudo vi /etc/passwd命令来更改权限将Hao4k(或者自己的账号)权限修改为之前的1000,然后按esc 输入:wq回车保存并退出输入reboot重启服务器,再次打开pihole的界面时即为汉化界面重启成功后使用service vsftpdstop关闭ftp服务更换界面后第一次打开比较慢请耐心等待。

201806Tuesday0236ay50vi0uvah.jpg

201806Tuesday0236ay50vi0uvah.jpg

[/ol]
3    Dnscrypt服务架设    dnscrypt服务可以防止dns污染,同时极大加速二次访问时的解析速度。登陆,并启用root权限 su root关闭ubuntu的DNS服务防止冲突sudo vi/etc/systemd/resolved.conf删除DNSStublistener前面的注释符并改成no(小写) 按ESC 输入:wq回车保存并退出

201806Tuesday02363eq4m4nozqr.jpg

201806Tuesday02363eq4m4nozqr.jpg
输入reboot重启服务器登陆,并使用命令su root开启root权限使用命令cd /opt进入目录使用命令wget 使用命令tar -xfdnscrypt-proxy-linux_x86_64-2.0.15.tar.gz使用命令mv linux-x86_64 dnscrypt-proxy使用命令rm dnscrypt-proxy-linux_x86_64-2.0.15.tar.gz使用命令cd dnscrypt-proxy使用命令cp example-dnscrypt-proxy.toml dnscrypt-proxy.toml使用命令sudo vi dnscrypt-proxy.toml将第35行的 listen_addresses= [ 中的53修改为5353 按esc 输入:wq回车保存退出

201806Tuesday0236cfln22n3szi.jpg

201806Tuesday0236cfln22n3szi.jpg
使用命令./dnscrypt-proxy -service install。使用命令./dnscrypt-proxy -service start

201806Tuesday0236o33bdbq3m0t.jpg

201806Tuesday0236o33bdbq3m0t.jpg
使用命令vi /etc/pihole/setupVars.conf将DNS1 2均修改为 127.0.0.1#5353后按esc输入:wq回车保存退出

201806Tuesday0236ex3zoddxkw4.jpg

201806Tuesday0236ex3zoddxkw4.jpg
使用命令reboot重启服务器至此dnscrypt架设完成。

回复

使用道具 举报

全部回复2

大H牛蹄 2

2023-3-22 09:12

好帖子,谢谢分享。虚拟机盖起来
回复 支持 反对

使用道具 举报

tomjerry2014 3

2024-4-17 04:37

学习了,谢谢!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

返回列表 本版积分规则



绑定微信 + 关注公众号,第一时间获得消息通知!
:
发烧刚入门
:
介绍未填写

主题

帖子

积分215

图文推荐

  • 小量的影视、音频存储方案之我见

    最近,一块使用了近十年的4T移动硬盘挂了(曾被摔

  • 极空间挂载阿里云、115、百度、夸克等20个

    理论上使用如下教实现程极空间可以挂载阿里云网盘

  • 红米AC2100刷Padavan固件超全详细教程

    刷机全过程图解 准备工作这部分,网上教程几乎都

  • 科普:什么是硬盘MTBF?那MTTF、MTTD、MTTR

    买固态硬盘,我们会比较关注颗粒寿命,机械硬盘虽

  • 群辉加USB3.0千兆网卡成功,教程分享

    具体安装替换参考此贴https://www.hao4k.cn/threa

  • 机械硬盘该怎么选?教你最全机械硬盘选购指

    机械硬盘该怎么选?教你最全机械硬盘选购指南

  • 搭建私有云—华芸AS6404T NAS+华硕 AC68U体

    帮朋友搭建私有云—华芸AS6404T NAS+华硕 AC68U体

  • 分享蜗牛星际A\B\C\D款机箱和功能分别有

    历经一个月研究:蜗牛星际ABCD款机箱和功能分

  • NAS都有哪些品牌?带你了解几大NAS名牌介绍

    NAS都有哪些品牌?带你了解几大NAS名牌介绍 前

  • 利用NAS建立DNS缓存服务器Pi-hole

    在家用环境中利用NAS建立DNS缓存服务器 1 前

  • Hao4K影音app客户端下载