最近更换了网络环境,各方面都比较菜,是我遇到的最差的网络环境了,甚至比家里前几天抽风的联通宽带还要差劲。在新的网络环境里DNS服务器有时候会出问题,ISP分配的有时候就解析不出什么东西来,于是就利用树莓派添加了smartdns
用来解决dns解析的问题。
smartdns是一个本地DNS服务器,获取最快的网站IP,获得最佳上网体验。
更多介绍可以到github上去看,简单来说就是可以以不同形式配置多个上游dns服务器,并对返回的多个ip地址进行延迟检测,返回延迟最小的一个ip地址。
安装方法
smartdns可以在多种设备上面安装,包括一些市面上常见的路由器等设备,作为通用性更强的树莓派,安装起来也会更加的容易了。
首先到github上面找到符合树莓派架构的包,然后下载deb
文件到树莓派上面,然后安装:
sudo dpkg -i smartdns*arm-debian-all.deb
配置方法
目前配置方法主要有两种,一种是作为主dns服务器对内网提供dns服务,另一种是作为其他dns服务器的上游dns提供服务。这两种不同的配置方式适用于不同的网络环境。我在家里的树莓派是作为内网的一个旁路设备,没有安装例如dnsmasq
之类的dns服务器,所以选择直接把smartdns作为主dns服务,直接监听53端口,然后在路由器上进行设置,让树莓派的内网ip作为dns服务器地址。
我在学校用的树莓派是作为网关使用的,其中无线部分由create_ap
提供(好像现在停止维护了),由于create_ap已经用到了dnsmasq服务,占用了53端口,所以是需要采用作为上游dns的方式来运行的,给dnsmasq
设置上游服务器方法很简单,在dnsmasq的配置文件里添加
server=127.0.0.1#5354
就行了,其中5354是smartdns监听的端口。
最后一步,重启两个服务
sudo systemctl stop smartdns
sudo systemctl start smartdns
sudo systemctl start dnsmasq
其他更多的设置网站上的文档已经安排好了,照着改就行了。
2020.09.24更新
发现dns仍然会有些问题,遂更改dns设置方式,不再将smartdns作为dnsmasq的上游dns,而是作为主dns使用,具体变更方式也很简单,直接修改/etc/dnsmasq.conf
把port=53
改成0 或者其他值,然后解除了53端口占用,再将smartdns监听端口设为53就行了。
测试六连