在家用环境中利用NAS建立DNS缓存服务器Pi-hole
在家用环境中利用NAS建立DNS缓存服务器
1 前言
继上次折腾完NAS改造旁路路由给局域网提供旁路网关服务后,稳定的使用了一段时间,然后在聊天时,大佬偶然提起了自己用树莓派做了个DNS服务器给局域网内其他设备提供DNS缓存服务和域名过滤服务,想起NAS过剩的性能还能多带几个虚拟机,就决定是你了,虚拟DNS缓存服务器!
PS:上篇文章:
PS1: 本次教程建立在上篇文章环境之上,如果有环境不同之处,自行调整兼容。
2 本次主角Pi-hole
能够提供DNS服务的方法有很多,本次选用Pi-hole做主角完全是因为PY交易,大佬用的是Pi-hole,我折腾的时候要是有啥问题可以直接问大佬。然而即使是这样,本次折腾也走了很多弯路。比如系统的选用,教程内就不详细介绍了。
DNS缓存服务器好处:为了增加访问效率,计算机有域名缓存机制,当访问过某个网站并得到其IP后,会将其域名和IP缓存下来,下一次访问的时候,就不需要再请求域名服务器获取IP,直接使用缓存中的IP,提高了响应的速度。当然缓存是有有效时间的,当过了有效时间后,再次请求网站,还是需要先请求域名解析。
Host过滤功能:简单来说就是一个初级的去广告和屏蔽恶意网站规则
3 网络拓扑图
4 准备工作
在清华镜像站下载系统镜像
5 创建虚拟机
打开Hyper-v 新建虚拟机
填写虚拟机名称
选第一代虚拟机
500-1000MB内存(一般512够用了)
网卡选择之前LEDE的WAN口用过的 WAN&LAN
硬盘10G即可(动态大小用多少占多少)
安装选项的镜像文件选择准备工作时下载的ubunt server.iso
设置虚拟机
根据机器情况选择核心数
设置网卡的高级功能
此时虚拟机设置完成,可以点击启动虚拟机进入下一阶段。
6 系统环境搭建
连接虚拟机
启动虚拟机
选择语言 中文 然后回车
安装ununtu服务器版 回车 然后等待
选择安装语言 English
键盘设置直接下一步
Install Ubuntu
直接默认自动获取下一步(这里手动设置有问题 提示IP报错所以装好后再自己手动指定)
Proxy address直接跳过 下一步
选择默认硬盘
唯一一个硬盘
确认
选择continue继续
这里开始就是创建账户了如图填写或自由发挥
回车后开始安装系统了。等待5-10分钟后 会出现reboot now 选择后回车即可
提示让你退出安转盘,然而实际上已经自动退出了所以直接回车即可
之后系统会自动重启,等待启动完成即可
7 系统调试篇
第一次启动可能会显示错误 这个时候回车两下就好了
输入账户名smzdm 回车
输入密码回车(这里有个要特别说明的地方:如果你发现怎么输入都提示密码错误的话 按一下小键盘的num键 再输入试试 对于Linux来说num激活和非激活输入的数字是不一样的)
输入sudo passwd root来设置root账户的密码
先输入一次smzdm的账户密码
然后输入一次要设置的root密码
确认输入一次要设置的root密码
设置成功
输入su root 进入root权限模式
输入刚才设置root密码
成功进入root模式
输入vim /etc/netplan/50-cloud-init.yaml 回车后进入编辑模式,将文件编辑成截图内的内容
编辑技巧1:先移动光标 移动到目的地后按字母键i进入到插入编辑模式(屏幕下方出现-- INSERT --),此时可以输入字符,删除字符。
编辑技巧2:编辑模式下按esc退出编辑模式 (屏幕下方的-- INSERT –消失)此时输入:q!后回车则不保存并退出 输入:wq后回车则保存并退出
编辑完成后按esc 然后输入:wq回车 保存并退出(如果之前没获取root权限此时会报错提示无法写入)
然后输入netplan apply 回车使设置生效
此时系统IP配置完成,可以在路由器中看到设置好的设备IP
8 安装并启用Pi-hole
1.使用命令安装curl-sSL https://install.pi-hole.net | bash回车后等待直接回车确认
捐赠地址,直接回车跳过
回车跳过
选用一个首选DNS服务器。Google就可以了(如果是和作者网络架构类似,局域网内有一个LEDE提供网关和DNS,这里强烈推荐使用自定义并且填写LEDE的WAN口IP) 回车
家里没IPV6 移动到IPV6上按空格取消选中,然后回车 下一步
确认虚拟机的IP没问题,gateway的地址是LEDE的WAN口地址即可回车
警告。无视回车
安装web管理界面 直接回车
记录日志 直接回车
此时系统开始安装pi-hole 等待3 5分钟
安装成功,界面显示默认密码和IP 记录后回车下一步
使用命令修改密码为自己好记忆的密码sudo pihole -a -p 新密码
此时pi-hole安装设置完成。
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
点击login后输入之前设置的密码解开所有设置项
点击tools 选择更新规则列表可以更新过滤列表
点击setting 然后block lists 可以管理规则列表订阅
最后pihole出现新版本时,要升级Pihole也很简单,只要登陆虚拟机输入 pihole -up ,就可以升级到pihole最新版本
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.8
sudo ufw allow from 8.8.4.4
允许本地所有设备通过
sudo ufw allow from 192.168.0.0/16
以上内容参考https://blog.csdn.net/qq_39076179/article/details/79034428
如何检测端口是否暴露 在本地电脑运行cmd 输入 telnet DNS的IP 端口号即可
2 Pihole汉化
下载这个汉化包
解压覆盖到 /var/www/html/admin 目录,完成
覆盖方法如下
首先安装ftp服务 sudo apt-get install vsftpd
使用service vsftpd start命令开启ftp服务
使用service vsftpd status检测ftp服务状态
此时ftp服务已经开启
输入su root 获取root权限
然后使用sudo vi /etc/passwd命令来更改权限将smzdm(或者自己的账号)权限修改为0
修改完成后按ESC 输入:wq回车 退出并保存
输入reboot回车重启服务器
使用service vsftpd start命令开启ftp服务
使用service vsftpd status检测ftp服务状态
使用 vi /etc/vsftpd.conf
删除write_enable=YES 前面的注释符号#,就可以有写入权限了
然后按esc,输入:wq回车保存并退出
完成之后输入service vsftpd stop
再输入service vsftpd start重启ftp服务
此时服务端配置完成
运行winscp软件(自行下载)
点击登录输入密码
在软件中进入到/var/www/html/admin目录
然后全选中直接下载解压好的文件,全部拖入窗口覆盖即可
此时汉化完成,为了安全起见,将smzdm账号权限还原
使用sudo vi /etc/passwd命令来更改权限将smzdm(或者自己的账号)权限修改为之前的1000,然后按esc 输入:wq回车保存并退出
输入reboot重启服务器,再次打开pihole的界面时即为汉化界面
重启成功后使用service vsftpdstop关闭ftp服务
更换界面后第一次打开比较慢请耐心等待。
3 Dnscrypt服务架设
dnscrypt服务可以防止dns污染,同时极大加速二次访问时的解析速度。
登陆,并启用root权限 su root
关闭ubuntu的DNS服务防止冲突sudo vi/etc/systemd/resolved.conf
删除DNSStublistener前面的注释符并改成no(小写) 按ESC 输入:wq回车保存并退出
输入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回车保存退出
使用命令./dnscrypt-proxy -service install。
使用命令./dnscrypt-proxy -service start
使用命令vi /etc/pihole/setupVars.conf
将DNS1 2均修改为 127.0.0.1#5353后按esc输入:wq回车保存退出
使用命令reboot重启服务器
至此dnscrypt架设完成。



































































校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
看LZ帖子写的,推测上层 DNS 是 8.8.8.8,只是使用DNSCrypt加密了DNS,可是还依然是53出去的,谈不上稳定。
而且用 8.8.8.8 就谈不上 CDN,LZ 这么搞只会把上网速度弄慢而已。
校验提示文案
校验提示文案
校验提示文案
现有个问题想请教,pi-hole必须在arm上运行吗?我看见你貌似是在hype-V上虚拟linux来运行这个程序的,也就是说我在exsi上应该也可以做到同样的效果?
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
290458453 qq.com
校验提示文案
校验提示文案
校验提示文案
校验提示文案